[clang] [llvm] [RISCV] Assembler support for XRivosVizip (PR #127694)

Sam Elliott via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 18 14:58:59 PST 2025


================
@@ -721,6 +721,8 @@ DecodeStatus RISCVDisassembler::getInstruction32(MCInst &MI, uint64_t &Size,
                         "Qualcomm uC Conditional Move custom opcode table");
   TRY_TO_DECODE_FEATURE(RISCV::FeatureVendorXqciint, DecoderTableXqciint32,
                         "Qualcomm uC Interrupts custom opcode table");
+  TRY_TO_DECODE_FEATURE(RISCV::FeatureVendorXRivosVizip, DecoderTableXRivos32,
----------------
lenary wrote:

I'm glad you've pointed this out, as it did seem like we are trying to side-step the encoding conflict checking that LLVM is capable of, as well as the fact that the decode tables will also check specific predicates for specific instructions.

I will look at merging all the Qualcomm decode tables, given that all the Xqci instructions are intended not to conflict with each other's encodings. I am less clear on which other vendor extensions should or should not conflict with each other.

I think the `TRY_TO_DECODE_FEATURE(...` encouraged one decode table per feature - it's relatively more difficult to write an equivalent for when you have any of a few different features - but we can solve this with yet more macros of course.

https://github.com/llvm/llvm-project/pull/127694


More information about the llvm-commits mailing list