summaryrefslogtreecommitdiffstats
path: root/sys/powerpc
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>1998-12-30 10:38:59 +0000
committerdfr <dfr@FreeBSD.org>1998-12-30 10:38:59 +0000
commit9aad9d912f0ea64471669ecde4beea9e9ead4989 (patch)
tree26f76c3cf94310fcb261c62fe3f86fbe1b71440e /sys/powerpc
parent14201fe4faa19db2e4da4f4944573149b4654cb8 (diff)
downloadFreeBSD-src-9aad9d912f0ea64471669ecde4beea9e9ead4989.zip
FreeBSD-src-9aad9d912f0ea64471669ecde4beea9e9ead4989.tar.gz
Various changes to support OSF1 emulation:
* Move the user stack from VM_MAXUSER_ADDRESS to a place below the 32bit boundary (needed to support 32bit OSF programs). This should also save one pagetable per process. * Add cvtqlsv to the set of instructions handled by the floating point software completion code. * Disable all floating point exceptions by default. * A minor change to execve to allow the OSF1 image activator to support dynamic loading.
Diffstat (limited to 'sys/powerpc')
-rw-r--r--sys/powerpc/aim/vm_machdep.c10
-rw-r--r--sys/powerpc/powerpc/vm_machdep.c10
2 files changed, 10 insertions, 10 deletions
diff --git a/sys/powerpc/aim/vm_machdep.c b/sys/powerpc/aim/vm_machdep.c
index e850785..592a089 100644
--- a/sys/powerpc/aim/vm_machdep.c
+++ b/sys/powerpc/aim/vm_machdep.c
@@ -38,7 +38,7 @@
*
* from: @(#)vm_machdep.c 7.3 (Berkeley) 5/13/91
* Utah $Hdr: vm_machdep.c 1.16.1.1 89/06/23$
- * $Id: vm_machdep.c,v 1.5 1998/12/04 10:52:47 dfr Exp $
+ * $Id: vm_machdep.c,v 1.6 1998/12/16 15:21:50 bde Exp $
*/
/*
* Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University.
@@ -151,11 +151,11 @@ cpu_fork(p1, p2)
* Set the floating point state.
*/
if ((p2->p_addr->u_pcb.pcb_fp_control & IEEE_INHERIT) == 0) {
- p2->p_addr->u_pcb.pcb_fp_control = (IEEE_TRAP_ENABLE_INV
- | IEEE_TRAP_ENABLE_DZE
- | IEEE_TRAP_ENABLE_OVF);
+ p2->p_addr->u_pcb.pcb_fp_control = 0;
p2->p_addr->u_pcb.pcb_fp.fpr_cr = (FPCR_DYN_NORMAL
- | FPCR_INED | FPCR_UNFD);
+ | FPCR_INVD | FPCR_DZED
+ | FPCR_OVFD | FPCR_INED
+ | FPCR_UNFD);
}
/*
diff --git a/sys/powerpc/powerpc/vm_machdep.c b/sys/powerpc/powerpc/vm_machdep.c
index e850785..592a089 100644
--- a/sys/powerpc/powerpc/vm_machdep.c
+++ b/sys/powerpc/powerpc/vm_machdep.c
@@ -38,7 +38,7 @@
*
* from: @(#)vm_machdep.c 7.3 (Berkeley) 5/13/91
* Utah $Hdr: vm_machdep.c 1.16.1.1 89/06/23$
- * $Id: vm_machdep.c,v 1.5 1998/12/04 10:52:47 dfr Exp $
+ * $Id: vm_machdep.c,v 1.6 1998/12/16 15:21:50 bde Exp $
*/
/*
* Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University.
@@ -151,11 +151,11 @@ cpu_fork(p1, p2)
* Set the floating point state.
*/
if ((p2->p_addr->u_pcb.pcb_fp_control & IEEE_INHERIT) == 0) {
- p2->p_addr->u_pcb.pcb_fp_control = (IEEE_TRAP_ENABLE_INV
- | IEEE_TRAP_ENABLE_DZE
- | IEEE_TRAP_ENABLE_OVF);
+ p2->p_addr->u_pcb.pcb_fp_control = 0;
p2->p_addr->u_pcb.pcb_fp.fpr_cr = (FPCR_DYN_NORMAL
- | FPCR_INED | FPCR_UNFD);
+ | FPCR_INVD | FPCR_DZED
+ | FPCR_OVFD | FPCR_INED
+ | FPCR_UNFD);
}
/*
OpenPOWER on IntegriCloud