--- old/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp 2016-07-13 16:44:53.349461500 -0700 +++ new/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp 2016-07-13 16:44:53.018461500 -0700 @@ -1345,6 +1345,18 @@ op->result_opr(), op->info()); break; + case lir_fmad: + __ vfmadd231sd(op->in_opr3()->as_xmm_double_reg(), + op->in_opr1()->as_xmm_double_reg(), + op->in_opr2()->as_xmm_double_reg()); + __ movdqu(op->result_opr()->as_xmm_double_reg(), op->in_opr3()->as_xmm_double_reg()); + break; + case lir_fmaf: + __ vfmadd231ss(op->in_opr3()->as_xmm_float_reg(), + op->in_opr1()->as_xmm_float_reg(), + op->in_opr2()->as_xmm_float_reg()); + __ movdqu(op->result_opr()->as_xmm_float_reg(), op->in_opr3()->as_xmm_float_reg()); + break; default: ShouldNotReachHere(); break; } }