feat: add support for aarch64 timer/interrupts, port MontaukOS userspace
This commit is contained in:
1 parent
8b6379fb7e
commit
8c09ccef66
101 files changed
+1720
-629
No files matched your search
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* setjmp-aarch64.S
|
||||
* setjmp/longjmp for AArch64 MontaukOS userspace
|
||||
* Copyright (c) 2026 Daniel Hammer
|
||||
*/
|
||||
|
||||
/* jmp_buf: x19-x28, x29 (fp), x30 (lr), sp, d8-d15 -- everything AAPCS64
|
||||
requires a callee to preserve. */
|
||||
|
||||
.text
|
||||
|
||||
.global setjmp
|
||||
.type setjmp, %function
|
||||
setjmp:
|
||||
stp x19, x20, [x0, #0]
|
||||
stp x21, x22, [x0, #16]
|
||||
stp x23, x24, [x0, #32]
|
||||
stp x25, x26, [x0, #48]
|
||||
stp x27, x28, [x0, #64]
|
||||
stp x29, x30, [x0, #80]
|
||||
mov x2, sp
|
||||
str x2, [x0, #96]
|
||||
stp d8, d9, [x0, #104]
|
||||
stp d10, d11, [x0, #120]
|
||||
stp d12, d13, [x0, #136]
|
||||
stp d14, d15, [x0, #152]
|
||||
mov w0, #0
|
||||
ret
|
||||
.size setjmp, . - setjmp
|
||||
|
||||
.global longjmp
|
||||
.type longjmp, %function
|
||||
longjmp:
|
||||
ldp x19, x20, [x0, #0]
|
||||
ldp x21, x22, [x0, #16]
|
||||
ldp x23, x24, [x0, #32]
|
||||
ldp x25, x26, [x0, #48]
|
||||
ldp x27, x28, [x0, #64]
|
||||
ldp x29, x30, [x0, #80]
|
||||
ldr x2, [x0, #96]
|
||||
mov sp, x2
|
||||
ldp d8, d9, [x0, #104]
|
||||
ldp d10, d11, [x0, #120]
|
||||
ldp d12, d13, [x0, #136]
|
||||
ldp d14, d15, [x0, #152]
|
||||
cmp w1, #0
|
||||
csinc w0, w1, wzr, ne
|
||||
ret
|
||||
.size longjmp, . - longjmp
|
||||
Reference in new issue
Block a user