From: Roland McGrath Date: Sun, 4 Dec 1994 18:46:59 +0000 (+0000) Subject: Set members in ENV[0].__jmp_buf[0], not ENV[0]. X-Git-Tag: glibc-2.16-ports-before-merge~4016 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=4afe5be04199079b0f89b6a205e6ba2a4ada044c;p=glibc.git Set members in ENV[0].__jmp_buf[0], not ENV[0]. --- 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); }