< prev index next >
src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp
Print this page
@@ -2664,12 +2664,20 @@
__ cmpptr(xlo, opr2->as_register_lo());
#else
// cpu register - cpu register
Register ylo = opr2->as_register_lo();
Register yhi = opr2->as_register_hi();
+ Register tmp1_lo = op->tmp1_opr()->as_register_lo();
+ Register tmp1_hi = op->tmp1_opr()->as_register_hi();
+
+ move_regs(xlo, tmp1_lo);
+ move_regs(xhi, tmp1_hi);
__ subl(xlo, ylo);
__ sbbl(xhi, yhi);
+ move_regs(tmp1_lo, xlo);
+ move_regs(tmp1_hi, xhi);
+
if (condition == lir_cond_equal || condition == lir_cond_notEqual) {
__ orl(xhi, xlo);
}
#endif // _LP64
} else if (opr2->is_constant()) {
< prev index next >