powerpc/reg: use ASM_FTR_IFSET() instead of opencoding fixup.
authorChristophe Leroy <christophe.leroy@c-s.fr>
Wed, 28 Aug 2019 13:42:01 +0000 (13:42 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 18 Nov 2019 11:27:52 +0000 (22:27 +1100)
mftb() includes a feature fixup for CELL ppc.

Use ASM_FTR_IFSET() macro instead of opencoding the setup
of the fixup sections.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/ac19713826fa55e9e7bfe3100c5a7b1712ab9526.1566999711.git.christophe.leroy@c-s.fr
arch/powerpc/include/asm/reg.h

index b3cbb1136bce0878148eb967dbd966755936dc76..f3f368819f9c0f532f622dab5349b109977fa93d 100644 (file)
@@ -1384,19 +1384,9 @@ static inline void msr_check_and_clear(unsigned long bits)
 #define mftb()         ({unsigned long rval;                           \
                        asm volatile(                                   \
                                "90:    mfspr %0, %2;\n"                \
-                               "97:    cmpwi %0,0;\n"                  \
-                               "       beq- 90b;\n"                    \
-                               "99:\n"                                 \
-                               ".section __ftr_fixup,\"a\"\n"          \
-                               ".align 3\n"                            \
-                               "98:\n"                                 \
-                               "       .8byte %1\n"                    \
-                               "       .8byte %1\n"                    \
-                               "       .8byte 97b-98b\n"               \
-                               "       .8byte 99b-98b\n"               \
-                               "       .8byte 0\n"                     \
-                               "       .8byte 0\n"                     \
-                               ".previous"                             \
+                               ASM_FTR_IFSET(                          \
+                                       "97:    cmpwi %0,0;\n"          \
+                                       "       beq- 90b;\n", "", %1)   \
                        : "=r" (rval) \
                        : "i" (CPU_FTR_CELL_TB_BUG), "i" (SPRN_TBRL) : "cr0"); \
                        rval;})