vserver 2.0 rc7
[linux-2.6.git] / include / asm-parisc / assembly.h
index b421d4b..cbc286f 100644 (file)
 #ifdef __LP64__
 #define LDREG  ldd
 #define STREG  std
+#define LDREGX  ldd,s
 #define LDREGM ldd,mb
 #define STREGM std,ma
+#define SHRREG  shrd
 #define RP_OFFSET      16
 #define FRAME_SIZE     128
+#define CALLEE_SAVE_FRAME_SIZE 144
 #else
 #define LDREG  ldw
 #define STREG  stw
+#define LDREGX  ldwx,s
 #define LDREGM ldwm
 #define STREGM stwm
+#define SHRREG  shr
 #define RP_OFFSET      20
 #define FRAME_SIZE     64
+#define CALLEE_SAVE_FRAME_SIZE 128
+#endif
+
+#ifdef CONFIG_PA20
+#define BL             b,l
+# ifdef CONFIG_64BIT
+#  define LEVEL                2.0w
+# else
+#  define LEVEL                2.0
+# endif
+#else
+#define BL             bl
+#define LEVEL          1.1
 #endif
 
 #ifdef __ASSEMBLY__
        depd,z  \r, 63-\sa, 64-\sa, \t
        .endm
 
+       /* Shift Right - note the r and t can NOT be the same! */
+       .macro shr r, sa, t
+       extru \r, 31-\sa, 32-\sa, \t
+       .endm
+
+       /* pa20w version of shift right */
+       .macro shrd r, sa, t
+       extrd,u \r, 63-\sa, 64-\sa, \t
+       .endm
+
        /* load 32-bit 'value' into 'reg' compensating for the ldil
         * sign-extension when running in wide mode.
         * WARNING!! neither 'value' nor 'reg' can be expressions
 
 #ifdef __LP64__
        .macro  callee_save
-       std,ma    %r3,  144(%r30)
+       std,ma    %r3,  CALLEE_SAVE_FRAME_SIZE(%r30)
        mfctl     %cr27, %r3
        std       %r4,  -136(%r30)
        std       %r5,  -128(%r30)
        ldd     -128(%r30),    %r5
        ldd     -136(%r30),    %r4
        mtctl   %r3, %cr27
-       ldd,mb  -144(%r30),    %r3
+       ldd,mb  -CALLEE_SAVE_FRAME_SIZE(%r30),    %r3
        .endm
 
 #else /* ! __LP64__ */
 
        .macro  callee_save
-       stw,ma   %r3,   128(%r30)
+       stw,ma   %r3,   CALLEE_SAVE_FRAME_SIZE(%r30)
        mfctl    %cr27, %r3
        stw      %r4,   -124(%r30)
        stw      %r5,   -120(%r30)
        ldw     -120(%r30),   %r5
        ldw     -124(%r30),   %r4
        mtctl   %r3, %cr27
-       ldw,mb  -128(%r30),   %r3
+       ldw,mb  -CALLEE_SAVE_FRAME_SIZE(%r30),   %r3
        .endm
 #endif /* ! __LP64__ */