feat: Intel GPU fixes, add tcc compiler, spreadsheet improvements, paint app, file manager improvements

This commit is contained in:
2026-03-21 17:35:16 +01:00
parent 2fd9b7d027
commit 770dde5001
72 changed files with 45499 additions and 305 deletions
+56
View File
@@ -0,0 +1,56 @@
/*
* setjmp.S
* setjmp/longjmp for x86_64 MontaukOS
* Copyright (c) 2026 Daniel Hammer
*
* jmp_buf layout (8 x uint64_t):
* [0] = rbx
* [1] = rbp
* [2] = r12
* [3] = r13
* [4] = r14
* [5] = r15
* [6] = rsp (after return from setjmp)
* [7] = rip (return address)
*/
.text
.global setjmp
.type setjmp, @function
setjmp:
/* rdi = jmp_buf */
mov %rbx, (%rdi)
mov %rbp, 8(%rdi)
mov %r12, 16(%rdi)
mov %r13, 24(%rdi)
mov %r14, 32(%rdi)
mov %r15, 40(%rdi)
/* rsp as it will be after we return (pop return address) */
lea 8(%rsp), %rax
mov %rax, 48(%rdi)
/* return address */
mov (%rsp), %rax
mov %rax, 56(%rdi)
/* return 0 */
xor %eax, %eax
ret
.global longjmp
.type longjmp, @function
longjmp:
/* rdi = jmp_buf, esi = val */
mov %esi, %eax
/* longjmp(buf, 0) must return 1 */
test %eax, %eax
jnz 1f
inc %eax
1:
mov (%rdi), %rbx
mov 8(%rdi), %rbp
mov 16(%rdi), %r12
mov 24(%rdi), %r13
mov 32(%rdi), %r14
mov 40(%rdi), %r15
mov 48(%rdi), %rsp
jmp *56(%rdi)