patcher_add_patch_ref(jd, PATCHER_resolve_classref_to_classinfo,
iptr->sx.val.c.ref, disp);
- if (opt_showdisassemble)
- M_NOP;
-
M_DSEG_LOAD(d, disp);
}
else {
disp = dseg_add_unique_address(cd, NULL);
patcher_add_patch_ref(jd, PATCHER_get_putstatic, uf, disp);
-
- if (opt_showdisassemble)
- M_NOP;
}
else {
fi = iptr->sx.s23.s3.fmiref->p.field;
if (!CLASS_IS_OR_ALMOST_INITIALIZED(fi->class)) {
patcher_add_patch_ref(jd, PATCHER_initialize_class,
fi->class, 0);
-
- if (opt_showdisassemble)
- M_NOP;
}
}
disp = dseg_add_unique_address(cd, NULL);
patcher_add_patch_ref(jd, PATCHER_get_putstatic, uf, disp);
-
- if (opt_showdisassemble)
- M_NOP;
}
else {
fi = iptr->sx.s23.s3.fmiref->p.field;
if (!CLASS_IS_OR_ALMOST_INITIALIZED(fi->class)) {
patcher_add_patch_ref(jd, PATCHER_initialize_class,
fi->class, 0);
-
- if (opt_showdisassemble)
- M_NOP;
}
}
uf = iptr->sx.s23.s3.uf;
patcher_add_patch_ref(jd, PATCHER_get_putfield, uf, 0);
-
- if (opt_showdisassemble)
- M_NOP;
}
switch (fieldtype) {
uf = iptr->sx.s23.s3.uf;
patcher_add_patch_ref(jd, PATCHER_get_putfield, uf, 0);
-
- if (opt_showdisassemble)
- M_NOP;
}
switch (fieldtype) {
if (INSTRUCTION_IS_UNRESOLVED(iptr)) {
patcher_add_patch_ref(jd, PATCHER_resolve_class,
iptr->sx.s23.s2.uc, 0);
-
- if (opt_showdisassemble)
- M_NOP;
}
disp = dseg_add_functionptr(cd, asm_handle_exception);
M_DSEG_LOAD(REG_ITMP3, disp);
if (INSTRUCTION_IS_UNRESOLVED(iptr)) {
patcher_add_patch_ref(jd, PATCHER_resolve_class,
iptr->sx.s23.s2.uc, 0);
-
- if (opt_showdisassemble)
- M_NOP;
}
goto ICMD_RETURN_do;
M_MOV(REG_PC, REG_PV);
s1 = (s4) (cd->mcodeptr - cd->mcodebase);
M_RECOMPUTE_PV(s1);
-
- emit_exception_check(cd, iptr);
break;
case ICMD_INVOKESPECIAL:
patcher_add_patch_ref(jd, PATCHER_invokestatic_special,
um, disp);
-
- if (opt_showdisassemble)
- M_NOP;
}
else
disp = dseg_add_address(cd, lm->stubroutine);
if (lm == NULL) {
patcher_add_patch_ref(jd, PATCHER_invokevirtual, um, 0);
- if (opt_showdisassemble)
- M_NOP;
-
s1 = 0;
}
else
if (lm == NULL) {
patcher_add_patch_ref(jd, PATCHER_invokeinterface, um, 0);
- if (opt_showdisassemble)
- M_NOP;
-
s1 = 0;
s2 = 0;
}
patcher_add_patch_ref(jd, PATCHER_resolve_classref_to_flags,
iptr->sx.s23.s3.c.ref, disp);
- if (opt_showdisassemble)
- M_NOP;
-
M_DSEG_LOAD(REG_ITMP2, disp);
disp = dseg_add_s4(cd, ACC_INTERFACE);
M_DSEG_LOAD(REG_ITMP3, disp);
if (super == NULL) {
patcher_add_patch_ref(jd, PATCHER_resolve_classref_to_index,
iptr->sx.s23.s3.c.ref, disp);
-
- if (opt_showdisassemble)
- M_NOP;
}
else {
M_TST(s1, s1);
patcher_add_patch_ref(jd, PATCHER_resolve_classref_to_vftbl,
iptr->sx.s23.s3.c.ref,
disp);
-
- if (opt_showdisassemble)
- M_NOP;
}
else {
disp = dseg_add_address(cd, super->vftbl);
patcher_add_patch_ref(jd, PATCHER_resolve_classref_to_classinfo,
iptr->sx.s23.s3.c.ref,
disp);
-
- if (opt_showdisassemble)
- M_NOP;
}
else
disp = dseg_add_address(cd, iptr->sx.s23.s3.c.cls);
patcher_add_patch_ref(jd, PATCHER_resolve_classref_to_flags,
iptr->sx.s23.s3.c.ref, disp);
- if (opt_showdisassemble)
- M_NOP;
-
M_DSEG_LOAD(REG_ITMP2, disp);
disp = dseg_add_s4(cd, ACC_INTERFACE);
M_DSEG_LOAD(REG_ITMP3, disp);
patcher_add_patch_ref(jd, PATCHER_resolve_classref_to_index,
iptr->sx.s23.s3.c.ref, disp);
-
- if (opt_showdisassemble)
- M_NOP;
}
else {
M_EOR(d, d, d);
patcher_add_patch_ref(jd, PATCHER_resolve_classref_to_vftbl,
iptr->sx.s23.s3.c.ref, disp);
-
- if (opt_showdisassemble)
- M_NOP;
}
else {
disp = dseg_add_address(cd, super->vftbl);
patcher_add_patch_ref(jd, PATCHER_resolve_classref_to_classinfo,
iptr->sx.s23.s3.c.ref, disp);
-
- if (opt_showdisassemble)
- M_NOP;
}
else
disp = dseg_add_address(cd, iptr->sx.s23.s3.c.cls);
funcdisp = dseg_add_functionptr(cd, f);
- if (f == NULL) {
+ if (f == NULL)
patcher_add_patch_ref(jd, PATCHER_resolve_native_function, m, funcdisp);
- if (opt_showdisassemble)
- M_NOP;
- }
-
#if defined(ENABLE_GC_CACAO)
/* Save callee saved integer registers in stackframeinfo (GC may
need to recover them during a collection). */