diff options
author | Heiko Carstens <hca@linux.ibm.com> | 2024-11-07 16:11:45 +0100 |
---|---|---|
committer | Heiko Carstens <hca@linux.ibm.com> | 2024-11-13 14:31:33 +0100 |
commit | 0caf91f6d695dac811b7959c98625238390ad075 (patch) | |
tree | 2d4af275c195974d18ca3b701814fc9fe9d03768 | |
parent | a6122f690af6deefc67cc95a7d8139e63bdbdb39 (diff) | |
download | linux-0caf91f6d695dac811b7959c98625238390ad075.tar.gz linux-0caf91f6d695dac811b7959c98625238390ad075.tar.bz2 linux-0caf91f6d695dac811b7959c98625238390ad075.zip |
s390/string: Convert to use flag output macros
Use flag output macros in inline asm to allow for better code generation if
the compiler has support for the flag output constraint.
Reviewed-by: Juergen Christ <jchrist@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
-rw-r--r-- | arch/s390/lib/string.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/s390/lib/string.c b/arch/s390/lib/string.c index 7d8741818239..373fa1f01937 100644 --- a/arch/s390/lib/string.c +++ b/arch/s390/lib/string.c @@ -15,6 +15,7 @@ #include <linux/types.h> #include <linux/string.h> #include <linux/export.h> +#include <asm/asm.h> /* * Helper functions to find the end of a string @@ -238,12 +239,11 @@ static inline int clcle(const char *s1, unsigned long l1, asm volatile( "0: clcle %[r1],%[r3],0\n" " jo 0b\n" - " ipm %[cc]\n" - " srl %[cc],28\n" - : [cc] "=&d" (cc), [r1] "+&d" (r1.pair), [r3] "+&d" (r3.pair) + CC_IPM(cc) + : CC_OUT(cc, cc), [r1] "+d" (r1.pair), [r3] "+d" (r3.pair) : - : "cc", "memory"); - return cc; + : CC_CLOBBER_LIST("memory")); + return CC_TRANSFORM(cc); } /** |