Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/powerpc/powerpc If ALTIVEC is not defined, treat EX...



details:   https://anonhg.NetBSD.org/src/rev/6e7c43c6f3d4
branches:  trunk
changeset: 533334:6e7c43c6f3d4
user:      matt <matt%NetBSD.org@localhost>
date:      Thu Jun 27 21:15:35 2002 +0000

description:
If ALTIVEC is not defined, treat EXC_VEC|EXC_USER exceptions as PGM
exceptions.  [Note that we still can't trap these due to issues in
trap_subr.S which are (yet) fixed]

diffstat:

 sys/arch/powerpc/powerpc/trap.c |  30 ++++++++++++++++--------------
 1 files changed, 16 insertions(+), 14 deletions(-)

diffs (54 lines):

diff -r 58d3c1c427b0 -r 6e7c43c6f3d4 sys/arch/powerpc/powerpc/trap.c
--- a/sys/arch/powerpc/powerpc/trap.c   Thu Jun 27 21:03:37 2002 +0000
+++ b/sys/arch/powerpc/powerpc/trap.c   Thu Jun 27 21:15:35 2002 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: trap.c,v 1.61 2002/06/17 21:07:40 christos Exp $       */
+/*     $NetBSD: trap.c,v 1.62 2002/06/27 21:15:35 matt Exp $   */
 
 /*
  * Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -339,18 +339,6 @@
                enable_fpu(p);
                break;
 
-#ifdef ALTIVEC
-       case EXC_VEC|EXC_USER:
-               curcpu()->ci_ev_vec.ev_count++;
-               if (vecproc) {
-                       curcpu()->ci_ev_vecsw.ev_count++;
-                       save_vec(vecproc);
-               }
-               vecproc = p;
-               enable_vec(p);
-               break;
-#endif
-
        case EXC_AST|EXC_USER:
                astpending = 0;         /* we are about to do it */
                KERNEL_PROC_LOCK(p);
@@ -382,10 +370,24 @@
                KERNEL_PROC_UNLOCK(p);
                break;
 
+       case EXC_VEC|EXC_USER:
+#ifdef ALTIVEC
+               curcpu()->ci_ev_vec.ev_count++;
+               if (vecproc) {
+                       curcpu()->ci_ev_vecsw.ev_count++;
+                       save_vec(vecproc);
+               }
+               vecproc = p;
+               enable_vec(p);
+               break;
+#else
+               /* FALLTHROUGH */
+#endif
+
        case EXC_PGM|EXC_USER:
 /* XXX temporarily */
+               curcpu()->ci_ev_pgm.ev_count++;
                KERNEL_PROC_LOCK(p);
-               curcpu()->ci_ev_pgm.ev_count++;
                if (cpu_printfataltraps) {
                        printf("trap: pid %d (%s): user PGM trap @ %#x "
                            "(SSR1=%#x)\n",



Home | Main Index | Thread Index | Old Index