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 <i...@sandoe.co.uk> --- gcc/common/config/aarch64/aarch64-common.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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 -- 2.39.2 (Apple Git-143)