aboutsummaryrefslogtreecommitdiff
path: root/sys/rt/arm
diff options
context:
space:
mode:
Diffstat (limited to 'sys/rt/arm')
-rw-r--r--sys/rt/arm/rt1.s11
-rw-r--r--sys/rt/arm/rti.s13
-rw-r--r--sys/rt/arm/rtn.s9
3 files changed, 33 insertions, 0 deletions
diff --git a/sys/rt/arm/rt1.s b/sys/rt/arm/rt1.s
new file mode 100644
index 0000000..2adfee8
--- /dev/null
+++ b/sys/rt/arm/rt1.s
@@ -0,0 +1,11 @@
+.extern rt·thunk
+
+.text
+.global _start
+.type _start, %function
+_start:
+ mov fp, #0
+ mov lr, #0
+ mov a1, sp
+ and sp, sp, #-16
+ bl rt·thunk
diff --git a/sys/rt/arm/rti.s b/sys/rt/arm/rti.s
new file mode 100644
index 0000000..18dc1e4
--- /dev/null
+++ b/sys/rt/arm/rti.s
@@ -0,0 +1,13 @@
+.syntax unified
+
+.section .init
+.global _init
+.type _init,%function
+_init:
+ push {r0,lr}
+
+.section .fini
+.global _fini
+.type _fini,%function
+_fini:
+ push {r0,lr}
diff --git a/sys/rt/arm/rtn.s b/sys/rt/arm/rtn.s
new file mode 100644
index 0000000..dc020f9
--- /dev/null
+++ b/sys/rt/arm/rtn.s
@@ -0,0 +1,9 @@
+.syntax unified
+
+.section .init
+ pop {r0,lr}
+ bx lr
+
+.section .fini
+ pop {r0,lr}
+ bx lr