changeset 8076:f056955b0ae8

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
author enevill
date Fri, 24 Apr 2015 11:01:37 +0000
parents 2b54cd604683
children 63c06d9de739
files src/cpu/aarch64/vm/aarch64.ad src/cpu/aarch64/vm/frame_aarch64.inline.hpp
diffstat 2 files changed, 3 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/aarch64/vm/aarch64.ad	Thu Apr 23 17:53:38 2015 +0100
+++ b/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/src/cpu/aarch64/vm/frame_aarch64.inline.hpp	Thu Apr 23 17:53:38 2015 +0100
+++ b/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;