Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/sparc64/sparc64 Save/restore only the FP register f...



details:   https://anonhg.NetBSD.org/src/rev/22f708cfc88b
branches:  trunk
changeset: 511306:22f708cfc88b
user:      kleink <kleink%NetBSD.org@localhost>
date:      Sun Jun 17 13:10:05 2001 +0000

description:
Save/restore only the FP register file as far as the 32-bit environment
is concerned; in particular, don't overrun the [mu]context.

diffstat:

 sys/arch/sparc64/sparc64/svr4_32_machdep.c |  8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diffs (29 lines):

diff -r 167db2556f3a -r 22f708cfc88b sys/arch/sparc64/sparc64/svr4_32_machdep.c
--- a/sys/arch/sparc64/sparc64/svr4_32_machdep.c        Sun Jun 17 12:36:14 2001 +0000
+++ b/sys/arch/sparc64/sparc64/svr4_32_machdep.c        Sun Jun 17 13:10:05 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: svr4_32_machdep.c,v 1.3 2001/05/11 17:37:15 kleink Exp $        */
+/*     $NetBSD: svr4_32_machdep.c,v 1.4 2001/06/17 13:10:05 kleink Exp $        */
 
 /*-
  * Copyright (c) 1994 The NetBSD Foundation, Inc.
@@ -180,7 +180,8 @@
        /*
         * Get the floating point registers
         */
-       bcopy(fps->fs_regs, f->fpu_regs, sizeof(fps->fs_regs));
+       /* Note: copies only pre-v9 floating point registers. */
+       bcopy(fps->fs_regs, f->fpu_regs, sizeof(f->fpu_regs));
        f->fp_nqsize = sizeof(struct fp_qentry);
        f->fp_nqel = fps->fs_qsize;
        f->fp_fsr = fps->fs_fsr;
@@ -309,7 +310,8 @@
 #endif
                        return EINVAL;
                }
-               bcopy(f->fpu_regs, fps->fs_regs, sizeof(fps->fs_regs));
+               /* Note: touches only pre-v9 floating point registers. */
+               bcopy(f->fpu_regs, fps->fs_regs, sizeof(f->fpu_regs));
                fps->fs_qsize = f->fp_nqel;
                fps->fs_fsr = f->fp_fsr;
                if (f->fp_q != 0) {



Home | Main Index | Thread Index | Old Index