[aarch64-port-dev ] Use generic stack banging code for C2

Andrew Haley aph at redhat.com
Thu Nov 14 04:19:24 PST 2013


This generates a much more efficient code sequence for method entry,
usually just

  0x00007fffed198040: movn	xscratch2, #0x8fff
  0x00007fffed198044: ldr	xzr, [xscratch2,x9]

Andrew.


comparing with ssh://hg.openjdk.java.net/aarch64-port/jdk8//hotspot
searching for changes
remote: X11 forwarding request failed on channel 0
changeset:   6081:77f7bf892374
tag:         tip
user:        aph
date:        Thu Nov 14 12:15:33 2013 +0000
summary:     Use generic stack banging code for C2

diff -r feef9250f2fe -r 77f7bf892374 src/cpu/aarch64/vm/aarch64.ad
--- a/src/cpu/aarch64/vm/aarch64.ad	Tue Nov 12 14:13:18 2013 -0500
+++ b/src/cpu/aarch64/vm/aarch64.ad	Thu Nov 14 12:15:33 2013 +0000
@@ -915,10 +915,8 @@
   // push lr and rfp to create a frame
   __ stp(rfp, lr, Address(__ pre(sp, -2 * wordSize)));

-  if (C->need_stack_bang(framesize) && UseStackBanging) {
-    __ mov(rscratch2, framesize);
-    __ bang_stack_size(rscratch2, r19);
-  }
+  if (C->need_stack_bang(framesize))
+    __ generate_stack_overflow_check(framesize);

   // allow for already pushed values
   framesize -= 2 * wordSize;




More information about the aarch64-port-dev mailing list