]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
s390/smp: Convert to use flag output macros
authorHeiko Carstens <hca@linux.ibm.com>
Thu, 7 Nov 2024 15:11:42 +0000 (16:11 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Wed, 13 Nov 2024 13:31:32 +0000 (14:31 +0100)
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>
arch/s390/include/asm/sigp.h

index edee63da08e7274005bed312f6740c208b1fe7eb..472943b770662d697cc5c86541123f004ad43666 100644 (file)
@@ -38,6 +38,8 @@
 
 #ifndef __ASSEMBLY__
 
+#include <asm/asm.h>
+
 static inline int ____pcpu_sigp(u16 addr, u8 order, unsigned long parm,
                                u32 *status)
 {
@@ -46,13 +48,12 @@ static inline int ____pcpu_sigp(u16 addr, u8 order, unsigned long parm,
 
        asm volatile(
                "       sigp    %[r1],%[addr],0(%[order])\n"
-               "       ipm     %[cc]\n"
-               "       srl     %[cc],28\n"
-               : [cc] "=&d" (cc), [r1] "+&d" (r1.pair)
+               CC_IPM(cc)
+               : CC_OUT(cc, cc), [r1] "+d" (r1.pair)
                : [addr] "d" (addr), [order] "a" (order)
-               : "cc");
+               : CC_CLOBBER);
        *status = r1.even;
-       return cc;
+       return CC_TRANSFORM(cc);
 }
 
 static inline int __pcpu_sigp(u16 addr, u8 order, unsigned long parm,