VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / include / asm-parisc / assembly.h
index b421d4b..5ba8c5c 100644 (file)
@@ -24,6 +24,7 @@
 #ifdef __LP64__
 #define LDREG  ldd
 #define STREG  std
+#define LDREGX  ldd,s
 #define LDREGM ldd,mb
 #define STREGM std,ma
 #define RP_OFFSET      16
 #else
 #define LDREG  ldw
 #define STREG  stw
+#define LDREGX  ldwx,s
 #define LDREGM ldwm
 #define STREGM stwm
 #define RP_OFFSET      20
 #define FRAME_SIZE     64
 #endif
 
+#ifdef CONFIG_PA20
+#define BL             b,l
+#else
+#define BL             bl
+#endif
+
 #ifdef __ASSEMBLY__
 
 #ifdef __LP64__
        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