< prev index next >

src/cpu/ppc/vm/interp_masm_ppc_64.cpp

Print this page
rev 13142 : 8181809: PPC64: Leverage mtfprd/mffprd on POWER8
Reviewed-by: mdoerr, simonis
Contributed-by: Matthew Brandyberry <mbrandy@linux.vnet.ibm.com>

*** 282,299 **** std(first, 0, R15_esp); std(second, -Interpreter::stackElementSize, R15_esp); addi(R15_esp, R15_esp, - 2 * Interpreter::stackElementSize ); } ! void InterpreterMacroAssembler::push_l_pop_d(Register l, FloatRegister d) { std(l, 0, R15_esp); lfd(d, 0, R15_esp); } ! void InterpreterMacroAssembler::push_d_pop_l(FloatRegister d, Register l) { stfd(d, 0, R15_esp); ld(l, 0, R15_esp); } void InterpreterMacroAssembler::push(TosState state) { switch (state) { case atos: push_ptr(); break; --- 282,307 ---- std(first, 0, R15_esp); std(second, -Interpreter::stackElementSize, R15_esp); addi(R15_esp, R15_esp, - 2 * Interpreter::stackElementSize ); } ! void InterpreterMacroAssembler::move_l_to_d(Register l, FloatRegister d) { ! if (VM_Version::has_mtfprd()) { ! mtfprd(d, l); ! } else { std(l, 0, R15_esp); lfd(d, 0, R15_esp); + } } ! void InterpreterMacroAssembler::move_d_to_l(FloatRegister d, Register l) { ! if (VM_Version::has_mtfprd()) { ! mffprd(l, d); ! } else { stfd(d, 0, R15_esp); ld(l, 0, R15_esp); + } } void InterpreterMacroAssembler::push(TosState state) { switch (state) { case atos: push_ptr(); break;
< prev index next >