< 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 >