--- old/src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp 2019-03-06 13:52:02.000000000 +0300 +++ new/src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp 2019-03-06 13:52:02.000000000 +0300 @@ -2666,8 +2666,16 @@ // 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); }