Christian Ullrich
Edwin Steiner
- $Id: codegen.c 5948 2006-11-11 16:56:48Z twisti $
+ $Id: codegen.c 5949 2006-11-11 17:05:19Z twisti $
*/
resolved the same class, the returned displacement
of dseg_addaddress is ok to use. */
- codegen_addpatchref(cd, PATCHER_resolve_classref_to_classinfo,
- cr, disp);
+ codegen_add_patch_ref(cd, PATCHER_resolve_classref_to_classinfo,
+ cr, disp);
if (opt_showdisassemble)
M_NOP;
disp = dseg_add_unique_address(cd, uf);
- codegen_addpatchref(cd, PATCHER_get_putstatic, uf, disp);
+ codegen_add_patch_ref(cd, PATCHER_get_putstatic, uf, disp);
if (opt_showdisassemble)
M_NOP;
disp = dseg_add_address(cd, &(fi->value));
if (!CLASS_IS_OR_ALMOST_INITIALIZED(fi->class)) {
- codegen_addpatchref(cd, PATCHER_initialize_class, fi->class,
- 0);
+ codegen_add_patch_ref(cd, PATCHER_initialize_class, fi->class,
+ 0);
if (opt_showdisassemble)
M_NOP;
disp = dseg_add_unique_address(cd, uf);
- codegen_addpatchref(cd, PATCHER_get_putstatic, uf, disp);
+ codegen_add_patch_ref(cd, PATCHER_get_putstatic, uf, disp);
if (opt_showdisassemble)
M_NOP;
disp = dseg_add_address(cd, &(fi->value));
if (!CLASS_IS_OR_ALMOST_INITIALIZED(fi->class)) {
- codegen_addpatchref(cd, PATCHER_initialize_class, fi->class,
- 0);
+ codegen_add_patch_ref(cd, PATCHER_initialize_class, fi->class,
+ 0);
if (opt_showdisassemble)
M_NOP;
disp = dseg_add_unique_address(cd, uf);
- codegen_addpatchref(cd, PATCHER_get_putstatic, uf, disp);
+ codegen_add_patch_ref(cd, PATCHER_get_putstatic, uf, disp);
if (opt_showdisassemble)
M_NOP;
disp = dseg_add_address(cd, &(fi->value));
if (!CLASS_IS_OR_ALMOST_INITIALIZED(fi->class)) {
- codegen_addpatchref(cd, PATCHER_initialize_class, fi->class,
- 0);
+ codegen_add_patch_ref(cd, PATCHER_initialize_class, fi->class,
+ 0);
if (opt_showdisassemble)
M_NOP;
fieldtype = uf->fieldref->parseddesc.fd->type;
- codegen_addpatchref(cd, PATCHER_get_putfield, uf, 0);
+ codegen_add_patch_ref(cd, PATCHER_get_putfield, uf, 0);
if (opt_showdisassemble)
M_NOP;
s2 = emit_load_s2(jd, iptr, REG_FTMP2);
if (INSTRUCTION_IS_UNRESOLVED(iptr)) {
- codegen_addpatchref(cd, PATCHER_get_putfield, uf, 0);
+ codegen_add_patch_ref(cd, PATCHER_get_putfield, uf, 0);
if (opt_showdisassemble)
M_NOP;
fieldtype = uf->fieldref->parseddesc.fd->type;
- codegen_addpatchref(cd, PATCHER_get_putfield, uf, 0);
+ codegen_add_patch_ref(cd, PATCHER_get_putfield, uf, 0);
if (opt_showdisassemble)
M_NOP;
if (INSTRUCTION_IS_UNRESOLVED(iptr)) {
unresolved_class *uc = iptr->sx.s23.s2.uc;
- codegen_addpatchref(cd, PATCHER_resolve_class, uc, 0);
+ codegen_add_patch_ref(cd, PATCHER_resolve_class, uc, 0);
if (opt_showdisassemble)
M_NOP;
case ICMD_RET: /* ... ==> ... */
M_BR(0);
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
ALIGNCODENOP;
break;
case ICMD_JSR: /* ... ==> ... */
M_BR(0);
- codegen_addreference(cd, iptr->sx.s23.s3.jsrtarget.block);
+ codegen_add_branch_ref(cd, iptr->sx.s23.s3.jsrtarget.block);
ALIGNCODENOP;
break;
s1 = emit_load_s1(jd, iptr, REG_ITMP1);
M_BEQZ(s1, 0);
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IFNONNULL: /* ..., value ==> ... */
s1 = emit_load_s1(jd, iptr, REG_ITMP1);
M_BNEZ(s1, 0);
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IFEQ: /* ..., value ==> ... */
}
M_BNEZ(REG_ITMP1, 0);
}
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IFLT: /* ..., value ==> ... */
}
M_BNEZ(REG_ITMP1, 0);
}
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IFLE: /* ..., value ==> ... */
}
M_BNEZ(REG_ITMP1, 0);
}
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IFNE: /* ..., value ==> ... */
}
M_BEQZ(REG_ITMP1, 0);
}
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IFGT: /* ..., value ==> ... */
}
M_BEQZ(REG_ITMP1, 0);
}
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IFGE: /* ..., value ==> ... */
}
M_BEQZ(REG_ITMP1, 0);
}
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IF_LEQ: /* ..., value ==> ... */
}
M_BNEZ(REG_ITMP1, 0);
}
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IF_LLT: /* ..., value ==> ... */
}
M_BNEZ(REG_ITMP1, 0);
}
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IF_LLE: /* ..., value ==> ... */
}
M_BNEZ(REG_ITMP1, 0);
}
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IF_LNE: /* ..., value ==> ... */
}
M_BEQZ(REG_ITMP1, 0);
}
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IF_LGT: /* ..., value ==> ... */
}
M_BEQZ(REG_ITMP1, 0);
}
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IF_LGE: /* ..., value ==> ... */
}
M_BEQZ(REG_ITMP1, 0);
}
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IF_ICMPEQ: /* ..., value, value ==> ... */
s2 = emit_load_s2(jd, iptr, REG_ITMP2);
M_CMPEQ(s1, s2, REG_ITMP1);
M_BNEZ(REG_ITMP1, 0);
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IF_ICMPNE: /* ..., value, value ==> ... */
s2 = emit_load_s2(jd, iptr, REG_ITMP2);
M_CMPEQ(s1, s2, REG_ITMP1);
M_BEQZ(REG_ITMP1, 0);
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IF_ICMPLT: /* ..., value, value ==> ... */
s2 = emit_load_s2(jd, iptr, REG_ITMP2);
M_CMPLT(s1, s2, REG_ITMP1);
M_BNEZ(REG_ITMP1, 0);
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IF_ICMPGT: /* ..., value, value ==> ... */
s2 = emit_load_s2(jd, iptr, REG_ITMP2);
M_CMPLE(s1, s2, REG_ITMP1);
M_BEQZ(REG_ITMP1, 0);
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IF_ICMPLE: /* ..., value, value ==> ... */
s2 = emit_load_s2(jd, iptr, REG_ITMP2);
M_CMPLE(s1, s2, REG_ITMP1);
M_BNEZ(REG_ITMP1, 0);
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
case ICMD_IF_ICMPGE: /* ..., value, value ==> ... */
s2 = emit_load_s2(jd, iptr, REG_ITMP2);
M_CMPLT(s1, s2, REG_ITMP1);
M_BEQZ(REG_ITMP1, 0);
- codegen_addreference(cd, iptr->dst.block);
+ codegen_add_branch_ref(cd, iptr->dst.block);
break;
if (INSTRUCTION_IS_UNRESOLVED(iptr)) {
unresolved_class *uc = iptr->sx.s23.s2.uc;
- codegen_addpatchref(cd, PATCHER_resolve_class, uc, 0);
+ codegen_add_patch_ref(cd, PATCHER_resolve_class, uc, 0);
if (opt_showdisassemble)
M_NOP;
M_CMPULE(REG_ITMP1, REG_ITMP2, REG_ITMP2);
}
M_BEQZ(REG_ITMP2, 0);
- codegen_addreference(cd, table[0].block);
+ codegen_add_branch_ref(cd, table[0].block);
/* build jump table top down and use address of lowest entry */
M_CMPEQ(s1, REG_ITMP2, REG_ITMP2);
}
M_BNEZ(REG_ITMP2, 0);
- codegen_addreference(cd, lookup->target.block);
+ codegen_add_branch_ref(cd, lookup->target.block);
lookup++;
}
M_BR(0);
- codegen_addreference(cd, iptr->sx.s23.s3.lookupdefault.block);
+ codegen_add_branch_ref(cd, iptr->sx.s23.s3.lookupdefault.block);
ALIGNCODENOP;
break;
if (lm == NULL) {
disp = dseg_add_unique_address(cd, um);
- codegen_addpatchref(cd, PATCHER_invokestatic_special,
- um, disp);
+ codegen_add_patch_ref(cd, PATCHER_invokestatic_special,
+ um, disp);
if (opt_showdisassemble)
M_NOP;
gen_nullptr_check(REG_A0);
if (lm == NULL) {
- codegen_addpatchref(cd, PATCHER_invokevirtual, um, 0);
+ codegen_add_patch_ref(cd, PATCHER_invokevirtual, um, 0);
if (opt_showdisassemble)
M_NOP;
gen_nullptr_check(REG_A0);
if (lm == NULL) {
- codegen_addpatchref(cd, PATCHER_invokeinterface, um, 0);
+ codegen_add_patch_ref(cd, PATCHER_invokeinterface, um, 0);
if (opt_showdisassemble)
M_NOP;
disp = dseg_add_unique_s4(cd, 0); /* super->flags */
- codegen_addpatchref(cd, PATCHER_resolve_classref_to_flags,
- iptr->sx.s23.s3.c.ref,
- disp);
+ codegen_add_patch_ref(cd, PATCHER_resolve_classref_to_flags,
+ iptr->sx.s23.s3.c.ref,
+ disp);
if (opt_showdisassemble)
M_NOP;
if ((super == NULL) || (super->flags & ACC_INTERFACE)) {
if (super == NULL) {
- codegen_addpatchref(cd,
- PATCHER_checkcast_instanceof_interface,
- iptr->sx.s23.s3.c.ref,
- 0);
+ codegen_add_patch_ref(cd,
+ PATCHER_checkcast_instanceof_interface,
+ iptr->sx.s23.s3.c.ref,
+ 0);
if (opt_showdisassemble)
M_NOP;
if (super == NULL) {
disp = dseg_add_unique_address(cd, NULL);
- codegen_addpatchref(cd,
- PATCHER_resolve_classref_to_vftbl,
- iptr->sx.s23.s3.c.ref,
- disp);
+ codegen_add_patch_ref(cd,
+ PATCHER_resolve_classref_to_vftbl,
+ iptr->sx.s23.s3.c.ref,
+ disp);
if (opt_showdisassemble)
M_NOP;
disp = dseg_addaddress(cd, iptr->sx.s23.s3.c.cls);
if (INSTRUCTION_IS_UNRESOLVED(iptr)) {
- codegen_addpatchref(cd,
- PATCHER_resolve_classref_to_classinfo,
- iptr->sx.s23.s3.c.ref,
- disp);
+ codegen_add_patch_ref(cd,
+ PATCHER_resolve_classref_to_classinfo,
+ iptr->sx.s23.s3.c.ref,
+ disp);
if (opt_showdisassemble)
M_NOP;
disp = dseg_add_unique_s4(cd, 0); /* super->flags */
- codegen_addpatchref(cd, PATCHER_resolve_classref_to_flags,
- iptr->sx.s23.s3.c.ref, disp);
+ codegen_add_patch_ref(cd, PATCHER_resolve_classref_to_flags,
+ iptr->sx.s23.s3.c.ref, disp);
if (opt_showdisassemble)
M_NOP;
if (d == REG_ITMP2)
M_CLR(d);
- codegen_addpatchref(cd,
- PATCHER_checkcast_instanceof_interface,
- iptr->sx.s23.s3.c.ref, 0);
+ codegen_add_patch_ref(cd,
+ PATCHER_checkcast_instanceof_interface,
+ iptr->sx.s23.s3.c.ref, 0);
if (opt_showdisassemble)
M_NOP;
if (super == NULL) {
disp = dseg_add_unique_address(cd, NULL);
- codegen_addpatchref(cd, PATCHER_resolve_classref_to_vftbl,
- iptr->sx.s23.s3.c.ref,
- disp);
+ codegen_add_patch_ref(cd, PATCHER_resolve_classref_to_vftbl,
+ iptr->sx.s23.s3.c.ref,
+ disp);
if (opt_showdisassemble)
M_NOP;
if (INSTRUCTION_IS_UNRESOLVED(iptr)) {
disp = dseg_add_unique_address(cd, 0);
- codegen_addpatchref(cd, PATCHER_resolve_classref_to_classinfo,
- iptr->sx.s23.s3.c.ref,
- disp);
+ codegen_add_patch_ref(cd, PATCHER_resolve_classref_to_classinfo,
+ iptr->sx.s23.s3.c.ref,
+ disp);
if (opt_showdisassemble)
M_NOP;
#if !defined(WITH_STATIC_CLASSPATH)
if (f == NULL) {
- codegen_addpatchref(cd, PATCHER_resolve_native_function, m, funcdisp);
+ codegen_add_patch_ref(cd, PATCHER_resolve_native_function, m, funcdisp);
if (opt_showdisassemble)
M_NOP;