3100 changes (from ralph)
authorMarc Teitelbaum <marc@ucbvax.Berkeley.EDU>
Thu, 21 Nov 1991 08:39:44 +0000 (00:39 -0800)
committerMarc Teitelbaum <marc@ucbvax.Berkeley.EDU>
Thu, 21 Nov 1991 08:39:44 +0000 (00:39 -0800)
SCCS-vsn: sys/vm/vm_glue.c 7.12

usr/src/sys/vm/vm_glue.c

index 4406e02..0c7e12a 100644 (file)
@@ -7,7 +7,7 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)vm_glue.c   7.11 (Berkeley) %G%
+ *     @(#)vm_glue.c   7.12 (Berkeley) %G%
  *
  *
  * Copyright (c) 1987, 1990 Carnegie-Mellon University.
  *
  *
  * Copyright (c) 1987, 1990 Carnegie-Mellon University.
@@ -429,6 +429,20 @@ swapout(p)
                addr = (vm_offset_t) p->p_addr;
        }
 #endif
                addr = (vm_offset_t) p->p_addr;
        }
 #endif
+#ifdef mips
+       /*
+        * Be sure to save the floating point coprocessor state before
+        * paging out the u-struct.
+        */
+       {
+               extern struct proc *machFPCurProcPtr;
+
+               if (p == machFPCurProcPtr) {
+                       MachSaveCurFPState(p);
+                       machFPCurProcPtr = (struct proc *)0;
+               }
+       }
+#endif
 #ifndef        i386 /* temporary measure till we find spontaineous unwire of kstack */
        vm_map_pageable(kernel_map, addr, addr+size, TRUE);
        pmap_collect(vm_map_pmap(&p->p_vmspace->vm_map));
 #ifndef        i386 /* temporary measure till we find spontaineous unwire of kstack */
        vm_map_pageable(kernel_map, addr, addr+size, TRUE);
        pmap_collect(vm_map_pmap(&p->p_vmspace->vm_map));