diff mbox series

parisc: Define depi_safe macro

Message ID 17bb5945-3d04-2eef-5413-7ccde0b3b4b9@bell.net (mailing list archive)
State Accepted, archived
Headers show
Series parisc: Define depi_safe macro | expand

Commit Message

John David Anglin Dec. 21, 2021, 8:04 p.m. UTC
Define depi_safe macro.

The depi instruction is similar to the extru instruction on 64-bit machines. It leaves
the most-significant 32 bits of the target register in an undefined state.  On 64-bit
machines, the macro uses depdi to perform safe deposits in the least-significant 32 bits.

Signed-off-by: John David Anglin <dave.anglin@bell.net>
---
diff mbox series

Patch

diff --git a/arch/parisc/include/asm/assembly.h b/arch/parisc/include/asm/assembly.h
index 6d13ae236fcb..6369082c6c74 100644
--- a/arch/parisc/include/asm/assembly.h
+++ b/arch/parisc/include/asm/assembly.h
@@ -158,6 +158,16 @@ 
  #endif
  	.endm

+	/* The depi instruction leaves the most significant 32 bits of the
+	 * target register in an undefined state on PA 2.0 systems. */
+	.macro depi_safe i, p, len, t
+#ifdef CONFIG_64BIT
+	depdi	\i, 32+(\p), \len, \t
+#else
+	depi	\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