parisc: Add dep_safe() macro to deposit a register in 32- and 64-kernels
authorHelge Deller <deller@gmx.de>
Tue, 17 May 2022 15:03:01 +0000 (17:03 +0200)
committerHelge Deller <deller@gmx.de>
Mon, 23 May 2022 11:44:24 +0000 (13:44 +0200)
Signed-off-by: Helge Deller <deller@gmx.de>
arch/parisc/include/asm/assembly.h

index be784b4..0f0d4a4 100644 (file)
 #endif
        .endm
 
+       /* The depw instruction leaves the most significant 32 bits of the
+        * target register in an undefined state on PA 2.0 systems. */
+       .macro dep_safe i, p, len, t
+#ifdef CONFIG_64BIT
+       depd    \i, 32+(\p), \len, \t
+#else
+       depw    \i, \p, \len, \t
+#endif
+       .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