aarch64: Make assembler bug workaround configurable.

Message ID 20231026193104.58627-1-iain@sandoe.co.uk
State Accepted
Headers
Series aarch64: Make assembler bug workaround configurable. |

Checks

Context Check Description
snail/gcc-patch-check success Github commit url

Commit Message

Iain Sandoe Oct. 26, 2023, 7:31 p.m. UTC
  This is an enablement patch (the initial use comes with the Darwin aarch64
port).  Tested on aarch64-linux-gnu, aarch64-apple-darwin and x86_64-darwin
just for good measure, OK for trunk?
thanks
Iain.

--- 8< ---

Some assmblers have a bug that requires +crc to be emitted even
though the base architecture supports it.  However, that also
triggers a different bug in another assembler.  So make the fix
configurable.

gcc/ChangeLog:

	* common/config/aarch64/aarch64-common.cc: Make the asm
	crc bug workaround configurable.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
---
 gcc/common/config/aarch64/aarch64-common.cc | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
  

Patch

diff --git a/gcc/common/config/aarch64/aarch64-common.cc b/gcc/common/config/aarch64/aarch64-common.cc
index 20bc4e1291b..4922a6b235c 100644
--- a/gcc/common/config/aarch64/aarch64-common.cc
+++ b/gcc/common/config/aarch64/aarch64-common.cc
@@ -301,8 +301,12 @@  aarch64_get_extension_string_for_isa_flags
 
      However, assemblers with Armv8-R AArch64 support should not have this
      issue, so we don't need this fix when targeting Armv8-R.  */
-  auto explicit_flags = (!(current_flags & AARCH64_FL_V8R)
-			 ? AARCH64_FL_CRC : 0);
+  aarch64_feature_flags explicit_flags =
+#ifndef DISABLE_AARCH64_AS_CRC_BUGFIX
+     (!(current_flags & AARCH64_ISA_V8R) ? AARCH64_FL_CRC : 0);
+#else
+     0;
+#endif
 
   /* Add the features in isa_flags & ~current_flags using the smallest
      possible number of extensions.  We can do this by iterating over the