[PATCH] D151982: [AArch64] Make .arch without extra features actually take effect
Martin Storsjö via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 2 07:15:10 PDT 2023
mstorsjo updated this revision to Diff 527855.
mstorsjo added a comment.
Added a release note.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D151982/new/
https://reviews.llvm.org/D151982
Files:
llvm/docs/ReleaseNotes.rst
llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
llvm/test/MC/AArch64/directive-arch-negative.s
llvm/test/MC/AArch64/directive-arch.s
Index: llvm/test/MC/AArch64/directive-arch.s
===================================================================
--- llvm/test/MC/AArch64/directive-arch.s
+++ llvm/test/MC/AArch64/directive-arch.s
@@ -8,9 +8,7 @@
# CHECK: aesd v0.16b, v2.16b
# CHECK: eor v0.16b, v0.16b, v2.16b
-// PR32873: without extra features, '.arch' is currently ignored.
-// Add an unrelated feature to accept the directive.
- .arch armv8.1-a+crypto
+ .arch armv8.1-a
casa w5, w7, [x20]
# CHECK: casa w5, w7, [x20]
Index: llvm/test/MC/AArch64/directive-arch-negative.s
===================================================================
--- llvm/test/MC/AArch64/directive-arch-negative.s
+++ llvm/test/MC/AArch64/directive-arch-negative.s
@@ -36,9 +36,7 @@
# CHECK: error: instruction requires: ras
# CHECK-NEXT: esb
-// PR32873: without extra features, '.arch' is currently ignored.
-// Add an unrelated feature to accept the directive.
- .arch armv8+crc
+ .arch armv8
casa w5, w7, [x19]
# CHECK: error: instruction requires: lse
Index: llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
===================================================================
--- llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+++ llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
@@ -6920,6 +6920,7 @@
ExpandCryptoAEK(*ArchInfo, RequestedExtensions);
FeatureBitset Features = STI.getFeatureBits();
+ setAvailableFeatures(ComputeAvailableFeatures(Features));
for (auto Name : RequestedExtensions) {
bool EnableFeature = true;
Index: llvm/docs/ReleaseNotes.rst
===================================================================
--- llvm/docs/ReleaseNotes.rst
+++ llvm/docs/ReleaseNotes.rst
@@ -92,6 +92,12 @@
* Support for preserve_all calling convention is added.
* Added support for missing arch extensions in the assembly directives
``.arch <level>+<ext>`` and ``.arch_extension``.
+* Fixed handling of ``.arch <level>`` in assembly, without using any ``+<ext>``
+ suffix. Previously this had no effect at all if no extensions were supplied.
+ Now ``.arch <level>`` can be used to enable all the extensions that are
+ included in a higher level than what is specified on the command line,
+ or for disabling unwanted extensions if setting it to a lower level.
+ This fixes `PR32873 <https://github.com/llvm/llvm-project/issues/32220>`.
Changes to the AMDGPU Backend
-----------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D151982.527855.patch
Type: text/x-patch
Size: 2462 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230602/f3211289/attachment.bin>
More information about the llvm-commits
mailing list