diff options
Diffstat (limited to 'libc')
-rw-r--r-- | libc/sysdeps/linux/m68k/bits/setjmp.h | 9 | ||||
-rw-r--r-- | libc/sysdeps/linux/m68k/setjmp.S | 16 |
2 files changed, 15 insertions, 10 deletions
diff --git a/libc/sysdeps/linux/m68k/bits/setjmp.h b/libc/sysdeps/linux/m68k/bits/setjmp.h index 83ce200a1..5680ffe04 100644 --- a/libc/sysdeps/linux/m68k/bits/setjmp.h +++ b/libc/sysdeps/linux/m68k/bits/setjmp.h @@ -49,11 +49,16 @@ typedef struct /* Simple version of sigsetjmp and siglongjmp */ +extern int __setjmp(__jmp_buf __buf); +extern int __longjmp(__jmp_buf __buf, int __val); + +#define longjmp(buf, val) __longjmp(buf, val) + #define __sigsetjmp(env, savesigs) ((env)->__mask_was_saved = (savesigs), \ sigprocmask(SIG_SETMASK, 0, &(env)->__saved_mask), \ - setjmp(&(env)->__jmpbuf)) + __setjmp((env)->__jmpbuf)) #define siglongjmp(env, val) (((env)->__mask_was_saved ? \ sigprocmask(SIG_SETMASK, &(env)->__saved_mask, 0) : 0), \ - longjmp(&(env)->__jmpbuf, val)) + __longjmp((env)->__jmpbuf, val)) diff --git a/libc/sysdeps/linux/m68k/setjmp.S b/libc/sysdeps/linux/m68k/setjmp.S index 3ff05425f..d104d78ac 100644 --- a/libc/sysdeps/linux/m68k/setjmp.S +++ b/libc/sysdeps/linux/m68k/setjmp.S @@ -39,10 +39,10 @@ #define fp REG (fp) #define sp REG (sp) -.global SYM (setjmp) -.global SYM (longjmp) +.global SYM (__setjmp) +.global SYM (__longjmp) -SYM (setjmp): +SYM (__setjmp): moveal sp@(4),a0 movel sp@(0),a0@(12) movel sp,a0@(8) @@ -50,7 +50,7 @@ SYM (setjmp): clrl d0 rts -SYM (longjmp): +SYM (__longjmp): moveal sp@(4),a0 movel sp@(8),d0 bne 1f @@ -62,10 +62,10 @@ SYM (longjmp): rts #ifdef M68881 -.global SYM (setjmp_68881) -.global SYM (longjmp_68881) +.global SYM (__setjmp_68881) +.global SYM (__longjmp_68881) -SYM (setjmp_68881): +SYM (__setjmp_68881): moveal sp@(4),a0 movel sp@(0),a0@(12) movel sp,a0@(8) @@ -74,7 +74,7 @@ SYM (setjmp_68881): clrl d0 rts -SYM (longjmp_68881): +SYM (__longjmp_68881): moveal sp@(4),a0 fmovemx a0@(64),fp2-fp7 movel sp@(8),d0 |