summaryrefslogtreecommitdiff
path: root/tb/sim
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tb/sim/syscall.S17
-rw-r--r--tb/sim/syscall.py2
2 files changed, 19 insertions, 0 deletions
diff --git a/tb/sim/syscall.S b/tb/sim/syscall.S
new file mode 100644
index 0000000..a1f7422
--- /dev/null
+++ b/tb/sim/syscall.S
@@ -0,0 +1,17 @@
+.global reset
+reset:
+ # Switch to user mode
+ mov r0, lr
+ mrs r1, cpsr
+ bic r1, r1, #0b1111
+ msr cpsr_fxc, r1
+ mov lr, r0
+
+ mov r0, #123
+ swi #0
+ mov pc, lr
+
+.global swi
+swi:
+ add r0, r0, #1
+ movs pc, r14
diff --git a/tb/sim/syscall.py b/tb/sim/syscall.py
new file mode 100644
index 0000000..cfb9859
--- /dev/null
+++ b/tb/sim/syscall.py
@@ -0,0 +1,2 @@
+def final():
+ assert_reg(r0, 124)