8075930: AARCH64: Use FP Register in C2
authorenevill
Fri, 24 Apr 2015 11:01:37 +0000
changeset 30025 d148e1b2fac2
parent 29969 c59f96b13bc7
child 30026 d5bd8b234164
8075930: AARCH64: Use FP Register in C2 Summary: modify to allow C2 to allocate FP (R29) as a general register Reviewed-by: aph, kvn, dlong
hotspot/src/cpu/aarch64/vm/aarch64.ad
hotspot/src/cpu/aarch64/vm/frame_aarch64.inline.hpp
--- a/hotspot/src/cpu/aarch64/vm/aarch64.ad	Thu Apr 23 17:53:38 2015 +0100
+++ b/hotspot/src/cpu/aarch64/vm/aarch64.ad	Fri Apr 24 11:01:37 2015 +0000
@@ -449,7 +449,7 @@
     R26
  /* R27, */                     // heapbase
  /* R28, */                     // thread
- /* R29, */                     // fp
+    R29,                        // fp
  /* R30, */                     // lr
  /* R31 */                      // sp
 );
@@ -483,7 +483,7 @@
     R26, R26_H,
  /* R27, R27_H, */              // heapbase
  /* R28, R28_H, */              // thread
- /* R29, R29_H, */              // fp
+    R29, R29_H,                 // fp
  /* R30, R30_H, */              // lr
  /* R31, R31_H */               // sp
 );
@@ -2538,7 +2538,7 @@
 }
 
 const RegMask Matcher::method_handle_invoke_SP_save_mask() {
-  return RegMask();
+  return FP_REG_mask();
 }
 
 // helper for encoding java_to_runtime calls on sim
--- a/hotspot/src/cpu/aarch64/vm/frame_aarch64.inline.hpp	Thu Apr 23 17:53:38 2015 +0100
+++ b/hotspot/src/cpu/aarch64/vm/frame_aarch64.inline.hpp	Fri Apr 24 11:01:37 2015 +0000
@@ -77,12 +77,6 @@
 inline frame::frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc) {
   intptr_t a = intptr_t(sp);
   intptr_t b = intptr_t(fp);
-#ifndef PRODUCT
-  if (fp)
-    if (sp > fp || (fp - sp > 0x100000))
-      for(;;)
-        asm("nop");
-#endif
   _sp = sp;
   _unextended_sp = unextended_sp;
   _fp = fp;
@@ -104,12 +98,6 @@
 inline frame::frame(intptr_t* sp, intptr_t* fp) {
   intptr_t a = intptr_t(sp);
   intptr_t b = intptr_t(fp);
-#ifndef PRODUCT
-  if (fp)
-    if (sp > fp || (fp - sp > 0x100000))
-      for(;;)
-        asm("nop");
-#endif
   _sp = sp;
   _unextended_sp = sp;
   _fp = fp;