ARM: 8962/1: kexec: drop invalid assembly argument
authorStefan Agner <stefan@agner.ch>
Fri, 21 Feb 2020 22:35:08 +0000 (23:35 +0100)
committerRussell King <rmk+kernel@armlinux.org.uk>
Thu, 12 Mar 2020 11:29:02 +0000 (11:29 +0000)
The tst menomic has only a single #<const> argument in Thumb mode. There
is an ARM variant which allows to write #<const> as #<byte>, #<rot>
which probably is where the current syntax comes from.

It seems that binutils does not care about the additional parameter.
Clang however complains in Thumb2 mode:
arch/arm/kernel/relocate_kernel.S:28:12: error: too many operands for
instruction
 tst r3,#1,0
           ^

Drop the unnecessary parameter. This fixes building this file in Thumb2
mode with the Clang integrated assembler.

Link: https://github.com/ClangBuiltLinux/linux/issues/770
Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
arch/arm/kernel/relocate_kernel.S

index 7eaa2ae..72a0878 100644 (file)
@@ -25,26 +25,26 @@ ENTRY(relocate_new_kernel)
        ldr     r3, [r0],#4
 
        /* Is it a destination page. Put destination address to r4 */
-       tst     r3,#1,0
+       tst     r3,#1
        beq     1f
        bic     r4,r3,#1
        b       0b
 1:
        /* Is it an indirection page */
-       tst     r3,#2,0
+       tst     r3,#2
        beq     1f
        bic     r0,r3,#2
        b       0b
 1:
 
        /* are we done ? */
-       tst     r3,#4,0
+       tst     r3,#4
        beq     1f
        b       2f
 
 1:
        /* is it source ? */
-       tst     r3,#8,0
+       tst     r3,#8
        beq     0b
        bic r3,r3,#8
        mov r6,#1024