[Lldb-commits] [lldb] [RISCV-LLDB] RISCV feature attribute support and allows overriding additional(default) feature (PR #147990)
David Spickett via lldb-commits
lldb-commits at lists.llvm.org
Mon Sep 8 06:18:12 PDT 2025
================
@@ -1446,6 +1446,33 @@ bool DisassemblerLLVMC::MCDisasmInstance::IsAuthenticated(
return InstrDesc.isAuthenticated() || IsBrkC47x;
}
+void DisassemblerLLVMC::UpdateFeatureString(llvm::StringRef additional_features,
+ std::string &features) {
+ // Allow users to override default additional features.
+ for (llvm::StringRef flag : llvm::split(additional_features, ",")) {
+ flag = flag.trim();
+ if (flag.empty())
+ continue;
+ // By default, if both +flag and -flag are present in the feature string,
+ // disassembler keeps the feature enabled (+flag).
+ // To respect user intent, we make -flag(user) take priority over the
+ // default +flag coming from ELF.
+ bool add_flag = true;
+ if (flag.starts_with('+')) {
+ std::string disable_flag = "-" + flag.substr(1).str();
+ if (features.find(disable_flag) != std::string::npos) {
+ add_flag = false;
+ }
----------------
DavidSpickett wrote:
add_flag = features.find(disable_flag) == std::string::npos;
https://github.com/llvm/llvm-project/pull/147990
More information about the lldb-commits
mailing list