From: Torbjörn SVENSSON <[email protected]>

For armv8.1-m.main targets, `long long` needs to be placed in an even
numbered register pair.

Using r3 gives errors like for the long long operand:

asm-hard-reg-6.c:61:3: error: register r3 for operand 1 isn't suitable for data 
type

gcc/testsuite/ChangeLog:

        PR testsuite/124328
        * gcc.dg/asm-hard-reg-6.c: Swap value in r2 and r3.

Signed-off-by: Torbjörn SVENSSON <[email protected]>
---
I've tested this change on top of r17-2833-g32657f29f91871 and 
r16-9480-g967a69a03886ebd6.

Ok for trunk and releases/gcc-16?

--



This is a forge pull request published on the gcc-patches mailing list mailing 
list
as requested by Torbjörn Svensson via Sourceware Forge 
<[email protected]>.
Forge discussion: https://forge.sourceware.org/gcc/gcc/pulls/217

Get it locally using:
```
git fetch forge-upstream "+refs/versioned_pull/217/*:refs/versioned_pull/217/*"
git switch -c "pr-217-v1" "refs/versioned_pull/217/1/head"
```
Or, download the patch at: https://forge.sourceware.org/gcc/gcc/pulls/217.diff
Created on: 2026-08-10 18:48:51+00:00
Latest update: 2026-08-10 18:52:06+00:00
Changes: 1 changed files, 4 additions, 4 deletions
Head revision: azoff/gcc ref pr/gcc.dg/asm-hard-reg-6.c commit 
683be3e649177328f742d652329a5d9286115c5b 
Base revision: gcc/gcc ref trunk commit 
32657f29f918712ad7110bd54d8ebb3bf6b0a2a8 r17-2833-g32657f29f91871
Merge base: 32657f29f918712ad7110bd54d8ebb3bf6b0a2a8
Requested Reviewers: 

Changed files:
- M: gcc/testsuite/gcc.dg/asm-hard-reg-6.c

 gcc/testsuite/gcc.dg/asm-hard-reg-6.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gcc/testsuite/gcc.dg/asm-hard-reg-6.c 
b/gcc/testsuite/gcc.dg/asm-hard-reg-6.c
index c87a8116a8697..b04708a290d67 100644
--- a/gcc/testsuite/gcc.dg/asm-hard-reg-6.c
+++ b/gcc/testsuite/gcc.dg/asm-hard-reg-6.c
@@ -11,10 +11,10 @@
 /* { dg-final { scan-assembler-times "bar\tx2,\\\[x1\\\]" 1 { target { 
aarch64*-*-* } } } } */
 #elif defined (__arm__)
 # define GPR1 "{r1}"
-# define GPR2 "{r2}"
-# define GPR3 "{r3}"
-/* { dg-final { scan-assembler-times "foo\tr1,r3" 1 { target { arm*-*-* } } } 
} */
-/* { dg-final { scan-assembler-times "bar\tr2,\\\[r1\\\]" 1 { target { 
arm*-*-* } } } } */
+# define GPR2 "{r3}"
+# define GPR3 "{r2}"
+/* { dg-final { scan-assembler-times "foo\tr1,r2" 1 { target { arm*-*-* } } } 
} */
+/* { dg-final { scan-assembler-times "bar\tr3,\\\[r1\\\]" 1 { target { 
arm*-*-* } } } } */
 #elif defined (__i386__)
 # define GPR1 "{eax}"
 # define GPR2 "{ebx}"
-- 
2.54.0

Reply via email to