summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTat-Chee Wan (USM)2011-07-09 07:40:26 +0800
committerTat-Chee Wan (USM)2011-07-09 07:40:26 +0800
commita20e9463fba4b7fb3ae93d100a505a0818a4b4d6 (patch)
tree0a1eb3b14d77bad7b8a23a842b99cc3bc2161d38
parent08c4d9c38bebc5689d0677431ef59cf45c4b5714 (diff)
thumb mode tests, modified arm mode test for signed compares
Thumb mode test routine using Unsigned compares Implement Signed Compares for ARM Mode
-rw-r--r--Debugger/debug_test.S53
1 files changed, 49 insertions, 4 deletions
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