< prev index next >

src/cpu/ppc/vm/interp_masm_ppc_64.cpp

Print this page

        

@@ -282,18 +282,26 @@
   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) {
+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::push_d_pop_l(FloatRegister d, Register l) {
+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 >