[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