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 Handle saving and restoring the fps...



details:   https://anonhg.NetBSD.org/src/rev/533cef7d0c7b
branches:  trunk
changeset: 511908:533cef7d0c7b
user:      eeh <eeh%NetBSD.org@localhost>
date:      Fri Jun 29 23:58:40 2001 +0000

description:
Handle saving and restoring the fpstate properly.
(Are these functions ever called?)

diffstat:

 sys/arch/sparc64/sparc64/emul.c |  10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diffs (33 lines):

diff -r ddea60102e9a -r 533cef7d0c7b sys/arch/sparc64/sparc64/emul.c
--- a/sys/arch/sparc64/sparc64/emul.c   Fri Jun 29 23:58:08 2001 +0000
+++ b/sys/arch/sparc64/sparc64/emul.c   Fri Jun 29 23:58:40 2001 +0000
@@ -1,7 +1,7 @@
-/*     $NetBSD: emul.c,v 1.7 2000/12/04 16:01:19 fvdl Exp $    */
+/*     $NetBSD: emul.c,v 1.8 2001/06/29 23:58:40 eeh Exp $     */
 
 /*-
- * Copyright (c) 1997 The NetBSD Foundation, Inc.
+ * Copyright (c) 1997, 2001 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
  * This code is derived from software contributed to The NetBSD Foundation
@@ -320,7 +320,10 @@
 
        if (op.bits.st) {
                if (op.bits.fl) {
-                       savefpstate(p->p_md.md_fpstate);
+                       if (p == fpproc) {
+                               savefpstate(p->p_md.md_fpstate);
+                               fpproc = NULL;
+                       }
 
                        error = readfpreg(p, code.i_op3.i_rd, &data.i[0]);
                        if (error)
@@ -378,6 +381,7 @@
                                        return error;
                        }
                        loadfpstate(p->p_md.md_fpstate);
+                       fpproc = p;
                }
                else {
                        error = writegpreg(tf, code.i_op3.i_rd, &data.i[0]);



Home | Main Index | Thread Index | Old Index