Index: runtime/vm/code_patcher.h |
diff --git a/runtime/vm/code_patcher.h b/runtime/vm/code_patcher.h |
index 57ee46a60bffcf1eaf72b49b6d4b53aabc4f2b34..3c0236d99d3fc2a523f8cba929dc532edc233e3a 100644 |
--- a/runtime/vm/code_patcher.h |
+++ b/runtime/vm/code_patcher.h |
@@ -18,6 +18,7 @@ class ExternalLabel; |
class Function; |
class ICData; |
class RawArray; |
+class RawCode; |
class RawFunction; |
class RawICData; |
class RawObject; |
@@ -46,15 +47,10 @@ class CodePatcher : public AllStatic { |
// Patch static call before return_address in given code to the new target. |
static void PatchStaticCallAt(uword return_address, |
const Code& code, |
- uword new_target_address); |
- |
- // Patch instance call before return_address in given code to the new target. |
- static void PatchInstanceCallAt(uword return_address, |
- const Code& code, |
- uword new_target_address); |
+ const Code& new_target); |
// Patch entry point with a jump as specified in the code's patch region. |
- static void PatchEntry(const Code& code); |
+ static void PatchEntry(const Code& code, const Code& new_code); |
// Restore entry point with original code (i.e., before patching). |
static void RestoreEntry(const Code& code); |
@@ -62,20 +58,16 @@ class CodePatcher : public AllStatic { |
// Has the entry been patched? |
static bool IsEntryPatched(const Code& code); |
- // Returns true if the code can be patched with a jump at beginning (checks |
- // that there are no conflicts with object pointers). Used in ASSERTs. |
- static bool CodeIsPatchable(const Code& code); |
- |
// Return the target address of the static call before return_address |
// in given code. |
- static uword GetStaticCallTargetAt(uword return_address, const Code& code); |
+ static RawCode* GetStaticCallTargetAt(uword return_address, const Code& code); |
// Get instance call information. Returns the call target and sets each |
// of the output parameters ic_data and arguments_descriptor if they are |
// non-NULL. |
- static uword GetInstanceCallAt(uword return_address, |
- const Code& code, |
- ICData* ic_data); |
+ static RawCode* GetInstanceCallAt(uword return_address, |
+ const Code& code, |
+ ICData* ic_data); |
// Return target of an unoptimized static call and its ICData object |
// (calls target via a stub). |
@@ -85,17 +77,17 @@ class CodePatcher : public AllStatic { |
static intptr_t InstanceCallSizeInBytes(); |
- static void InsertCallAt(uword start, uword target); |
+ static void InsertDeoptimizationCallAt(uword start, uword target); |
static RawObject* GetEdgeCounterAt(uword pc, const Code& code); |
static void PatchPoolPointerCallAt(uword return_address, |
const Code& code, |
- uword new_target); |
+ const Code& new_target); |
- static uword GetNativeCallAt(uword return_address, |
- const Code& code, |
- NativeFunction* target); |
+ static RawCode* GetNativeCallAt(uword return_address, |
+ const Code& code, |
+ NativeFunction* target); |
static void PatchNativeCallAt(uword return_address, |
const Code& code, |