public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] aarch64: Enable +cssc for armv8.9-a
@ 2024-05-13 14:01 Andrew Carlotti
  2024-05-20 14:03 ` Richard Earnshaw (lists)
  2024-05-28 15:15 ` Nick Clifton
  0 siblings, 2 replies; 4+ messages in thread
From: Andrew Carlotti @ 2024-05-13 14:01 UTC (permalink / raw)
  To: binutils; +Cc: Richard Earnshaw

FEAT_CSSC is mandatory in the architecture from Armv8.9.

---

OK for master and backport to 2.42 branch?


diff --git a/gas/testsuite/gas/aarch64/cssc.d b/gas/testsuite/gas/aarch64/cssc.d
index d41df24b916d26b0c71ad0435f3e83090268e4e7..f6ff9d207a2fd876793ac3769e87b524201d8cbb 100644
--- a/gas/testsuite/gas/aarch64/cssc.d
+++ b/gas/testsuite/gas/aarch64/cssc.d
@@ -1,5 +1,6 @@
 #name: CSSC extension
 #as: -march=armv8-a+cssc
+#as: -march=armv8.9-a
 #objdump: -dr
 
 .*:     file format .*
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index 2fca9528c2012be983c2414a30fa5930e57e5c92..2d327e830497945cd691754176e4130e30ede492 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -291,6 +291,7 @@ enum aarch64_feature_bit {
 					 | AARCH64_FEATBIT (X, MOPS)	\
 					 | AARCH64_FEATBIT (X, HBC))
 #define AARCH64_ARCH_V8_9A_FEATURES(X)	(AARCH64_FEATBIT (X, V8_9A)	\
+					 | AARCH64_FEATBIT (X, CSSC) \
 					 | AARCH64_FEATBIT (X, SPEv1p4) \
 					 | AARCH64_FEATBIT (X, SPE_CRR)	\
 					 | AARCH64_FEATBIT (X, SPE_FDS) \

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] aarch64: Enable +cssc for armv8.9-a
  2024-05-13 14:01 [PATCH] aarch64: Enable +cssc for armv8.9-a Andrew Carlotti
@ 2024-05-20 14:03 ` Richard Earnshaw (lists)
  2024-05-20 15:00   ` Andrew Carlotti
  2024-05-28 15:15 ` Nick Clifton
  1 sibling, 1 reply; 4+ messages in thread
From: Richard Earnshaw (lists) @ 2024-05-20 14:03 UTC (permalink / raw)
  To: Andrew Carlotti, binutils

On 13/05/2024 15:01, Andrew Carlotti wrote:
> FEAT_CSSC is mandatory in the architecture from Armv8.9.
> 
> ---
> 
> OK for master and backport to 2.42 branch?

The Arm ARM says that CSSC is only mandatory if AdvSIMD is present.  So I think we need a test that this is
removed if we have -march=armv8.9-a+nosimd.

R.

> 
> 
> diff --git a/gas/testsuite/gas/aarch64/cssc.d b/gas/testsuite/gas/aarch64/cssc.d
> index d41df24b916d26b0c71ad0435f3e83090268e4e7..f6ff9d207a2fd876793ac3769e87b524201d8cbb 100644
> --- a/gas/testsuite/gas/aarch64/cssc.d
> +++ b/gas/testsuite/gas/aarch64/cssc.d
> @@ -1,5 +1,6 @@
>  #name: CSSC extension
>  #as: -march=armv8-a+cssc
> +#as: -march=armv8.9-a
>  #objdump: -dr
>  
>  .*:     file format .*
> diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
> index 2fca9528c2012be983c2414a30fa5930e57e5c92..2d327e830497945cd691754176e4130e30ede492 100644
> --- a/include/opcode/aarch64.h
> +++ b/include/opcode/aarch64.h
> @@ -291,6 +291,7 @@ enum aarch64_feature_bit {
>  					 | AARCH64_FEATBIT (X, MOPS)	\
>  					 | AARCH64_FEATBIT (X, HBC))
>  #define AARCH64_ARCH_V8_9A_FEATURES(X)	(AARCH64_FEATBIT (X, V8_9A)	\
> +					 | AARCH64_FEATBIT (X, CSSC) \
>  					 | AARCH64_FEATBIT (X, SPEv1p4) \
>  					 | AARCH64_FEATBIT (X, SPE_CRR)	\
>  					 | AARCH64_FEATBIT (X, SPE_FDS) \


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] aarch64: Enable +cssc for armv8.9-a
  2024-05-20 14:03 ` Richard Earnshaw (lists)
@ 2024-05-20 15:00   ` Andrew Carlotti
  0 siblings, 0 replies; 4+ messages in thread
From: Andrew Carlotti @ 2024-05-20 15:00 UTC (permalink / raw)
  To: Richard Earnshaw (lists); +Cc: binutils

On Mon, May 20, 2024 at 03:03:46PM +0100, Richard Earnshaw (lists) wrote:
> On 13/05/2024 15:01, Andrew Carlotti wrote:
> > FEAT_CSSC is mandatory in the architecture from Armv8.9.
> > 
> > ---
> > 
> > OK for master and backport to 2.42 branch?
> 
> The Arm ARM says that CSSC is only mandatory if AdvSIMD is present.  So I think we need a test that this is
> removed if we have -march=armv8.9-a+nosimd.
> 
> R.

FEAT_CSSC does not depend upon FEAT_AdvSIMD, so `+cssc` does not enable
`+simd`, and conversely `+nosimd` does not disable `+cssc`.

Our `-march=armv8.x` flags are based upon which features are mandatory in an
Armv8.x system with FEAT_AdvSIMD present, but are subsequently treated as
equivalent to having specified these features as a set of independent feature
flags.  `+nosimd` will disable anything that explicitly depends on
FEAT_AdvSIMD, but does not disable any additional features that were included
in the base architecture, even if they were only included in the base
architecture as a consquence of the assumed presence of FEAT_AdvSIMD.

Incidentally, our `march=armv9.y` flags are similarly based upon which features
are mandatory in an Armv9.y system with FEAT_SVE2 present.

> > 
> > 
> > diff --git a/gas/testsuite/gas/aarch64/cssc.d b/gas/testsuite/gas/aarch64/cssc.d
> > index d41df24b916d26b0c71ad0435f3e83090268e4e7..f6ff9d207a2fd876793ac3769e87b524201d8cbb 100644
> > --- a/gas/testsuite/gas/aarch64/cssc.d
> > +++ b/gas/testsuite/gas/aarch64/cssc.d
> > @@ -1,5 +1,6 @@
> >  #name: CSSC extension
> >  #as: -march=armv8-a+cssc
> > +#as: -march=armv8.9-a
> >  #objdump: -dr
> >  
> >  .*:     file format .*
> > diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
> > index 2fca9528c2012be983c2414a30fa5930e57e5c92..2d327e830497945cd691754176e4130e30ede492 100644
> > --- a/include/opcode/aarch64.h
> > +++ b/include/opcode/aarch64.h
> > @@ -291,6 +291,7 @@ enum aarch64_feature_bit {
> >  					 | AARCH64_FEATBIT (X, MOPS)	\
> >  					 | AARCH64_FEATBIT (X, HBC))
> >  #define AARCH64_ARCH_V8_9A_FEATURES(X)	(AARCH64_FEATBIT (X, V8_9A)	\
> > +					 | AARCH64_FEATBIT (X, CSSC) \
> >  					 | AARCH64_FEATBIT (X, SPEv1p4) \
> >  					 | AARCH64_FEATBIT (X, SPE_CRR)	\
> >  					 | AARCH64_FEATBIT (X, SPE_FDS) \
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] aarch64: Enable +cssc for armv8.9-a
  2024-05-13 14:01 [PATCH] aarch64: Enable +cssc for armv8.9-a Andrew Carlotti
  2024-05-20 14:03 ` Richard Earnshaw (lists)
@ 2024-05-28 15:15 ` Nick Clifton
  1 sibling, 0 replies; 4+ messages in thread
From: Nick Clifton @ 2024-05-28 15:15 UTC (permalink / raw)
  To: Andrew Carlotti, binutils; +Cc: Richard Earnshaw

Hi Andrew,

> FEAT_CSSC is mandatory in the architecture from Armv8.9.
> 
> ---
> 
> OK for master and backport to 2.42 branch?

Approved - please apply.

Cheers
   Nick



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-05-28 15:15 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-13 14:01 [PATCH] aarch64: Enable +cssc for armv8.9-a Andrew Carlotti
2024-05-20 14:03 ` Richard Earnshaw (lists)
2024-05-20 15:00   ` Andrew Carlotti
2024-05-28 15:15 ` Nick Clifton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).