diff mbox series

kselftest/arm64: Fix build with stricter assemblers

Message ID 20241108-arm64-selftest-asm-error-v1-1-7ce27b42a677@kernel.org
State New
Headers show
Series kselftest/arm64: Fix build with stricter assemblers | expand

Commit Message

Mark Brown Nov. 8, 2024, 3:20 p.m. UTC
While some assemblers (including the LLVM assembler I mostly use) will
happily accept SMSTART as an instruction by default others, specifically
gas, require that any architecture extensions be explicitly enabled.
The assembler SME test programs use manually encoded helpers for the new
instructions but no SMSTART helper is defined, only SM and ZA specific
variants.  Unfortunately the irritators that were just added use plain
SMSTART so on stricter assemblers these fail to build:

za-test.S:160: Error: selected processor does not support `smstart'

Switch to using SMSTART ZA via the manually encoded smstart_za macro we
already have defined.

Fixes: d65f27d240bb ("kselftest/arm64: Implement irritators for ZA and ZT")
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 tools/testing/selftests/arm64/fp/za-test.S | 2 +-
 tools/testing/selftests/arm64/fp/zt-test.S | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)


---
base-commit: 95ad089d464da2a4cd4511fb077f25994104c8f1
change-id: 20241108-arm64-selftest-asm-error-d78570e50b3b

Best regards,

Comments

Catalin Marinas Nov. 8, 2024, 3:29 p.m. UTC | #1
On Fri, Nov 08, 2024 at 03:27:58PM +0000, Catalin Marinas wrote:
> On Fri, Nov 08, 2024 at 03:20:46PM +0000, Mark Brown wrote:
> > While some assemblers (including the LLVM assembler I mostly use) will
> > happily accept SMSTART as an instruction by default others, specifically
> > gas, require that any architecture extensions be explicitly enabled.
> > The assembler SME test programs use manually encoded helpers for the new
> > instructions but no SMSTART helper is defined, only SM and ZA specific
> > variants.  Unfortunately the irritators that were just added use plain
> > SMSTART so on stricter assemblers these fail to build:
> > 
> > za-test.S:160: Error: selected processor does not support `smstart'
> > 
> > Switch to using SMSTART ZA via the manually encoded smstart_za macro we
> > already have defined.
> > 
> > Fixes: d65f27d240bb ("kselftest/arm64: Implement irritators for ZA and ZT")
> > Signed-off-by: Mark Brown <broonie@kernel.org>
> > ---
> >  tools/testing/selftests/arm64/fp/za-test.S | 2 +-
> >  tools/testing/selftests/arm64/fp/zt-test.S | 2 +-
> >  2 files changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/tools/testing/selftests/arm64/fp/za-test.S b/tools/testing/selftests/arm64/fp/za-test.S
> > index 95fdc1c1f228221bc812087a528e4b7c99767bba..9c33e13e9dc4a6f084649fe7d0fb838d9171e3aa 100644
> > --- a/tools/testing/selftests/arm64/fp/za-test.S
> > +++ b/tools/testing/selftests/arm64/fp/za-test.S
> > @@ -157,7 +157,7 @@ function irritator_handler
> >  
> >  	// This will reset ZA to all bits 0
> >  	smstop
> > -	smstart
> > +	smstart_za
> 
> And is smstop ok for assemblers? I think I got the error first on
> smstop with my toolchain.

Ah, we already have a macro for that. Let me check the error I got,
maybe I got confused (with the multitude of other warnings ;)).
Mark Brown Nov. 8, 2024, 3:34 p.m. UTC | #2
On Fri, Nov 08, 2024 at 03:29:37PM +0000, Catalin Marinas wrote:
> On Fri, Nov 08, 2024 at 03:27:58PM +0000, Catalin Marinas wrote:

> > > -	smstart
> > > +	smstart_za

> > And is smstop ok for assemblers? I think I got the error first on
> > smstop with my toolchain.

> Ah, we already have a macro for that. Let me check the error I got,
> maybe I got confused (with the multitude of other warnings ;)).

Yeah, smstop is already used in those programs (in 'barf') so they
should never have complied if the macro wasn't working.
diff mbox series

Patch

diff --git a/tools/testing/selftests/arm64/fp/za-test.S b/tools/testing/selftests/arm64/fp/za-test.S
index 95fdc1c1f228221bc812087a528e4b7c99767bba..9c33e13e9dc4a6f084649fe7d0fb838d9171e3aa 100644
--- a/tools/testing/selftests/arm64/fp/za-test.S
+++ b/tools/testing/selftests/arm64/fp/za-test.S
@@ -157,7 +157,7 @@  function irritator_handler
 
 	// This will reset ZA to all bits 0
 	smstop
-	smstart
+	smstart_za
 
 	ret
 endfunction
diff --git a/tools/testing/selftests/arm64/fp/zt-test.S b/tools/testing/selftests/arm64/fp/zt-test.S
index a90712802801efb97dc6bf8027fb9ceac8f0a895..38080f3c328042af6b3e2d7c3300162ea6efa4ea 100644
--- a/tools/testing/selftests/arm64/fp/zt-test.S
+++ b/tools/testing/selftests/arm64/fp/zt-test.S
@@ -126,7 +126,7 @@  function irritator_handler
 
 	// This will reset ZT to all bits 0
 	smstop
-	smstart
+	smstart_za
 
 	ret
 endfunction