[aarch64-port-dev ] Some little fixes

Andrew Haley aph at redhat.com
Tue Jul 16 08:37:20 PDT 2013


I fixed a few minor bugs, including one that causes the ZX Spectrum
simulator (!) to abort.

comparing with ssh://aph@hg.openjdk.java.net/aarch64-port/jdk8//hotspot
searching for changes
remote: X11 forwarding request failed on channel 0
changeset:   4744:52f8d6c3cbf2
parent:      4740:9fb292e8c1c6
user:        aph
date:        Tue Jul 16 15:56:38 2013 +0100
summary:     NotifySimulator still works even in product builds.

diff -r 9fb292e8c1c6 -r 52f8d6c3cbf2 src/cpu/aarch64/vm/stubGenerator_aarch64.cpp
--- a/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp	Mon Jul 15 12:57:07 2013 +0100
+++ b/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp	Tue Jul 16 15:56:38 2013 +0100
@@ -294,7 +294,6 @@
     __ mov(r13, sp);
     __ blr(c_rarg4);

-#ifndef PRODUCT
     // tell the simulator we have returned to the stub

     // we do this here because the notify will already have been done
@@ -309,7 +308,6 @@
     if (NotifySimulator) {
       __ notify(Assembler::method_reentry);
     }
-#endif
     // save current address for use by exception handling code

     return_address = __ pc();

changeset:   4745:b07a86f523a5
user:        aph
date:        Tue Jul 16 15:58:56 2013 +0100
summary:     Fix non-method-handle exceptions.

diff -r 52f8d6c3cbf2 -r b07a86f523a5 src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp
--- a/src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp	Tue Jul 16 15:56:38 2013 +0100
+++ b/src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp	Tue Jul 16 15:58:56 2013 +0100
@@ -450,9 +450,9 @@
     // Restore SP from FP if the exception PC is a method handle call site.
     {
       Label nope;
-      __ ldr(rscratch1, Address(rthread, JavaThread::is_method_handle_return_offset()));
-      __ cbnz(rscratch1, nope);
-      __ call_Unimplemented();
+      __ ldrw(rscratch1, Address(rthread, JavaThread::is_method_handle_return_offset()));
+      __ cbzw(rscratch1, nope);
+      __ mov(sp, rfp);
       __ bind(nope);
     }

@@ -517,7 +517,7 @@
   {
     Label foo;
     __ ldrw(rscratch1, Address(rthread, JavaThread::is_method_handle_return_offset()));
-    __ cbz(rscratch1, foo);
+    __ cbzw(rscratch1, foo);
     __ mov(sp, rfp);
     __ bind(foo);
   }

changeset:   4746:ff9f3073a0da
user:        aph
date:        Tue Jul 16 15:59:46 2013 +0100
summary:     NotifySimulator does not depend on non-product builds.

diff -r b07a86f523a5 -r ff9f3073a0da src/cpu/aarch64/vm/stubRoutines_aarch64.hpp
--- a/src/cpu/aarch64/vm/stubRoutines_aarch64.hpp	Tue Jul 16 15:58:56 2013 +0100
+++ b/src/cpu/aarch64/vm/stubRoutines_aarch64.hpp	Tue Jul 16 15:59:46 2013 +0100
@@ -37,8 +37,7 @@
 // latter address is sued by the stack unwind code when doign an
 // exception return.
 static bool    returns_to_call_stub(address return_pc)   {
-  return return_pc == _call_stub_return_address +
-        (NotifySimulator ? PRODUCT_ONLY(0) NOT_PRODUCT(-4) : 0);
+  return return_pc == _call_stub_return_address + (NotifySimulator ? -4 : 0);
 }

 enum platform_dependent_constants {

changeset:   4747:df889e70ff81
tag:         tip
user:        aph
date:        Tue Jul 16 16:00:18 2013 +0100
summary:     Need newline on raw disassembly.

diff -r ff9f3073a0da -r df889e70ff81 src/share/vm/compiler/disassembler.cpp
--- a/src/share/vm/compiler/disassembler.cpp	Tue Jul 16 15:59:46 2013 +0100
+++ b/src/share/vm/compiler/disassembler.cpp	Tue Jul 16 16:00:18 2013 +0100
@@ -469,7 +469,7 @@
                                                     start, end - start,
                                                     NULL, (void*) xmlout,
                                                     NULL, (void*) out,
-                                                    options(), 0/*nice new line*/)
+                                                    options(), 1/*nice new line*/)
       :
       (address)
       (*Disassembler::_decode_instructions)(start, end,




More information about the aarch64-port-dev mailing list