summaryrefslogtreecommitdiff
path: root/tb/sim
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2022-10-23 21:35:49 -0600
committerAlejandro Soto <alejandro@34project.org>2022-10-23 21:35:49 -0600
commit0b6aedb9b51878e6d5e4917b58d8c7466e7c669d (patch)
treed67985ab07e388b01ecfb832f9d9873acb30c3a5 /tb/sim
parent95644e64bfde13b3cc56537740851906f0eba173 (diff)
Add sim test: shifts
Diffstat (limited to 'tb/sim')
-rw-r--r--tb/sim/shifts.S17
-rw-r--r--tb/sim/shifts.py4
2 files changed, 21 insertions, 0 deletions
diff --git a/tb/sim/shifts.S b/tb/sim/shifts.S
new file mode 100644
index 0000000..68ef3f8
--- /dev/null
+++ b/tb/sim/shifts.S
@@ -0,0 +1,17 @@
+.global reset
+reset:
+ ldr r0, =0xffffffff
+ ldr r1, =0xbaaaaa9f
+ ldr r2, =0x00000054
+ ldr r3, =0xfffffffe
+ # r3 = 5d55
+ lsr r3, r1, #17
+ # r0 = 15000
+ lsl r0, r2, #10
+ # tmp = aaa9f000
+ # r3 = aaa9fd55
+ orr r3, r3, r1, lsl #12
+ # tmp = 0
+ # r2 = r0 = 00015000
+ eor r2, r0, r2, asr #7
+ mov pc, lr
diff --git a/tb/sim/shifts.py b/tb/sim/shifts.py
new file mode 100644
index 0000000..38f24a2
--- /dev/null
+++ b/tb/sim/shifts.py
@@ -0,0 +1,4 @@
+def final():
+ assert_reg(r0, 0x00015000)
+ assert_reg(r2, 0x00015000)
+ assert_reg(r3, 0xaaa9fd55)