summaryrefslogtreecommitdiff
path: root/tb/sim
diff options
context:
space:
mode:
Diffstat (limited to 'tb/sim')
-rw-r--r--tb/sim/hazards.S20
-rw-r--r--tb/sim/hazards.py9
2 files changed, 29 insertions, 0 deletions
diff --git a/tb/sim/hazards.S b/tb/sim/hazards.S
new file mode 100644
index 0000000..3e6213a
--- /dev/null
+++ b/tb/sim/hazards.S
@@ -0,0 +1,20 @@
+.global reset
+
+reset:
+ mov r5, #3
+ mov r7, #6
+ mov r9, #9
+ mov sp, #256
+ str r5, [sp, #-4]
+ mov r0, #69
+ mov r1, #-10
+
+ .loop1:
+ tst r1, r1
+ beq .loop2
+ add r1, r1, #1
+ sub r0, r0, #1
+ b .loop1
+
+ .loop2:
+ b .loop2
diff --git a/tb/sim/hazards.py b/tb/sim/hazards.py
new file mode 100644
index 0000000..9fa3e44
--- /dev/null
+++ b/tb/sim/hazards.py
@@ -0,0 +1,9 @@
+SP = 256
+
+mem_dumps = [range(SP - 4, SP)]
+
+def final():
+ assert_reg(r0, 59)
+ assert_reg(r1, 0)
+ assert_reg(sp, SP)
+ assert_mem(SP - 4, 3)