diff options
author | John David Anglin <dave.anglin@bell.net> | 2021-12-21 21:04:53 +0100 |
---|---|---|
committer | Helge Deller <deller@gmx.de> | 2022-01-07 01:29:20 +0100 |
commit | 45458aa49abe3b0ac68ce86b3d4ca3a97eaeac53 (patch) | |
tree | 9f5b2b905e69adfe95030fa02ca4d818b36624f7 /arch/parisc | |
parent | parisc: decompressor: do not copy source files while building (diff) | |
download | linux-45458aa49abe3b0ac68ce86b3d4ca3a97eaeac53.tar.xz linux-45458aa49abe3b0ac68ce86b3d4ca3a97eaeac53.zip |
parisc: 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>
Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'arch/parisc')
-rw-r--r-- | arch/parisc/include/asm/assembly.h | 10 |
1 files changed, 10 insertions, 0 deletions
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 |