summaryrefslogtreecommitdiff
path: root/tb/sim
diff options
context:
space:
mode:
Diffstat (limited to 'tb/sim')
-rw-r--r--tb/sim/subword.S16
-rw-r--r--tb/sim/subword.py8
2 files changed, 24 insertions, 0 deletions
diff --git a/tb/sim/subword.S b/tb/sim/subword.S
new file mode 100644
index 0000000..82604ae
--- /dev/null
+++ b/tb/sim/subword.S
@@ -0,0 +1,16 @@
+.global reset
+
+reset:
+ ldr r0, =0x01234567
+ push {r0}
+ ldr r0, =0x89ab
+ ldrb r1, [sp, #2]
+ strh r0, [sp, #2]
+ mov r2, #0xcd
+ strb r2, [sp]
+ ldr r0, [sp]
+ ldrsb r2, [sp]
+ ldrb r3, [sp]
+ ldrsb r4, [sp, #1]!
+ ldrsh r5, [sp, #1]
+ mov pc, lr
diff --git a/tb/sim/subword.py b/tb/sim/subword.py
new file mode 100644
index 0000000..4292d6d
--- /dev/null
+++ b/tb/sim/subword.py
@@ -0,0 +1,8 @@
+def final():
+ assert_reg(r0, 0x89ab45cd)
+ assert_reg(r1, 0x23)
+ assert_reg(r2, 0xffffffcd)
+ assert_reg(r3, 0xcd)
+ assert_reg(r4, 0x00000045)
+ assert_reg(r5, 0xffff89ab)
+ assert_reg(sp_svc, 0x2000_0000 - 3)