Mercurial > hg > arm32-8u40
changeset 7012:6d54b1140edf
Several bug fixes to get eclipse working
author | Edward Nevill <ed@camswl.com> |
---|---|
date | Fri, 27 Feb 2015 09:59:29 +0000 |
parents | c84c5aae6873 |
children | 584622a1ee06 |
files | src/cpu/zero/vm/arm32JIT.cpp src/cpu/zero/vm/asm_helper.cpp src/cpu/zero/vm/cppInterpreter_arm.S |
diffstat | 3 files changed, 18 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cpu/zero/vm/arm32JIT.cpp Mon Feb 16 13:18:10 2015 +0000 +++ b/src/cpu/zero/vm/arm32JIT.cpp Fri Feb 27 09:59:29 2015 +0000 @@ -3540,7 +3540,7 @@ loc >>= 2; offset = dest - loc; uoff = offset; - if (offset >= -(1<<22) && offset < (1<<22)) + if (offset >= -(1<<23) && offset < (1<<23)) return out_32(codebuf, A_BL(cond, uoff)); } J_Unimplemented();
--- a/src/cpu/zero/vm/asm_helper.cpp Mon Feb 16 13:18:10 2015 +0000 +++ b/src/cpu/zero/vm/asm_helper.cpp Fri Feb 27 09:59:29 2015 +0000 @@ -716,6 +716,7 @@ print_def("class_fully_initialized", instanceKlass::fully_initialized); print_def("class_init_error", instanceKlass::initialization_error); nl(); + print_def("flag_is_forced_virtual", 1 << ConstantPoolCacheEntry::is_forced_virtual_shift); print_def("flag_methodInterface", 1 << ConstantPoolCacheEntry::has_method_type_shift); print_def("flag_volatileField", 1 << ConstantPoolCacheEntry::is_volatile_shift); print_def("flag_vfinalMethod", 1 << ConstantPoolCacheEntry::is_vfinal_shift);
--- a/src/cpu/zero/vm/cppInterpreter_arm.S Mon Feb 16 13:18:10 2015 +0000 +++ b/src/cpu/zero/vm/cppInterpreter_arm.S Fri Feb 27 09:59:29 2015 +0000 @@ -573,9 +573,11 @@ ldrb r1, [jpc, lr] bic ip, ip, #7 ldr pc, [ip, r1, lsl #2] + .set dispatch_state, 0 .endm .macro DISPATCH step=0 +@ TRACE ldrb r0, [jpc, #\step]! @ ldrb r1, [jpc, #2] ldr ip, [dispatch, r0, lsl #2] @@ -1802,8 +1804,8 @@ Opcode if_acmpeq POP r2, r3 ldrsb r1, [jpc, #1] + cmp r3, r2 ldrb r2, [jpc, #2] - cmp r3, r2 beq branch_taken DISPATCH 3 @@ -1811,40 +1813,40 @@ Opcode if_acmpne POP r2, r3 ldrsb r1, [jpc, #1] + cmp r3, r2 ldrb r2, [jpc, #2] - cmp r3, r2 bne branch_taken DISPATCH 3 Opcode if_icmplt POP r2, r3 ldrsb r1, [jpc, #1] + cmp r3, r2 ldrb r2, [jpc, #2] - cmp r3, r2 blt branch_taken DISPATCH 3 Opcode if_icmpge POP r2, r3 ldrsb r1, [jpc, #1] + cmp r3, r2 ldrb r2, [jpc, #2] - cmp r3, r2 bge branch_taken DISPATCH 3 Opcode if_icmpgt POP r2, r3 ldrsb r1, [jpc, #1] + cmp r3, r2 ldrb r2, [jpc, #2] - cmp r3, r2 bgt branch_taken DISPATCH 3 Opcode if_icmple POP r2, r3 ldrsb r1, [jpc, #1] + cmp r3, r2 ldrb r2, [jpc, #2] - cmp r3, r2 ble branch_taken DISPATCH 3 @@ -2828,7 +2830,7 @@ SW_NPC beq null_ptr_exception .abortentry110: ldr tmp1, [r2, #4] @ rcvr->klass() - tst r3, #flag_methodInterface + tst r3, #flag_is_forced_virtual bne .invokeinterface_methodInterface ldr lr, [r0, #CP_OFFSET+4] @ lr = iclass @@ -3014,6 +3016,7 @@ bl _ZN14CppInterpreter19method_handle_entryEP13methodOopDesciP6Thread ldmia sp!, {regset, pc} +#ifdef FAST_BYTECODES // Common code for fast_aldc and fast_aldc_w # r0 = constpool cache entry .macro aldc opc, seq_len @@ -3060,7 +3063,6 @@ add r0, constpool, r1, lsl #4 aldc opc_fast_aldc_w, 3 -#ifdef FAST_BYTECODES # r2 = [jpc, #1] # r1 = [jpc, #2] Opcode invokevfinal @@ -3444,7 +3446,7 @@ ldr r2, [thread, #THREAD_TOP_ZERO_FRAME] str r3, [thread, #THREAD_LAST_JAVA_SP] - str r3, [thread, #THREAD_LAST_JAVA_FP] +@ str r3, [thread, #THREAD_LAST_JAVA_FP] ldr r0, [istate, #ISTATE_METHOD] ldr r3, [r2, #0] ldrh r0, [r0, #METHOD_MAXLOCALS] @@ -5381,7 +5383,7 @@ cmp r2, #0 beq istub_null_ptr_exception ldr tmp1, [r2, #4] @ rcvr->klass() - tst r3, #flag_methodInterface + tst r3, #flag_is_forced_virtual bne istub_methodInterface ldr lr, [r0, #CP_OFFSET+4] @ lr = iclass @@ -6714,6 +6716,10 @@ #endif // T2JIT + // Ensure that any literals generated in the stubs are output here + // as this code is copied to the bottom of the code buffer + .ltorg + .global Thumb2_stubs_end .type Thumb2_stubs_end, %function Thumb2_stubs_end: