PERFORCE change 37640 for review

Peter Wemm peter at FreeBSD.org
Fri Sep 5 19:11:15 PDT 2003


http://perforce.freebsd.org/chv.cgi?CH=37640

Change 37640 by peter at peter_daintree on 2003/09/05 19:10:50

	back out

Affected files ...

.. //depot/projects/ezm3/libs/m3core/src/C/FBSD_AMD64/Csetjmp.i3#6 edit
.. //depot/projects/ezm3/libs/m3core/src/runtime/FBSD_AMD64/RTThread.m3#3 edit

Differences ...

==== //depot/projects/ezm3/libs/m3core/src/C/FBSD_AMD64/Csetjmp.i3#6 (text+ko) ====

@@ -14,12 +14,11 @@
   jmp_buf = ARRAY [0..11] OF long; (* actually, this is a sigjmp_buf,
                                      just in case *)
 
-  (* We use a special state for context switching due to floating point,
-     which setjmp/longjmp do not deal with. Record length = 72 longs. *)
-  fpjmp_buf = RECORD
-    int_stuff: ARRAY [0..7] OF long; (* integer registers *)
-    fp_stuff:  ARRAY [0..31] OF long_double; (* floating point fxsave *)
-  END;
+  fpjmp_buf = ARRAY [0..71] OF long; (* this is needed to hold the
+                                       fpu state, which the ordinary
+                                       versions of setjmp/longjmp 
+                                       do not save and restore *)
+
 
 <*EXTERNAL "setjmp"   *> PROCEDURE setjmp (VAR env: jmp_buf): int;
 <*EXTERNAL "longjmp"  *> PROCEDURE longjmp (VAR env: jmp_buf; val: int);

==== //depot/projects/ezm3/libs/m3core/src/runtime/FBSD_AMD64/RTThread.m3#3 (text+ko) ====

@@ -16,7 +16,7 @@
 
 PROCEDURE SP (READONLY s: State): ADDRESS =
   BEGIN
-    RETURN LOOPHOLE (s.int_stuff [SP_pos], ADDRESS);
+    RETURN LOOPHOLE (s [SP_pos], ADDRESS);
   END SP;
 
 (*--------------------------------------------------------- thread stacks ---*)
@@ -70,7 +70,7 @@
 
 PROCEDURE UpdateStateForNewSP (VAR s: State; offset: INTEGER) =
   BEGIN
-    INC (s.int_stuff [SP_pos], offset);
+    INC (s [SP_pos], offset);
   END UpdateStateForNewSP;
 
 PROCEDURE UpdateFrameForNewSP (<*UNUSED*> a: ADDRESS;


More information about the p4-projects mailing list