diff options
Diffstat (limited to 'tb')
| -rw-r--r-- | tb/sim/shifts.S | 17 | ||||
| -rw-r--r-- | tb/sim/shifts.py | 4 |
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) |
