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.
Signed-off-by: Michael Ellerman
---
arch/powerpc/include/asm/reg_fsl_emb.h | 32 +-
1 file changed, 21 insertions(+), 11 deletions(-)
diff --git a/arch/powerpc/include/asm/reg_fsl_emb.h
b/arch/powerpc/include/asm/reg_fsl_emb.h
index 8359c06d92d9..b0563c30b062 100644
--- a/arch/powerpc/include/asm/reg_fsl_emb.h
+++ b/arch/powerpc/include/asm/reg_fsl_emb.h
@@ -11,17 +11,27 @@
#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 */
--
2.43.2