]> err.no Git - linux-2.6/blobdiff - include/asm-sparc64/ttable.h
Merge branches 'at91', 'dyntick', 'ep93xx', 'iop', 'ixp', 'misc', 'orion', 'omap...
[linux-2.6] / include / asm-sparc64 / ttable.h
index 7208a777750e77e624507f7ce4a53b5c44335c0d..0ba199587e07ba649555ac747f4e19376ce3d2a0 100644 (file)
@@ -1,4 +1,3 @@
-/* $Id: ttable.h,v 1.18 2002/02/09 19:49:32 davem Exp $ */
 #ifndef _SPARC64_TTABLE_H
 #define _SPARC64_TTABLE_H
 
@@ -28,7 +27,7 @@
        call    routine;                                \
         add    %sp, PTREGS_OFF, %o0;                   \
        ba,pt   %xcc, rtrap;                            \
-        clr    %l6;                                    \
+        nop;                                           \
        nop;
 
 #define TRAP_7INSNS(routine)                           \
@@ -38,7 +37,7 @@
        call    routine;                                \
         add    %sp, PTREGS_OFF, %o0;                   \
        ba,pt   %xcc, rtrap;                            \
-        clr    %l6;
+        nop;
 
 #define TRAP_SAVEFPU(routine)                          \
        sethi   %hi(109f), %g7;                         \
@@ -47,7 +46,7 @@
        call    routine;                                \
         add    %sp, PTREGS_OFF, %o0;                   \
        ba,pt   %xcc, rtrap;                            \
-        clr    %l6;                                    \
+        nop;                                           \
        nop;
 
 #define TRAP_NOSAVE(routine)                           \
@@ -67,7 +66,7 @@
        call    routine;                                \
         add    %sp, PTREGS_OFF, %o0;                   \
        ba,pt   %xcc, rtrap;                            \
-        clr    %l6;                                    \
+        nop;                                           \
        nop;
        
 #define TRAP_ARG(routine, arg)                         \
@@ -78,7 +77,7 @@
        call    routine;                                \
         mov    arg, %o1;                               \
        ba,pt   %xcc, rtrap;                            \
-        clr    %l6;
+        nop;
        
 #define TRAPTL1_ARG(routine, arg)                      \
        sethi   %hi(109f), %g7;                         \
        call    routine;                                \
         mov    arg, %o1;                               \
        ba,pt   %xcc, rtrap;                            \
-        clr    %l6;
+        nop;
        
 #define SYSCALL_TRAP(routine, systbl)                  \
+       rdpr    %pil, %g2;                              \
+       mov     TSTATE_SYSCALL, %g3;                    \
        sethi   %hi(109f), %g7;                         \
-       ba,pt   %xcc, etrap;                            \
+       ba,pt   %xcc, etrap_syscall;                    \
 109:    or     %g7, %lo(109b), %g7;                    \
        sethi   %hi(systbl), %l7;                       \
        ba,pt   %xcc, routine;                          \
-        or     %l7, %lo(systbl), %l7;                  \
-       nop; nop;
+        or     %l7, %lo(systbl), %l7;
        
 #define TRAP_UTRAP(handler,lvl)                                \
        mov     handler, %g3;                           \
        ldx     [%sp + PTREGS_OFF + PT_V9_TNPC], %l1;                   \
        add     %l1, 4, %l2;                                            \
        stx     %l1, [%sp + PTREGS_OFF + PT_V9_TPC];                    \
-       ba,pt   %xcc, rtrap_clr_l6;                                     \
+       ba,pt   %xcc, rtrap;                                            \
         stx    %l2, [%sp + PTREGS_OFF + PT_V9_TNPC];
                
 #ifdef CONFIG_KPROBES
 #define KPROBES_TRAP(lvl) TRAP_ARG(bad_trap, lvl)
 #endif
 
+#ifdef CONFIG_KGDB
+#define KGDB_TRAP(lvl) TRAP_IRQ(kgdb_trap, lvl)
+#else
+#define KGDB_TRAP(lvl) TRAP_ARG(bad_trap, lvl)
+#endif
+
 #define SUN4V_ITSB_MISS                                        \
        ldxa    [%g0] ASI_SCRATCHPAD, %g2;              \
        ldx     [%g2 + HV_FAULT_I_ADDR_OFFSET], %g4;    \