Fixed setjmp

This commit is contained in:
2024-10-19 19:24:37 +02:00
parent ff2f738b02
commit 0d125c87e7
2 changed files with 3 additions and 3 deletions
+2 -1
View File
@@ -5,6 +5,7 @@ int setjmp(jmp_buf env) {
"mov %%ebp, %0\n" // Save BP "mov %%ebp, %0\n" // Save BP
"mov %%esp, %1\n" // Save SP "mov %%esp, %1\n" // Save SP
"call 1f\n" // Call label to push PC to the stack "call 1f\n" // Call label to push PC to the stack
"1:\n" // Label to jump
"pop %2\n" // Save PC "pop %2\n" // Save PC
: "=m"(env._bp), "=m"(env._sp), "=m"(env._pc) // Locations : "=m"(env._bp), "=m"(env._sp), "=m"(env._pc) // Locations
); );
@@ -12,7 +13,7 @@ int setjmp(jmp_buf env) {
} }
void longjmp(jmp_buf env, int value) { void longjmp(jmp_buf env, int value) {
if (val == 0) return; if (value == 0) return;
__asm__ volatile ( __asm__ volatile (
"mov %0, %%ebp\n" // Restore BP "mov %0, %%ebp\n" // Restore BP
+1 -2
View File
@@ -38,8 +38,7 @@ Legend:
- [x] errno.h - [x] errno.h
- [ ] float.h - [ ] float.h
- [x] limits.h - [x] limits.h
- [ ] math.h - [x] math.h (maybe a separate libm?) TODO: add errno errors in there
- [ ] tgmath.h (if we want type generic)
- [x] setjmp.h (this plagues my mind) - [x] setjmp.h (this plagues my mind)
- [ ] signal.h (we would need signals first) - [ ] signal.h (we would need signals first)
- [x] stdarg.h - [x] stdarg.h