6#ifndef RUNTIME_VM_CODE_PATCHER_H_
7#define RUNTIME_VM_CODE_PATCHER_H_
18#if defined(TARGET_ARCH_IA32)
24class WritableInstructionsScope :
public ValueObject {
26 WritableInstructionsScope(uword address, intptr_t size);
27 ~WritableInstructionsScope();
42 const Code& new_target);
51 const Code& caller_code,
57 const Code& caller_code,
62 const Code& caller_code,
76 const Code& new_target);
79 const Code& caller_code,
84 const Code& caller_code,
88 const Code& caller_code);
90 const Code& caller_code);
93 const Code& caller_code,
97 const Code& caller_code,
99 const Code& trampoline);
static void PatchInstanceCallAt(uword return_address, const Code &caller_code, const Object &data, const Code &target)
static void PatchPoolPointerCallAt(uword return_address, const Code &code, const Code &new_target)
static CodePtr GetStaticCallTargetAt(uword return_address, const Code &code)
static void PatchSwitchableCallAtWithMutatorsStopped(Thread *thread, uword return_address, const Code &caller_code, const Object &data, const Code &target)
static void PatchInstanceCallAtWithMutatorsStopped(Thread *thread, uword return_address, const Code &caller_code, const Object &data, const Code &target)
static void PatchSwitchableCallAt(uword return_address, const Code &caller_code, const Object &data, const Code &target)
static FunctionPtr GetUnoptimizedStaticCallAt(uword return_address, const Code &code, ICData *ic_data)
static uword GetSwitchableCallTargetEntryAt(uword return_address, const Code &caller_code)
static intptr_t GetSubtypeTestCachePoolIndex(uword return_address)
static ObjectPtr GetSwitchableCallDataAt(uword return_address, const Code &caller_code)
static void InsertDeoptimizationCallAt(uword start)
static CodePtr GetInstanceCallAt(uword return_address, const Code &caller_code, Object *data)
static CodePtr GetNativeCallAt(uword return_address, const Code &caller_code, NativeFunction *target)
static void PatchStaticCallAt(uword return_address, const Code &code, const Code &new_target)
static void PatchNativeCallAt(uword return_address, const Code &caller_code, NativeFunction target, const Code &trampoline)
bool MatchesPattern(uword end, const int16_t *pattern, intptr_t size)
static int8_t data[kExtLength]
void(* NativeFunction)(NativeArguments *arguments)