powerpc/fsl: Modernise mt/mfpmr
authorMichael Ellerman <mpe@ellerman.id.au>
Thu, 29 Feb 2024 12:25:20 +0000 (23:25 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Sun, 3 Mar 2024 12:05:21 +0000 (23:05 +1100)
With the addition of the machine directives, these are no longer simple
1-2 liner macros. So modernise them to be static inlines and use named
asm parameters.

Acked-by: Segher Boessenkool <segher@kernel.crashing.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240229122521.762431-4-mpe@ellerman.id.au
arch/powerpc/include/asm/reg_fsl_emb.h

index 8359c06d92d9f8a486c027aad3b76dea1234a226..b0563c30b06216a19c978291bf648ab8c6bfbb9d 100644 (file)
 
 #ifndef __ASSEMBLY__
 /* Performance Monitor Registers */
-#define mfpmr(rn)      ({unsigned int rval; \
-                       asm volatile(".machine push; " \
-                                    ".machine e300; " \
-                                    "mfpmr %0," __stringify(rn) ";" \
-                                    ".machine pop; " \
-                                    : "=r" (rval)); rval;})
-#define mtpmr(rn, v)   asm volatile(".machine push; " \
-                                    ".machine e300; " \
-                                    "mtpmr " __stringify(rn) ",%0; " \
-                                    ".machine pop; " \
-                                    : : "r" (v))
+static inline unsigned int mfpmr(unsigned int rn)
+{
+       unsigned int rval;
+
+       asm (".machine push; "
+            ".machine e300; "
+            "mfpmr %[rval], %[rn];"
+            ".machine pop;"
+            : [rval] "=r" (rval) : [rn] "i" (rn));
+
+       return rval;
+}
+
+static inline void mtpmr(unsigned int rn, unsigned int val)
+{
+       asm (".machine push; "
+            ".machine e300; "
+            "mtpmr %[rn], %[val];"
+            ".machine pop;"
+            : [val] "=r" (val) : [rn] "i" (rn));
+}
 #endif /* __ASSEMBLY__ */
 
 /* Freescale Book E Performance Monitor APU Registers */