diff options
author | Roland McGrath <roland@gnu.org> | 1994-12-04 18:46:59 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1994-12-04 18:46:59 +0000 |
commit | 4afe5be04199079b0f89b6a205e6ba2a4ada044c (patch) | |
tree | ed490c504003d285c182fce7521efc5c0b5515a9 /sysdeps/m68k | |
parent | 65377bcaa1cc419d3c547dc7241acfc5313ccdbe (diff) | |
download | glibc-4afe5be04199079b0f89b6a205e6ba2a4ada044c.tar glibc-4afe5be04199079b0f89b6a205e6ba2a4ada044c.tar.gz glibc-4afe5be04199079b0f89b6a205e6ba2a4ada044c.tar.bz2 glibc-4afe5be04199079b0f89b6a205e6ba2a4ada044c.zip |
Set members in ENV[0].__jmp_buf[0], not ENV[0].
Diffstat (limited to 'sysdeps/m68k')
-rw-r--r-- | sysdeps/m68k/setjmp.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/sysdeps/m68k/setjmp.c b/sysdeps/m68k/setjmp.c index acb831e655..75e06626e6 100644 --- a/sysdeps/m68k/setjmp.c +++ b/sysdeps/m68k/setjmp.c @@ -23,27 +23,26 @@ int __sigsetjmp (jmp_buf env, int savemask) { /* Save data registers D1 through D7. */ - asm volatile ("movem%.l d1-d7, %0" : : "m" (env[0].__dregs[0])); + asm volatile ("movem%.l d1-d7, %0" : : "m" (env[0].__jmp_buf[0].__dregs[0])); /* Save return address in place of register A0. */ - env[0].__aregs[0] = (PTR) ((PTR *) &env)[-1]; + env[0].__jmp_buf[0].__aregs[0] = (PTR) ((PTR *) &env)[-1]; /* Save address registers A1 through A5. */ - asm volatile ("movem%.l a1-a5, %0" : : "m" (env[0].__aregs[1])); - - /* Save the signal mask if requested. */ - __sigjmp_save (env, savemask); + asm volatile ("movem%.l a1-a5, %0" : : "m" (env[0].__jmp_buf[0].__aregs[1])); /* Save caller's FP, not our own. */ - env[0].__fp = (PTR) ((PTR *) &env)[-2]; + env[0].__jmp_buf[0].__fp = ((void **) &env)[-2]; /* Save caller's SP, not our own. */ - env[0].__sp = (PTR) &env; + env[0].__jmp_buf[0].__sp = (void *) &env; #if defined(__HAVE_68881__) || defined(__HAVE_FPU__) /* Save floating-point (68881) registers FP0 through FP7. */ - asm volatile("fmovem%.x fp0-fp7, %0" : : "m" (env[0].__fpregs[0])); + asm volatile ("fmovem%.x fp0-fp7, %0" + : : "m" (env[0].__jmp_buf[0].__fpregs[0])); #endif - return 0; + /* Save the signal mask if requested. */ + return __sigjmp_save (env, savemask); } |