diff mbox series

[v1] kselftest/arm64: Use preferred form for predicate load/stores

Message ID 20221117114130.687261-1-broonie@kernel.org
State Accepted
Commit 284d2b44a8cc0df8ed25596092fa864bc57b5bab
Headers show
Series [v1] kselftest/arm64: Use preferred form for predicate load/stores | expand

Commit Message

Mark Brown Nov. 17, 2022, 11:41 a.m. UTC
The preferred form of the str/ldr for predicate registers with an immediate
of zero is to omit the zero, and the clang built in assembler rejects the
zero immediate. Drop the immediate.

Signed-off-by: Mark Brown <broonie@kernel.org>
---
 tools/testing/selftests/arm64/abi/syscall-abi-asm.S | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)


base-commit: 30a0b95b1335e12efef89dd78518ed3e4a71a763

Comments

Mark Rutland Nov. 17, 2022, 11:52 a.m. UTC | #1
On Thu, Nov 17, 2022 at 11:41:30AM +0000, Mark Brown wrote:
> The preferred form of the str/ldr for predicate registers with an immediate
> of zero is to omit the zero, and the clang built in assembler rejects the
> zero immediate. Drop the immediate.

Rejecting that outright seems like a bug in clang, given there are legitimate
reasons to write code that way (e.g. using asm-offsets style definitions); has
that been reported so that it can be fixed?

Regardless, the patch itself looks fine, and I don't mean to block this as-is!

Thanks,
Mark.

> 
> Signed-off-by: Mark Brown <broonie@kernel.org>
> ---
>  tools/testing/selftests/arm64/abi/syscall-abi-asm.S | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/testing/selftests/arm64/abi/syscall-abi-asm.S b/tools/testing/selftests/arm64/abi/syscall-abi-asm.S
> index b523c21c2278..acd5e9f3bc0b 100644
> --- a/tools/testing/selftests/arm64/abi/syscall-abi-asm.S
> +++ b/tools/testing/selftests/arm64/abi/syscall-abi-asm.S
> @@ -153,7 +153,7 @@ do_syscall:
>  	// Only set a non-zero FFR, test patterns must be zero since the
>  	// syscall should clear it - this lets us handle FA64.
>  	ldr	x2, =ffr_in
> -	ldr	p0, [x2, #0]
> +	ldr	p0, [x2]
>  	ldr	x2, [x2, #0]
>  	cbz	x2, 2f
>  	wrffr	p0.b
> @@ -298,7 +298,7 @@ do_syscall:
>  	cbz	x2, 1f
>  	ldr	x2, =ffr_out
>  	rdffr	p0.b
> -	str	p0, [x2, #0]
> +	str	p0, [x2]
>  1:
>  
>  	// Restore callee saved registers x19-x30
> 
> base-commit: 30a0b95b1335e12efef89dd78518ed3e4a71a763
> -- 
> 2.30.2
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Will Deacon Nov. 18, 2022, 7:40 p.m. UTC | #2
On Thu, 17 Nov 2022 11:41:30 +0000, Mark Brown wrote:
> The preferred form of the str/ldr for predicate registers with an immediate
> of zero is to omit the zero, and the clang built in assembler rejects the
> zero immediate. Drop the immediate.
> 
> 

Applied to arm64 (for-next/selftests), thanks!

[1/1] kselftest/arm64: Use preferred form for predicate load/stores
      https://git.kernel.org/arm64/c/284d2b44a8cc

Cheers,
diff mbox series

Patch

diff --git a/tools/testing/selftests/arm64/abi/syscall-abi-asm.S b/tools/testing/selftests/arm64/abi/syscall-abi-asm.S
index b523c21c2278..acd5e9f3bc0b 100644
--- a/tools/testing/selftests/arm64/abi/syscall-abi-asm.S
+++ b/tools/testing/selftests/arm64/abi/syscall-abi-asm.S
@@ -153,7 +153,7 @@  do_syscall:
 	// Only set a non-zero FFR, test patterns must be zero since the
 	// syscall should clear it - this lets us handle FA64.
 	ldr	x2, =ffr_in
-	ldr	p0, [x2, #0]
+	ldr	p0, [x2]
 	ldr	x2, [x2, #0]
 	cbz	x2, 2f
 	wrffr	p0.b
@@ -298,7 +298,7 @@  do_syscall:
 	cbz	x2, 1f
 	ldr	x2, =ffr_out
 	rdffr	p0.b
-	str	p0, [x2, #0]
+	str	p0, [x2]
 1:
 
 	// Restore callee saved registers x19-x30