]> sourceware.org Git - glibc.git/commitdiff
Set members in ENV[0].__jmp_buf[0], not ENV[0].
authorRoland McGrath <roland@gnu.org>
Sun, 4 Dec 1994 18:46:59 +0000 (18:46 +0000)
committerRoland McGrath <roland@gnu.org>
Sun, 4 Dec 1994 18:46:59 +0000 (18:46 +0000)
sysdeps/m68k/setjmp.c

index acb831e6552567880a1db1f2b1af73f0bb8a44ba..75e06626e6346b4a6749c089f3ebe3b073f4f940 100644 (file)
@@ -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);
 }
This page took 0.041293 seconds and 5 git commands to generate.