60 *((uint32_t*) pr->
mpc) = (uint32_t) pr->
mcode;
74 uint32_t mcode = *((uint32_t*) pc);
77 if ((mcode & 0x0ff000f0) != 0x07f000f0) {
97 uintptr_t* datap = (uintptr_t*) pr->
datap;
111 *datap = (uintptr_t) fi->
value;
131 uint32_t*
pc = (uint32_t*) pr->
mpc;
145 #if defined(ENABLE_SOFTFLOAT)
148 assert(fi->
offset <= 0x0fff);
153 #if defined(ENABLE_SOFTFLOAT)
156 assert((fi->
offset + 4) <= 0x0fff);
159 pc[1] |= ((fi->
offset + 4) & 0x0fff);
162 #if !defined(ENABLE_SOFTFLOAT)
165 assert(fi->
offset <= 0x03ff);
209 uintptr_t* datap = (uintptr_t*) pr->
datap;
218 *datap = (uintptr_t) c;
241 uintptr_t* datap = (uintptr_t*) pr->
datap;
274 int32_t* datap = (int32_t*) pr->
datap;
309 int32_t* datap = (int32_t*) pr->
datap;
346 int32_t* datap = (int32_t*) pr->
datap;
355 *datap = (int32_t) c->
flags;
375 int32_t* datap = (int32_t*) pr->
datap;
384 *datap = (int32_t) c->
index;
404 uintptr_t* datap = (uintptr_t*) pr->
datap;
414 *datap = (uintptr_t) c->
vftbl;
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)
void patcher_patch_code(patchref_t *pr)
bool patcher_invokevirtual(patchref_t *pr)
bool patcher_resolve_classref_to_index(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)