summaryrefslogtreecommitdiff
path: root/tb/sim
diff options
context:
space:
mode:
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)