78 uint32_t mcode = *((uint32_t*) pc);
81 return (mcode == 0x00000000);
119 uintptr_t* datap = (uintptr_t*) pr->
datap;
128 *datap = (uintptr_t) c;
161 uintptr_t* datap = (uintptr_t*) pr->
datap;
170 *datap = (uintptr_t) c->
vftbl;
194 int32_t* datap = (int32_t*) pr->
datap;
228 uintptr_t* datap = (uintptr_t*) pr->
datap;
242 *datap = (uintptr_t) fi->
value;
265 uint32_t*
pc = (uint32_t*) pr->
mpc;
281 uint32_t disp = (pr->
mcode & 0x0000ffff);
284 pr->
mcode &= 0xffff0000;
286 pc[1] |= ((fi->
offset + 0) & 0x0000ffff);
291 pc[1] |= ((fi->
offset + 4) & 0x0000ffff);
322 uintptr_t* datap = (uintptr_t*) pr->
datap;
357 uint32_t*
pc = (uint32_t*) pr->
mpc;
369 pc[1] |= (disp & 0x0000ffff);
396 uint32_t*
pc = (uint32_t*) pr->
mpc;
409 pc[1] |= (disp & 0x0000ffff);
415 pc[2] |= (disp & 0x0000ffff);
443 uint32_t*
pc = (uint32_t*) pr->
mpc;
453 int32_t disp = -(c->
index);
454 pc[2] |= (disp & 0x0000ffff);
457 pc[5] |= (disp & 0x0000ffff);
485 uint32_t*
pc = (uint32_t*) pr->
mpc;
495 int32_t disp = -(c->
index);
496 pc[2] |= (disp & 0x0000ffff);
499 pc[4] |= (disp & 0x0000ffff);
bool patcher_invokestatic_special(patchref_t *pr)
bool patcher_get_putstatic(patchref_t *pr)
bool patcher_resolve_classref_to_classinfo(patchref_t *pr)
bool patcher_invokeinterface(patchref_t *pr)
static void md_dcacheflush(void *addr, int nbytes)
void patcher_patch_code(patchref_t *pr)
bool patcher_invokevirtual(patchref_t *pr)
bool patcher_resolve_classref_to_flags(patchref_t *pr)
bool patcher_checkcast_interface(patchref_t *pr)
bool initialize_class(classinfo *c)
bool patcher_get_putfield(patchref_t *pr)
fieldinfo * resolve_field_eager(unresolved_field *ref)
methodinfo * resolve_method_eager(unresolved_method *ref)
classinfo * resolve_classref_eager(constant_classref *ref)
static void md_icacheflush(void *addr, int nbytes)
bool patcher_is_valid_trap_instruction_at(void *pc)
Check if the trap instruction at the given PC is valid.
bool patcher_resolve_classref_to_vftbl(patchref_t *pr)
bool patcher_instanceof_interface(patchref_t *pr)