Skip to content

Commit 801c786

Browse files
committed
[lldb][ARM/AArch64] Update disasm flags to latest v8.7a ISA
Add optional memory tagging extension on AArch64. Use isAArch64() instead of listing the AArch64 triples, which fixes us not recognising aarch64_be. Reviewed By: omjavaid Differential Revision: https://reviews.llvm.org/D94084
1 parent 0877b96 commit 801c786

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,7 +1056,7 @@ DisassemblerLLVMC::DisassemblerLLVMC(const ArchSpec &arch,
10561056
thumb_arch_name.erase(0, 3);
10571057
thumb_arch_name.insert(0, "thumb");
10581058
} else {
1059-
thumb_arch_name = "thumbv8.2a";
1059+
thumb_arch_name = "thumbv8.7a";
10601060
}
10611061
thumb_arch.GetTriple().setArchName(llvm::StringRef(thumb_arch_name));
10621062
}
@@ -1068,7 +1068,7 @@ DisassemblerLLVMC::DisassemblerLLVMC(const ArchSpec &arch,
10681068
// specified)
10691069
if (triple.getArch() == llvm::Triple::arm &&
10701070
triple.getSubArch() == llvm::Triple::NoSubArch)
1071-
triple.setArchName("armv8.2a");
1071+
triple.setArchName("armv8.7a");
10721072

10731073
std::string features_str = "";
10741074
const char *triple_str = triple.getTriple().c_str();
@@ -1137,16 +1137,13 @@ DisassemblerLLVMC::DisassemblerLLVMC(const ArchSpec &arch,
11371137
features_str += "+dspr2,";
11381138
}
11391139

1140-
// If any AArch64 variant, enable the ARMv8.5 ISA with SVE extensions so we
1141-
// can disassemble newer instructions.
1142-
if (triple.getArch() == llvm::Triple::aarch64 ||
1143-
triple.getArch() == llvm::Triple::aarch64_32)
1144-
features_str += "+v8.5a,+sve2";
1140+
// If any AArch64 variant, enable latest ISA with any optional
1141+
// extensions like SVE.
1142+
if (triple.isAArch64()) {
1143+
features_str += "+v8.7a,+sve2,+mte";
11451144

1146-
if ((triple.getArch() == llvm::Triple::aarch64 ||
1147-
triple.getArch() == llvm::Triple::aarch64_32)
1148-
&& triple.getVendor() == llvm::Triple::Apple) {
1149-
cpu = "apple-latest";
1145+
if (triple.getVendor() == llvm::Triple::Apple)
1146+
cpu = "apple-latest";
11501147
}
11511148

11521149
// We use m_disasm_up.get() to tell whether we are valid or not, so if this

0 commit comments

Comments
 (0)