From 9aad9d912f0ea64471669ecde4beea9e9ead4989 Mon Sep 17 00:00:00 2001 From: dfr Date: Wed, 30 Dec 1998 10:38:59 +0000 Subject: 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. --- sys/powerpc/aim/vm_machdep.c | 10 +++++----- sys/powerpc/powerpc/vm_machdep.c | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) (limited to 'sys/powerpc') 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); } /* -- cgit v1.1