MIPS: Fix write_gc0_* macros when writing zero
authorJames Hogan <james.hogan@imgtec.com>
Wed, 18 May 2016 16:04:38 +0000 (17:04 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Sat, 28 May 2016 10:35:05 +0000 (12:35 +0200)
The versions of the __write_{32,64}bit_gc0_register() macros for when
there is no virt support in the assembler use the "J" inline asm
constraint to allow integer zero, but this needs to be accompanied by
the "z" formatting string so that it turns into $0. Fix both macros to
do this.

Fixes: bad50d79255a ("MIPS: Fix VZ probe gas errors with binutils <2.24")
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/13289/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/include/asm/mipsregs.h

index 8471905f92881a45f3ae81ca6c88f87ff6aa1ab6..044219e741cc31f66563776cb53d7ec5185bf06c 100644 (file)
@@ -1773,7 +1773,7 @@ do {                                                                      \
        __asm__ __volatile__(                                           \
                ".set\tpush\n\t"                                        \
                ".set\tnoat\n\t"                                        \
-               "move\t$1, %0\n\t"                                      \
+               "move\t$1, %z0\n\t"                                     \
                "# mtgc0\t$1, $%1, %2\n\t"                              \
                ".word\t(0x40610200 | %1 << 11 | %2)\n\t"               \
                ".set\tpop"                                             \
@@ -1786,7 +1786,7 @@ do {                                                                      \
        __asm__ __volatile__(                                           \
                ".set\tpush\n\t"                                        \
                ".set\tnoat\n\t"                                        \
-               "move\t$1, %0\n\t"                                      \
+               "move\t$1, %z0\n\t"                                     \
                "# dmtgc0\t$1, $%1, %2\n\t"                             \
                ".word\t(0x40610300 | %1 << 11 | %2)\n\t"               \
                ".set\tpop"                                             \