src/share/vm/opto/matcher.cpp

Print this page
rev 2647 : 7086394: c2/arm: enable UseFPUForSpilling
Summary: ARM has instructions to move data directly between the fpu and integer registers.
Reviewed-by:

@@ -499,10 +499,16 @@
      idealreg2spillmask[Op_RegL]->OR(*idealreg2regmask[Op_RegD]);
      idealreg2spillmask[Op_RegD]->OR(*idealreg2regmask[Op_RegL]);
      idealreg2spillmask[Op_RegP]->OR(*idealreg2regmask[Op_RegD]);
 #else
      idealreg2spillmask[Op_RegP]->OR(*idealreg2regmask[Op_RegF]);
+#ifdef ARM
+     // ARM has support for moving 64bit values between a pair of
+     // integer registers and a double register
+     idealreg2spillmask[Op_RegL]->OR(*idealreg2regmask[Op_RegD]);
+     idealreg2spillmask[Op_RegD]->OR(*idealreg2regmask[Op_RegL]);
+#endif
 #endif
    }
 
   // Make up debug masks.  Any spill slot plus callee-save registers.
   // Caller-save registers are assumed to be trashable by the various