patcher_add_patch_ref function itself.
* src/vm/jit/arm/patcher.c: Patcher NOPs are triggered by the opt_shownops flag.
--HG--
branch : michi
patcher_add_patch_ref(jd, PATCHER_resolve_classref_to_classinfo,
iptr->sx.val.c.ref, disp);
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 {
M_DSEG_LOAD(d, disp);
}
else {
disp = dseg_add_unique_address(cd, NULL);
patcher_add_patch_ref(jd, PATCHER_get_putstatic, uf, disp);
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;
}
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 (!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);
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;
}
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 (!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);
uf = iptr->sx.s23.s3.uf;
patcher_add_patch_ref(jd, PATCHER_get_putfield, uf, 0);
-
- if (opt_showdisassemble)
- M_NOP;
uf = iptr->sx.s23.s3.uf;
patcher_add_patch_ref(jd, PATCHER_get_putfield, uf, 0);
uf = iptr->sx.s23.s3.uf;
patcher_add_patch_ref(jd, PATCHER_get_putfield, uf, 0);
-
- if (opt_showdisassemble)
- M_NOP;
if (INSTRUCTION_IS_UNRESOLVED(iptr)) {
patcher_add_patch_ref(jd, PATCHER_resolve_class,
iptr->sx.s23.s2.uc, 0);
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);
}
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 (INSTRUCTION_IS_UNRESOLVED(iptr)) {
patcher_add_patch_ref(jd, PATCHER_resolve_class,
iptr->sx.s23.s2.uc, 0);
-
- if (opt_showdisassemble)
- M_NOP;
M_MOV(REG_PC, REG_PV);
s1 = (s4) (cd->mcodeptr - cd->mcodebase);
M_RECOMPUTE_PV(s1);
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:
break;
case ICMD_INVOKESPECIAL:
patcher_add_patch_ref(jd, PATCHER_invokestatic_special,
um, disp);
patcher_add_patch_ref(jd, PATCHER_invokestatic_special,
um, disp);
-
- if (opt_showdisassemble)
- M_NOP;
}
else
disp = dseg_add_address(cd, lm->stubroutine);
}
else
disp = dseg_add_address(cd, lm->stubroutine);
if (lm == NULL) {
patcher_add_patch_ref(jd, PATCHER_invokevirtual, um, 0);
if (lm == NULL) {
patcher_add_patch_ref(jd, PATCHER_invokevirtual, um, 0);
- if (opt_showdisassemble)
- M_NOP;
-
if (lm == NULL) {
patcher_add_patch_ref(jd, PATCHER_invokeinterface, um, 0);
if (lm == NULL) {
patcher_add_patch_ref(jd, PATCHER_invokeinterface, um, 0);
- if (opt_showdisassemble)
- M_NOP;
-
patcher_add_patch_ref(jd, PATCHER_resolve_classref_to_flags,
iptr->sx.s23.s3.c.ref, disp);
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);
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 (super == NULL) {
patcher_add_patch_ref(jd, PATCHER_resolve_classref_to_index,
iptr->sx.s23.s3.c.ref, disp);
-
- if (opt_showdisassemble)
- M_NOP;
patcher_add_patch_ref(jd, PATCHER_resolve_classref_to_vftbl,
iptr->sx.s23.s3.c.ref,
disp);
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);
}
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);
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);
}
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);
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);
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);
patcher_add_patch_ref(jd, PATCHER_resolve_classref_to_index,
iptr->sx.s23.s3.c.ref, disp);
-
- if (opt_showdisassemble)
- M_NOP;
patcher_add_patch_ref(jd, PATCHER_resolve_classref_to_vftbl,
iptr->sx.s23.s3.c.ref, disp);
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);
}
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);
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);
}
else
disp = dseg_add_address(cd, iptr->sx.s23.s3.c.cls);
funcdisp = dseg_add_functionptr(cd, f);
funcdisp = dseg_add_functionptr(cd, f);
patcher_add_patch_ref(jd, PATCHER_resolve_native_function, m, funcdisp);
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). */
#if defined(ENABLE_GC_CACAO)
/* Save callee saved integer registers in stackframeinfo (GC may
need to recover them during a collection). */
/* if we show disassembly, we have to skip the nop */
/* if we show disassembly, we have to skip the nop */
- if (opt_showdisassemble)
ra = ra + 1 * 4;
/* patch the field's offset into the instruction */
ra = ra + 1 * 4;
/* patch the field's offset into the instruction */
/* if we show disassembly, we have to skip the nop */
/* if we show disassembly, we have to skip the nop */
- if (opt_showdisassemble)
ra = ra + 1 * 4;
/* patch vftbl index */
ra = ra + 1 * 4;
/* patch vftbl index */
/* if we show disassembly, we have to skip the nop */
/* if we show disassembly, we have to skip the nop */
- if (opt_showdisassemble)
ra = ra + 1 * 4;
/* patch interfacetable index */
ra = ra + 1 * 4;
/* patch interfacetable index */