diff options
Diffstat (limited to 'sys/rt/arm64')
-rw-r--r-- | sys/rt/arm64/rt1.s | 10 | ||||
-rw-r--r-- | sys/rt/arm64/rti.s | 13 | ||||
-rw-r--r-- | sys/rt/arm64/rtn.s | 7 |
3 files changed, 30 insertions, 0 deletions
diff --git a/sys/rt/arm64/rt1.s b/sys/rt/arm64/rt1.s new file mode 100644 index 0000000..d0f76da --- /dev/null +++ b/sys/rt/arm64/rt1.s @@ -0,0 +1,10 @@ + .extern rt·thunk + +.global _start +.type _start, %function +_start: + mov x29, #0 + mov x30, #0 + mov x0, sp + and sp, x0, #-16 + b rt·thunk diff --git a/sys/rt/arm64/rti.s b/sys/rt/arm64/rti.s new file mode 100644 index 0000000..775df0a --- /dev/null +++ b/sys/rt/arm64/rti.s @@ -0,0 +1,13 @@ +.section .init +.global _init +.type _init,%function +_init: + stp x29,x30,[sp,-16]! + mov x29,sp + +.section .fini +.global _fini +.type _fini,%function +_fini: + stp x29,x30,[sp,-16]! + mov x29,sp diff --git a/sys/rt/arm64/rtn.s b/sys/rt/arm64/rtn.s new file mode 100644 index 0000000..73cab69 --- /dev/null +++ b/sys/rt/arm64/rtn.s @@ -0,0 +1,7 @@ +.section .init + ldp x29,x30,[sp],#16 + ret + +.section .fini + ldp x29,x30,[sp],#16 + ret |