Message ID | ab67c7c5a1f96af6d22240e57fc27ba766d4193d.1580943526.git.stefan@agner.ch (mailing list archive) |
---|---|
State | Mainlined |
Commit | 91274f962e942c23c97ba7e4c7fa04277c533a45 |
Headers | show |
Series | ARM: kexec: drop invalid assembly argument | expand |
On Wed, Feb 05, 2020 at 11:59:26PM +0100, Stefan Agner wrote: > 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> Please drop it in the patch system, thanks. > --- > arch/arm/kernel/relocate_kernel.S | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/arch/arm/kernel/relocate_kernel.S b/arch/arm/kernel/relocate_kernel.S > index 7eaa2ae7aff5..72a08786e16e 100644 > --- a/arch/arm/kernel/relocate_kernel.S > +++ b/arch/arm/kernel/relocate_kernel.S > @@ -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 > -- > 2.25.0 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >
On Wed, Feb 5, 2020 at 3:54 PM Russell King - ARM Linux admin <linux@armlinux.org.uk> wrote: > > On Wed, Feb 05, 2020 at 11:59:26PM +0100, Stefan Agner wrote: > > 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> > > Please drop it in the patch system, thanks. Hi Stefan, did you add this to the patch tracking system? Looks like a bunch got accepted, but I didn't see it in: https://www.armlinux.org.uk/developer/patches/section.php?section=20&page=132 > > > --- > > arch/arm/kernel/relocate_kernel.S | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/arch/arm/kernel/relocate_kernel.S b/arch/arm/kernel/relocate_kernel.S > > index 7eaa2ae7aff5..72a08786e16e 100644 > > --- a/arch/arm/kernel/relocate_kernel.S > > +++ b/arch/arm/kernel/relocate_kernel.S > > @@ -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 > > -- > > 2.25.0 > > > > > > _______________________________________________ > > linux-arm-kernel mailing list > > linux-arm-kernel@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > > > > -- > RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ > FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up > According to speedtest.net: 11.9Mbps down 500kbps up > > -- > You received this message because you are subscribed to the Google Groups "Clang Built Linux" group. > To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20200205235440.GW25745%40shell.armlinux.org.uk.
diff --git a/arch/arm/kernel/relocate_kernel.S b/arch/arm/kernel/relocate_kernel.S index 7eaa2ae7aff5..72a08786e16e 100644 --- a/arch/arm/kernel/relocate_kernel.S +++ b/arch/arm/kernel/relocate_kernel.S @@ -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
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> --- arch/arm/kernel/relocate_kernel.S | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)