Removed.
* src/vm/jit/jit.h: Likewise.
* src/vm/jit/powerpc/codegen.c: Likewise.
* src/vm/jit/powerpc64/codegen.c: Likewise.
* src/vm/jit/show.c: Likewise.
* src/vm/jit/stack.c: Likewise.
* src/vm/jit/verify/icmds.c: Likewise.
case ICMD_IF_LCMPGT:
case ICMD_IF_LCMPLE:
- case ICMD_IF_FCMPEQ:
- case ICMD_IF_FCMPNE:
-
- case ICMD_IF_FCMPL_LT:
- case ICMD_IF_FCMPL_GE:
- case ICMD_IF_FCMPL_GT:
- case ICMD_IF_FCMPL_LE:
-
- case ICMD_IF_FCMPG_LT:
- case ICMD_IF_FCMPG_GE:
- case ICMD_IF_FCMPG_GT:
- case ICMD_IF_FCMPG_LE:
-
- case ICMD_IF_DCMPEQ:
- case ICMD_IF_DCMPNE:
-
- case ICMD_IF_DCMPL_LT:
- case ICMD_IF_DCMPL_GE:
- case ICMD_IF_DCMPL_GT:
- case ICMD_IF_DCMPL_LE:
-
- case ICMD_IF_DCMPG_LT:
- case ICMD_IF_DCMPG_GE:
- case ICMD_IF_DCMPG_GT:
- case ICMD_IF_DCMPG_LE:
-
case ICMD_IF_ACMPEQ:
case ICMD_IF_ACMPNE:
#define ICMD_IMULPOW2 214
#define ICMD_LMULPOW2 215
-#define ICMD_IF_FCMPEQ 216
-#define ICMD_IF_FCMPNE 217
-
-#define ICMD_IF_FCMPL_LT 218
-#define ICMD_IF_FCMPL_GE 219
-#define ICMD_IF_FCMPL_GT 220
-#define ICMD_IF_FCMPL_LE 221
-
-#define ICMD_IF_FCMPG_LT 222
-#define ICMD_IF_FCMPG_GE 223
-#define ICMD_IF_FCMPG_GT 224
-#define ICMD_IF_FCMPG_LE 225
-
-#define ICMD_IF_DCMPEQ 226
-#define ICMD_IF_DCMPNE 227
-
-#define ICMD_IF_DCMPL_LT 228
-#define ICMD_IF_DCMPL_GE 229
-#define ICMD_IF_DCMPL_GT 230
-#define ICMD_IF_DCMPL_LE 231
-
-#define ICMD_IF_DCMPG_LT 232
-#define ICMD_IF_DCMPG_GE 233
-#define ICMD_IF_DCMPG_GT 234
-#define ICMD_IF_DCMPG_LE 235
-
#define ICMD_INLINE_START 251 /* instruction before inlined method */
#define ICMD_INLINE_END 252 /* instruction after inlined method */
#define ICMD_INLINE_BODY 253 /* start of inlined body */
case ICMD_FCMPL: /* ..., val1, val2 ==> ..., val1 fcmpg val2 */
case ICMD_DCMPL: /* == => 0, < => 1, > => -1 */
-
s1 = emit_load_s1(jd, iptr, REG_FTMP1);
s2 = emit_load_s2(jd, iptr, REG_FTMP2);
d = codegen_reg_of_dst(jd, iptr, REG_ITMP1);
emit_store_dst(jd, iptr, d);
break;
- case ICMD_IF_FCMPEQ: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPEQ:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- M_BNAN(1);
- emit_beq(cd, iptr->dst.block);
- break;
-
- case ICMD_IF_FCMPNE: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPNE:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- emit_bnan(cd, iptr->dst.block);
- emit_bne(cd, iptr->dst.block);
- break;
-
-
- case ICMD_IF_FCMPL_LT: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPL_LT:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- emit_bnan(cd, iptr->dst.block);
- emit_blt(cd, iptr->dst.block);
- break;
-
- case ICMD_IF_FCMPL_GT: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPL_GT:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- M_BNAN(1);
- emit_bgt(cd, iptr->dst.block);
- break;
-
- case ICMD_IF_FCMPL_LE: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPL_LE:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- emit_bnan(cd, iptr->dst.block);
- emit_ble(cd, iptr->dst.block);
- break;
-
- case ICMD_IF_FCMPL_GE: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPL_GE:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- M_BNAN(1);
- emit_bge(cd, iptr->dst.block);
- break;
-
- case ICMD_IF_FCMPG_LT: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPG_LT:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- M_BNAN(1);
- emit_blt(cd, iptr->dst.block);
- break;
-
- case ICMD_IF_FCMPG_GT: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPG_GT:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- emit_bnan(cd, iptr->dst.block);
- emit_bgt(cd, iptr->dst.block);
- break;
-
- case ICMD_IF_FCMPG_LE: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPG_LE:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- M_BNAN(1);
- emit_ble(cd, iptr->dst.block);
- break;
-
- case ICMD_IF_FCMPG_GE: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPG_GE:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- emit_bnan(cd, iptr->dst.block);
- emit_bge(cd, iptr->dst.block);
- break;
-
/* memory operations **************************************************/
case ICMD_FCMPL: /* ..., val1, val2 ==> ..., val1 fcmpg val2 */
case ICMD_DCMPL: /* == => 0, < => 1, > => -1 */
-
s1 = emit_load_s1(jd, iptr, REG_FTMP1);
s2 = emit_load_s2(jd, iptr, REG_FTMP2);
d = codegen_reg_of_dst(jd, iptr, REG_ITMP1);
M_IADD_IMM(REG_ZERO, -1, d);
emit_store_dst(jd, iptr, d);
break;
-
- case ICMD_IF_FCMPEQ: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPEQ:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- M_BNAN(1);
- emit_beq(cd, iptr->dst.block);
- break;
-
- case ICMD_IF_FCMPNE: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPNE:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- emit_bnan(cd, iptr->dst.block);
- emit_bne(cd, iptr->dst.block);
- break;
-
-
- case ICMD_IF_FCMPL_LT: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPL_LT:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- emit_bnan(cd, iptr->dst.block);
- emit_blt(cd, iptr->dst.block);
- break;
-
- case ICMD_IF_FCMPL_GT: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPL_GT:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- M_BNAN(1);
- emit_bgt(cd, iptr->dst.block);
- break;
-
- case ICMD_IF_FCMPL_LE: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPL_LE:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- emit_bnan(cd, iptr->dst.block);
- emit_ble(cd, iptr->dst.block);
- break;
-
- case ICMD_IF_FCMPL_GE: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPL_GE:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- M_BNAN(1);
- emit_bge(cd, iptr->dst.block);
- break;
-
- case ICMD_IF_FCMPG_LT: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPG_LT:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- M_BNAN(1);
- emit_blt(cd, iptr->dst.block);
- break;
-
- case ICMD_IF_FCMPG_GT: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPG_GT:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- emit_bnan(cd, iptr->dst.block);
- emit_bgt(cd, iptr->dst.block);
- break;
-
- case ICMD_IF_FCMPG_LE: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPG_LE:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- M_BNAN(1);
- emit_ble(cd, iptr->dst.block);
- break;
-
- case ICMD_IF_FCMPG_GE: /* ..., value, value ==> ... */
- case ICMD_IF_DCMPG_GE:
-
- s1 = emit_load_s1(jd, iptr, REG_FTMP1);
- s2 = emit_load_s2(jd, iptr, REG_FTMP2);
- M_FCMPU(s1, s2);
- emit_bnan(cd, iptr->dst.block);
- emit_bge(cd, iptr->dst.block);
- break;
-
+
/* memory operations **************************************************/
case ICMD_ARRAYLENGTH: /* ..., arrayref ==> ..., length */
case ICMD_IF_LCMPGT:
case ICMD_IF_LCMPLE:
- case ICMD_IF_FCMPEQ:
- case ICMD_IF_FCMPNE:
-
- case ICMD_IF_FCMPL_LT:
- case ICMD_IF_FCMPL_GE:
- case ICMD_IF_FCMPL_GT:
- case ICMD_IF_FCMPL_LE:
-
- case ICMD_IF_FCMPG_LT:
- case ICMD_IF_FCMPG_GE:
- case ICMD_IF_FCMPG_GT:
- case ICMD_IF_FCMPG_LE:
-
- case ICMD_IF_DCMPEQ:
- case ICMD_IF_DCMPNE:
-
- case ICMD_IF_DCMPL_LT:
- case ICMD_IF_DCMPL_GE:
- case ICMD_IF_DCMPL_GT:
- case ICMD_IF_DCMPL_LE:
-
- case ICMD_IF_DCMPG_LT:
- case ICMD_IF_DCMPG_GE:
- case ICMD_IF_DCMPG_GT:
- case ICMD_IF_DCMPG_LE:
-
case ICMD_IF_ACMPEQ:
case ICMD_IF_ACMPNE:
SHOW_S1(iptr);
case ICMD_IF_LCMPGT:
case ICMD_IF_LCMPLE:
- case ICMD_IF_FCMPEQ:
- case ICMD_IF_FCMPNE:
-
- case ICMD_IF_FCMPL_LT:
- case ICMD_IF_FCMPL_GE:
- case ICMD_IF_FCMPL_GT:
- case ICMD_IF_FCMPL_LE:
-
- case ICMD_IF_FCMPG_LT:
- case ICMD_IF_FCMPG_GE:
- case ICMD_IF_FCMPG_GT:
- case ICMD_IF_FCMPG_LE:
-
- case ICMD_IF_DCMPEQ:
- case ICMD_IF_DCMPNE:
-
- case ICMD_IF_DCMPL_LT:
- case ICMD_IF_DCMPL_GE:
- case ICMD_IF_DCMPL_GT:
- case ICMD_IF_DCMPL_LE:
-
- case ICMD_IF_DCMPG_LT:
- case ICMD_IF_DCMPG_GE:
- case ICMD_IF_DCMPG_GT:
- case ICMD_IF_DCMPG_LE:
-
case ICMD_IF_ACMPEQ:
case ICMD_IF_ACMPNE:
RELOCATE(iptr->sx.s23.s2.varindex);
OP2_1(TYPE_LNG, TYPE_LNG, TYPE_INT);
break;
- /* XXX why is this deactivated? */
-#if 0
- case ICMD_FCMPL:
- COUNT(count_pcmd_op);
- if ((len == 0) || (iptr[1].sx.val.i != 0))
- goto normal_FCMPL;
-
- switch (iptr[1].opc) {
- case ICMD_IFEQ:
- iptr->opc = ICMD_IF_FCMPEQ;
- icmd_if_fcmpl_tail:
- iptr->dst.block = iptr[1].dst.block;
- iptr[1].opc = ICMD_NOP;
-
- OP2_BRANCH(TYPE_FLT, TYPE_FLT);
- BRANCH(tbptr);
-
- COUNT(count_pcmd_bra);
- break;
- case ICMD_IFNE:
- iptr->opc = ICMD_IF_FCMPNE;
- goto icmd_if_fcmpl_tail;
- case ICMD_IFLT:
- iptr->opc = ICMD_IF_FCMPL_LT;
- goto icmd_if_fcmpl_tail;
- case ICMD_IFGT:
- iptr->opc = ICMD_IF_FCMPL_GT;
- goto icmd_if_fcmpl_tail;
- case ICMD_IFLE:
- iptr->opc = ICMD_IF_FCMPL_LE;
- goto icmd_if_fcmpl_tail;
- case ICMD_IFGE:
- iptr->opc = ICMD_IF_FCMPL_GE;
- goto icmd_if_fcmpl_tail;
- default:
- goto normal_FCMPL;
- }
- break;
-
-normal_FCMPL:
- OPTT2_1(TYPE_FLT, TYPE_FLT, TYPE_INT);
- break;
-
- case ICMD_FCMPG:
- COUNT(count_pcmd_op);
- if ((len == 0) || (iptr[1].sx.val.i != 0))
- goto normal_FCMPG;
-
- switch (iptr[1].opc) {
- case ICMD_IFEQ:
- iptr->opc = ICMD_IF_FCMPEQ;
- icmd_if_fcmpg_tail:
- iptr->dst.block = iptr[1].dst.block;
- iptr[1].opc = ICMD_NOP;
-
- OP2_BRANCH(TYPE_FLT, TYPE_FLT);
- BRANCH(tbptr);
-
- COUNT(count_pcmd_bra);
- break;
- case ICMD_IFNE:
- iptr->opc = ICMD_IF_FCMPNE;
- goto icmd_if_fcmpg_tail;
- case ICMD_IFLT:
- iptr->opc = ICMD_IF_FCMPG_LT;
- goto icmd_if_fcmpg_tail;
- case ICMD_IFGT:
- iptr->opc = ICMD_IF_FCMPG_GT;
- goto icmd_if_fcmpg_tail;
- case ICMD_IFLE:
- iptr->opc = ICMD_IF_FCMPG_LE;
- goto icmd_if_fcmpg_tail;
- case ICMD_IFGE:
- iptr->opc = ICMD_IF_FCMPG_GE;
- goto icmd_if_fcmpg_tail;
- default:
- goto normal_FCMPG;
- }
- break;
-
-normal_FCMPG:
- OP2_1(TYPE_FLT, TYPE_FLT, TYPE_INT);
- break;
-
- case ICMD_DCMPL:
- COUNT(count_pcmd_op);
- if ((len == 0) || (iptr[1].sx.val.i != 0))
- goto normal_DCMPL;
-
- switch (iptr[1].opc) {
- case ICMD_IFEQ:
- iptr->opc = ICMD_IF_DCMPEQ;
- icmd_if_dcmpl_tail:
- iptr->dst.block = iptr[1].dst.block;
- iptr[1].opc = ICMD_NOP;
-
- OP2_BRANCH(TYPE_DBL, TYPE_DBL);
- BRANCH(tbptr);
-
- COUNT(count_pcmd_bra);
- break;
- case ICMD_IFNE:
- iptr->opc = ICMD_IF_DCMPNE;
- goto icmd_if_dcmpl_tail;
- case ICMD_IFLT:
- iptr->opc = ICMD_IF_DCMPL_LT;
- goto icmd_if_dcmpl_tail;
- case ICMD_IFGT:
- iptr->opc = ICMD_IF_DCMPL_GT;
- goto icmd_if_dcmpl_tail;
- case ICMD_IFLE:
- iptr->opc = ICMD_IF_DCMPL_LE;
- goto icmd_if_dcmpl_tail;
- case ICMD_IFGE:
- iptr->opc = ICMD_IF_DCMPL_GE;
- goto icmd_if_dcmpl_tail;
- default:
- goto normal_DCMPL;
- }
- break;
-
-normal_DCMPL:
- OPTT2_1(TYPE_DBL, TYPE_INT);
- break;
-
- case ICMD_DCMPG:
- COUNT(count_pcmd_op);
- if ((len == 0) || (iptr[1].sx.val.i != 0))
- goto normal_DCMPG;
-
- switch (iptr[1].opc) {
- case ICMD_IFEQ:
- iptr->opc = ICMD_IF_DCMPEQ;
- icmd_if_dcmpg_tail:
- iptr->dst.block = iptr[1].dst.block;
- iptr[1].opc = ICMD_NOP;
-
- OP2_BRANCH(TYPE_DBL, TYPE_DBL);
- BRANCH(tbptr);
-
- COUNT(count_pcmd_bra);
- break;
- case ICMD_IFNE:
- iptr->opc = ICMD_IF_DCMPNE;
- goto icmd_if_dcmpg_tail;
- case ICMD_IFLT:
- iptr->opc = ICMD_IF_DCMPG_LT;
- goto icmd_if_dcmpg_tail;
- case ICMD_IFGT:
- iptr->opc = ICMD_IF_DCMPG_GT;
- goto icmd_if_dcmpg_tail;
- case ICMD_IFLE:
- iptr->opc = ICMD_IF_DCMPG_LE;
- goto icmd_if_dcmpg_tail;
- case ICMD_IFGE:
- iptr->opc = ICMD_IF_DCMPG_GE;
- goto icmd_if_dcmpg_tail;
- default:
- goto normal_DCMPG;
- }
- break;
-
-normal_DCMPG:
- OP2_1(TYPE_DBL, TYPE_DBL, TYPE_INT);
- break;
-#else
case ICMD_FCMPL:
case ICMD_FCMPG:
COUNT(count_pcmd_op);
COUNT(count_pcmd_op);
OP2_1(TYPE_DBL, TYPE_DBL, TYPE_INT);
break;
-#endif
/* pop 1 push 1 */
case ICMD_IF_LCMPGE: /* {ALL} */
case ICMD_IF_LCMPGT: /* {ALL} */
case ICMD_IF_LCMPLE: /* {ALL} */
-
-case ICMD_IF_FCMPEQ: /* {ALL} */
-case ICMD_IF_FCMPNE: /* {ALL} */
-
-case ICMD_IF_FCMPL_LT: /* {ALL} */
-case ICMD_IF_FCMPL_GE: /* {ALL} */
-case ICMD_IF_FCMPL_GT: /* {ALL} */
-case ICMD_IF_FCMPL_LE: /* {ALL} */
-
-case ICMD_IF_FCMPG_LT: /* {ALL} */
-case ICMD_IF_FCMPG_GE: /* {ALL} */
-case ICMD_IF_FCMPG_GT: /* {ALL} */
-case ICMD_IF_FCMPG_LE: /* {ALL} */
-
-case ICMD_IF_DCMPEQ: /* {ALL} */
-case ICMD_IF_DCMPNE: /* {ALL} */
-
-case ICMD_IF_DCMPL_LT: /* {ALL} */
-case ICMD_IF_DCMPL_GE: /* {ALL} */
-case ICMD_IF_DCMPL_GT: /* {ALL} */
-case ICMD_IF_DCMPL_LE: /* {ALL} */
-
-case ICMD_IF_DCMPG_LT: /* {ALL} */
-case ICMD_IF_DCMPG_GE: /* {ALL} */
-case ICMD_IF_DCMPG_GT: /* {ALL} */
-case ICMD_IF_DCMPG_LE: /* {ALL} */
/* {RESULTNOW} */
TYPECHECK_COUNT(stat_ins_branch);