/hg/release/icedtea6-1.6: Bug fixes to ARM interpreter
cpdev-commits at icedtea.classpath.org
cpdev-commits at icedtea.classpath.org
Tue Aug 25 01:25:10 PDT 2009
changeset 6bec6d168a87 in /hg/release/icedtea6-1.6
details: http://icedtea.classpath.org/hg/release/icedtea6-1.6?cmd=changeset;node=6bec6d168a87
summary: Bug fixes to ARM interpreter
diffstat:
2 files changed, 24 insertions(+), 16 deletions(-)
ChangeLog | 9 +++++
ports/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S | 31 +++++++++-----------
diffs (131 lines):
diff -r b8d4584ef200 -r 6bec6d168a87 ChangeLog
--- a/ChangeLog Thu Aug 20 20:42:36 2009 +0100
+++ b/ChangeLog Tue Aug 25 09:27:59 2009 +0100
@@ -1,3 +1,12 @@ 2009-08-20 Andrew John Hughes <ahughes
+2009-08-25 Edward Nevill <ed at camswl.com>
+
+ * cppInterpreter_arm.s
+ - 4 X bug fixes
+ - Java PC incorrect at safepoint branch
+ - constpool pointer not restored at safepoint branch
+ - wide astore nor popping stack
+ - native entry does not save r6
+
2009-08-20 Andrew John Hughes <ahughes at redhat.com>
* Makefile.am:
diff -r b8d4584ef200 -r 6bec6d168a87 ports/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S
--- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S Thu Aug 20 20:42:36 2009 +0100
+++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S Tue Aug 25 09:27:59 2009 +0100
@@ -1744,6 +1744,9 @@ branch_taken:
cmp r1, #1
bne branch_no_check
+ sub jpc, jpc, ip @ Point jpc back at the branch
+ mov tmp1, ip @ Save offset in tmp1
+
ldr r3, [istate, #ISTATE_THREAD]
mov r0, sp
str r3, [sp]
@@ -1752,14 +1755,16 @@ branch_taken:
str jpc, [istate, #ISTATE_BCP]
str stack, [istate, #ISTATE_STACK]
bl _ZN20SafepointSynchronize5blockEP10JavaThread
+ ldr constpool, [istate, #ISTATE_CONSTANTS]
ldr r0, [istate, #ISTATE_THREAD]
ldr stack, [istate, #ISTATE_STACK]
+ add constpool, constpool, #CONST_POOL_OFFSET
ldr r3, [r0, #THREAD_PENDING_EXC]
ldr jpc, [istate, #ISTATE_BCP]
cmp r3, #0
ldr locals, [istate, #ISTATE_LOCALS]
bne handle_exception
- DISPATCH_START 0
+ DISPATCH_START_REG tmp1 @ Refetch opcode and update jpc again
branch_no_check:
DISPATCH_BYTECODE
@@ -3061,6 +3066,7 @@ case_wide_aload:
DISPATCH 4
case_wide_istore:
case_wide_fstore:
+case_wide_astore:
POP r2
str r2, [locals, -r1, lsl #2]
DISPATCH 4
@@ -3075,13 +3081,6 @@ case_wide_lstore:
POP2 r2, r3
sub r1, locals, r1, lsl #2
stmda r1, {r2, r3}
- DISPATCH 4
-case_wide_astore:
- mov r3, r1
- mov r0, stack
- mvn r1, #0
- mov r2, locals
- bl _ZN19BytecodeInterpreter6astoreEPiiS0_i
DISPATCH 4
do_wide_ret:
ldr r2, [istate, #ISTATE_METHOD]
@@ -3709,7 +3708,7 @@ normal_entry:
ALIGN_CODE
native_entry:
adrl ip, dispatch_init_adcon
- stmfd sp!, {r3, r4, r5, r7, r9, r10, r11, lr}
+ stmfd sp!, {r4, r5, r6, r7, r9, r10, r11, lr}
@---
ldmia ip, {dispatch, r7}
mov r11, r0
@@ -3925,7 +3924,7 @@ native_entry:
ldr r2, [r9, #THREAD_ACTIVE_HANDLES]
mov r3, #0 @ ECN: Now that the object is safe on the Java stack
str r3, [r2, #128] @ stack, with the Thread SP updated, clear the active_handles.
- ldmfd sp!, {r3, r4, r5, r7, r9, r10, r11, pc}
+ ldmfd sp!, {r4, r5, r6, r7, r9, r10, r11, pc}
.native_return_short:
mov r0, r0, lsl #16
mov r0, r0, asr #16
@@ -3933,29 +3932,29 @@ native_entry:
str r0, [r5, #-4]!
.native_return_void:
str r5, [r9, #THREAD_JAVA_SP]
- ldmfd sp!, {r3, r4, r5, r7, r9, r10, r11, pc}
+ ldmfd sp!, {r4, r5, r6, r7, r9, r10, r11, pc}
.native_return_dw:
stmdb r5!, {r0, r1}
str r5, [r9, #THREAD_JAVA_SP]
- ldmfd sp!, {r3, r4, r5, r7, r9, r10, r11, pc}
+ ldmfd sp!, {r4, r5, r6, r7, r9, r10, r11, pc}
.native_return_byte:
mov r0, r0, lsl #24
mov r0, r0, asr #24
str r0, [r5, #-4]!
str r5, [r9, #THREAD_JAVA_SP]
- ldmfd sp!, {r3, r4, r5, r7, r9, r10, r11, pc}
+ ldmfd sp!, {r4, r5, r6, r7, r9, r10, r11, pc}
.native_return_char:
mov r0, r0, lsl #16
mov r0, r0, lsr #16
str r0, [r5, #-4]!
str r5, [r9, #THREAD_JAVA_SP]
- ldmfd sp!, {r3, r4, r5, r7, r9, r10, r11, pc}
+ ldmfd sp!, {r4, r5, r6, r7, r9, r10, r11, pc}
.native_return_bool:
ands r0, r0, #255
movne r0, #1
str r0, [r5, #-4]!
str r5, [r9, #THREAD_JAVA_SP]
- ldmfd sp!, {r3, r4, r5, r7, r9, r10, r11, pc}
+ ldmfd sp!, {r4, r5, r6, r7, r9, r10, r11, pc}
.native_entry_throw_stack_overflow:
str r0, [r9, #THREAD_LAST_JAVA_SP]
@@ -3973,7 +3972,7 @@ native_entry:
add r5, r5, r3, lsl #2
str r5, [r9, #THREAD_JAVA_SP]
- ldmfd sp!, {r3, r4, r5, r7, r9, r10, r11, pc}
+ ldmfd sp!, {r4, r5, r6, r7, r9, r10, r11, pc}
.native_entry_do_special:
stmdb sp!, {r0, r1}
mov r0, r9
More information about the distro-pkg-dev
mailing list