< prev index next >
src/cpu/x86/vm/c1_LIRAssembler_x86.cpp
Print this page
*** 1343,1352 ****
--- 1343,1364 ----
op->in_opr2(),
op->in_opr3(),
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;
}
}
void LIR_Assembler::emit_opBranch(LIR_OpBranch* op) {
< prev index next >