ARM: fix java.lang.Math.log10
Andrew Haley
aph at redhat.com
Tue Jan 17 07:41:00 PST 2012
On 01/17/2012 02:53 PM, Andrew Haley wrote:
> On 01/17/2012 12:28 PM, Xerxes Rånby wrote:
>
>> (oddity no 2)
>> When installing vm_fatal_error as entry to handle the "java.dyn.MethodHandles::invoke" causes a signal 11
>> I would have expected it to call report_should_not_reach_here and exit cleanly.
>>
>> # A fatal error has been detected by the Java Runtime Environment:
>> #
>> # Internal Error (os_linux_zero.cpp:270), pid=11232, tid=1090544752
>> # fatal error: caught unhandled signal 11
>
> I'll fix that if you can provide a test case.
Fixed thusly.
Andrew.
2012-01-17 Andrew Haley <aph at redhat.com>
* openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S
(vm_fatal_error): Add an extra entry point at vm_fatal_error +
CODE_ALIGN_SIZE to allow vm_fatal_error to be used as an entry
point in asm_method_table.
(putstatic_volatile_dw): Re-order register operands to silence warning.
diff -r f57f03c70b52 arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S
--- a/arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S Mon Jan 16 13:28:17 2012 -0500
+++ b/arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S Tue Jan 17 10:39:22 2012 -0500
@@ -789,7 +789,9 @@
1:
bx lr
-// This table must be kept in sync with AbstractInterpreter::MethodKind
+// This table must be kept in sync with
+// AbstractInterpreter::MethodKind. Note that every entry must have a
+// corresponding fast entry point at addr + CODE_ALIGN_SIZE.
asm_method_table:
2:
.word normal_entry // method needs locals initialization
@@ -2155,7 +2157,7 @@
putstatic_volatile_dw:
DISPATCH_START 3
add ip, r2, r3
- POP tmp1, tmp2
+ POP tmp2, tmp1
DISPATCH_NEXT
StoreStoreBarrier
#ifndef __ARM_ARCH_7A__
@@ -2519,6 +2521,7 @@
CACHE_CP
DISPATCH 1
+ ALIGN_CODE
vm_fatal_error:
adr r0, .fatal_filename
mov r1, #99
@@ -2526,6 +2529,13 @@
b breakpoint
.fatal_filename:
.ascii "[Optimsed Assembler Interpreter Loop]\000"
+
+// This extra entry point for vm_fatal_error (at vm_fatal_error +
+// CODE_ALIGN_SIZE) allows vm_fatal_error to be used as an entry point
+// in the asm_method_table.
+ ALIGN_CODE
+ b vm_fatal_error
+
ALIGN_WORD
Opcode aastore
More information about the distro-pkg-dev
mailing list