Squash commits for public release

This commit is contained in:
2025-02-12 09:54:05 -05:00
commit 7118adc514
1108 changed files with 80873 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
.global setjmp
setjmp:
stm r0!, {r4-r12,lr}
mov r1, sp
ldm r0!, {r1}
#ifdef __ARM_NEON__
vstm r0!, {d8-d15}
#endif // __ARM_NEON__
mov r0, #0
bx lr
.global longjmp
longjmp:
ldm r0!, {r4-r12,lr}
ldm r0!, {r1}
mov sp, r1
#ifdef __ARM_NEON__
vldm r0!, {d8-d15}
#endif // __ARM_NEON__
mov r0, r1
cmp r0, #0
bne 1f
mov r0, #1
1:
bx lr

View File

@@ -0,0 +1,39 @@
.global setjmp
setjmp:
stp x19, x20, [x0,#0x0]
stp x21, x22, [x0,#0x10]
stp x23, x24, [x0,#0x20]
stp x25, x26, [x0,#0x30]
stp x27, x28, [x0,#0x40]
stp x29, x4, [x0,#0x50]
mov x2, lr
mov x3, sp
stp x2, x3, [x0,#0x60]
stp d8, d9, [x0,#0x70]
stp d10, d11, [x0,#0x80]
stp d12, d13, [x0,#0x90]
stp d14, d15, [x0,#0xa0]
mov x0, #0
ret
.global longjmp
longjmp:
ldp x19, x20, [x0,#0x0]
ldp x21, x22, [x0,#0x10]
ldp x23, x24, [x0,#0x20]
ldp x25, x26, [x0,#0x30]
ldp x27, x28, [x0,#0x40]
ldp x29, x4, [x0,#0x50]
ldp x2, x3, [x0,#0x60]
ldp d8, d9, [x0,#0x70]
ldp d10, d11, [x0,#0x80]
ldp d12, d13, [x0,#0x90]
ldp d14, d15, [x0,#0xa0]
mov lr, x2
mov sp, x3
mov x0, x1
cmp x0, #0
bne 1f
mov x0, #1
1:
ret

View File

@@ -0,0 +1,55 @@
.global setjmp
setjmp:
sd s0, 0(a0)
sd s1, 8(a0)
sd s2, 16(a0)
sd s3, 24(a0)
sd s4, 32(a0)
sd s5, 40(a0)
sd s6, 48(a0)
sd s7, 56(a0)
sd s8, 64(a0)
sd s9, 72(a0)
sd s10, 80(a0)
sd s11, 88(a0)
sd ra, 96(a0)
sd sp, 104(a0)
mv a0, zero
ret
// stp x19, x20, [x0,#0x0]
// stp x21, x22, [x0,#0x10]
// stp x23, x24, [x0,#0x20]
// stp x25, x26, [x0,#0x30]
// stp x27, x28, [x0,#0x40]
// stp x29, x4, [x0,#0x50]
// mov x2, lr
// mov x3, sp
// stp x2, x3, [x0,#0x60]
// stp d8, d9, [x0,#0x70]
// stp d10, d11, [x0,#0x80]
// stp d12, d13, [x0,#0x90]
// stp d14, d15, [x0,#0xa0]
// mov x0, #0
ret
.global longjmp
longjmp:
ld s0, 0(a0)
ld s1, 8(a0)
ld s2, 16(a0)
ld s3, 24(a0)
ld s4, 32(a0)
ld s5, 40(a0)
ld s6, 48(a0)
ld s7, 56(a0)
ld s8, 64(a0)
ld s9, 72(a0)
ld s10, 80(a0)
ld s11, 88(a0)
ld ra, 96(a0)
ld sp, 104(a0)
bne a0, zero, 1f
li a0, 1
1:
ret

View File

@@ -0,0 +1,29 @@
global setjmp
setjmp:
mov eax, [esp+4]
mov [eax], ebx
mov [eax+4], esi
mov [eax+8], edi
mov [eax+12], ebp
lea ecx, [esp+4]
mov [eax+16], ecx
mov ecx, [esp]
mov [eax+20], ecx
xor eax, eax
ret
global longjmp
longjmp:
mov edx, [esp+4]
mov eax, [esp+8]
mov ebx, [edx]
mov esi, [edx+4]
mov edi, [edx+8]
mov ebp, [edx+12]
mov esp, [edx+16]
mov ecx, [edx+20]
test eax, eax
jnz success
mov eax, 1
success:
jmp ecx

View File

@@ -0,0 +1,35 @@
[bits 64]
global setjmp
setjmp:
mov [rdi], rbx
mov [rdi+8], r12
mov [rdi+16], r13
mov [rdi+24], r14
mov [rdi+32], r15
mov [rdi+40], rbp
mov [rdi+48], rsp
mov rax, [rsp]
mov [rdi+56], rax
xor rax, rax
ret
global longjmp
longjmp:
mov rbx, [rdi]
mov r12, [rdi+8]
mov r13, [rdi+16]
mov r14, [rdi+24]
mov r15, [rdi+32]
mov rbp, [rdi+40]
mov rsp, [rdi+48]
mov rcx, [rdi+56]
mov rax, rsi
test rax, rax
jnz success
mov rax, 1
success:
jmp rcx