From a20e9463fba4b7fb3ae93d100a505a0818a4b4d6 Mon Sep 17 00:00:00 2001 From: Tat-Chee Wan (USM) Date: Sat, 9 Jul 2011 07:40:26 +0800 Subject: thumb mode tests, modified arm mode test for signed compares Thumb mode test routine using Unsigned compares Implement Signed Compares for ARM Mode --- Debugger/debug_test.S | 53 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 49 insertions(+), 4 deletions(-) (limited to 'Debugger/debug_test.S') diff --git a/Debugger/debug_test.S b/Debugger/debug_test.S index ed4ae14..db260ff 100644 --- a/Debugger/debug_test.S +++ b/Debugger/debug_test.S @@ -55,8 +55,8 @@ test_arm_1: test_arm_2: sub r0, r0, #1 cmp r0, #8 - bls test_arm_1 - bhi test_arm_3 + ble test_arm_1 + bgt test_arm_3 beq test_arm_2 ldr pc, =test_arm_1 @@ -69,7 +69,7 @@ test_arm_3: bx r2 exit_dbg__test_arm_instrstep: - bl dbg__test_arm_instr_sub2 + bl dbg__test_thumb_instr_sub1 ldmfd sp!, {pc} dbg__test_arm_instr_sub1: @@ -109,8 +109,53 @@ _thumb_entry: * */ .global dbg__test_thumb_instrstep +.thumb_func dbg__test_thumb_instrstep: - bx lr + push {lr} + bl dbg__test_thumb_instr_sub1 + bl dbg__test_thumb_instr_sub2 + +test_thumb_1: + sub r0, #1 + bne test_thumb_2 + /* else R0 == 0 */ + b exit_dbg__test_thumb_instrstep + +test_thumb_2: + sub r0, #1 + cmp r0, #8 + bls test_thumb_1 + bhi test_thumb_3 + beq test_thumb_2 + b test_thumb_1 + +test_thumb_3: + /* case for r0 == 9 */ + sub r0, #1 + cmp r0, #5 + beq load_test_thumb_1 + ldr r2, =test_thumb_3 + b exit_test_thumb_3 +load_test_thumb_1: + ldr r2, =test_thumb_1 +exit_test_thumb_3: + bx r2 + +exit_dbg__test_thumb_instrstep: + bl dbg__test_arm_instr_sub1 + pop {r1} + bx r1 + +.thumb_func +dbg__test_thumb_instr_sub1: + mov r0, #0x0F + bx lr + +.thumb_func +dbg__test_thumb_instr_sub2: + push {lr} + mov r0, #FALSE + pop {pc} .end -- cgit v1.2.3