aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
diff options
context:
space:
mode:
authorPhilip Reames <preames@rivosinc.com>2025-02-26 08:55:35 -0800
committerGitHub <noreply@github.com>2025-02-26 08:55:35 -0800
commit8039f8e139aa52561d3482d61328fe7f370056e7 (patch)
tree055b8c9be40a8a384eeb52f904a39da5b25c690b /llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
parentdfda75f2e55ae4536f48e20a1ba71a3c79af1d97 (diff)
downloadllvm-8039f8e139aa52561d3482d61328fe7f370056e7.zip
llvm-8039f8e139aa52561d3482d61328fe7f370056e7.tar.gz
llvm-8039f8e139aa52561d3482d61328fe7f370056e7.tar.bz2
[RISCV][MC] Add assembler support for XRivosVisni (#128773)
This implements assembler support for the XRivosVisni custom/vendor extension from Rivos Inc. which is defined in: https://github.com/rivosinc/rivos-custom-extensions (See src/xrivosvisni.adoc) Codegen support will follow in separate changes.
Diffstat (limited to 'llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp')
-rw-r--r--llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
index 9b3104e..08e0cfe 100644
--- a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
+++ b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
@@ -622,6 +622,11 @@ void RISCVDisassembler::addSPOperands(MCInst &MI) const {
#define TRY_TO_DECODE_FEATURE_ANY(FEATURES, DECODER_TABLE, DESC) \
TRY_TO_DECODE((STI.getFeatureBits() & (FEATURES)).any(), DECODER_TABLE, DESC)
+static constexpr FeatureBitset XRivosFeatureGroup = {
+ RISCV::FeatureVendorXRivosVisni,
+ RISCV::FeatureVendorXRivosVizip,
+};
+
static constexpr FeatureBitset XqciFeatureGroup = {
RISCV::FeatureVendorXqcia, RISCV::FeatureVendorXqciac,
RISCV::FeatureVendorXqcicli, RISCV::FeatureVendorXqcicm,
@@ -710,12 +715,10 @@ DecodeStatus RISCVDisassembler::getInstruction32(MCInst &MI, uint64_t &Size,
"CORE-V SIMD extensions");
TRY_TO_DECODE_FEATURE(RISCV::FeatureVendorXCVbi, DecoderTableXCVbi32,
"CORE-V Immediate Branching");
-
TRY_TO_DECODE_FEATURE_ANY(XqciFeatureGroup, DecoderTableXqci32,
"Qualcomm uC Extensions");
- TRY_TO_DECODE_FEATURE(RISCV::FeatureVendorXRivosVizip, DecoderTableXRivos32,
- "Rivos");
+ TRY_TO_DECODE_FEATURE_ANY(XRivosFeatureGroup, DecoderTableXRivos32, "Rivos");
TRY_TO_DECODE(true, DecoderTable32, "RISCV32");