fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / asm-sparc64 / head.h
index 0abd3a6..67960a7 100644 (file)
@@ -4,12 +4,21 @@
 
 #include <asm/pstate.h>
 
+       /* wrpr %g0, val, %gl */
+#define SET_GL(val)    \
+       .word   0xa1902000 | val
+
+       /* rdpr %gl, %gN */
+#define GET_GL_GLOBAL(N)       \
+       .word   0x81540000 | (N << 25)
+
 #define KERNBASE       0x400000
 
 #define        PTREGS_OFF      (STACK_BIAS + STACKFRAME_SZ)
 
 #define __CHEETAH_ID   0x003e0014
 #define __JALAPENO_ID  0x003e0016
+#define __SERRANO_ID   0x003e0022
 
 #define CHEETAH_MANUF          0x003e
 #define CHEETAH_IMPL           0x0014 /* Ultra-III   */
 #define PANTHER_IMPL           0x0019 /* Ultra-IV+   */
 #define SERRANO_IMPL           0x0022 /* Ultra-IIIi+ */
 
+#define BRANCH_IF_SUN4V(tmp1,label)            \
+       sethi   %hi(is_sun4v), %tmp1;           \
+       lduw    [%tmp1 + %lo(is_sun4v)], %tmp1; \
+       brnz,pn %tmp1, label;                   \
+        nop
+
 #define BRANCH_IF_CHEETAH_BASE(tmp1,tmp2,label)        \
        rdpr    %ver, %tmp1;                    \
        sethi   %hi(__CHEETAH_ID), %tmp2;       \