diff options
author | Jojo R <rjiejie@linux.alibaba.com> | 2022-11-09 16:17:20 +0800 |
---|---|---|
committer | Jojo R <rjiejie@linux.alibaba.com> | 2022-12-26 19:05:22 +0800 |
commit | 54752f3ff6d50944f17c260a6dc47a4758a026fc (patch) | |
tree | 6901e4e2aba5ae9010a7c4e2d67d416d7e2e125e /llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp | |
parent | f34847e112acfa6370f613034e0459af06f522bb (diff) | |
download | llvm-54752f3ff6d50944f17c260a6dc47a4758a026fc.zip llvm-54752f3ff6d50944f17c260a6dc47a4758a026fc.tar.gz llvm-54752f3ff6d50944f17c260a6dc47a4758a026fc.tar.bz2 |
[RISCV] Implement assembler support for XTHeadVdot
This patch implements the T-Head vendor extensions (XTHeadVdot),
which is documented here, it's based on standard vector extension v1.0:
https://github.com/T-head-Semi/thead-extension-spec
Diffstat (limited to 'llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp')
-rw-r--r-- | llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp index 4a00e50..42cdd75 100644 --- a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp +++ b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp @@ -474,6 +474,15 @@ DecodeStatus RISCVDisassembler::getInstruction(MCInst &MI, uint64_t &Size, return Result; } } + if (STI.getFeatureBits()[RISCV::FeatureVendorXTHeadVdot]) { + LLVM_DEBUG(dbgs() << "Trying T-Head custom opcode table:\n"); + Result = + decodeInstruction(DecoderTableTHeadV32, MI, Insn, Address, this, STI); + if (Result != MCDisassembler::Fail) { + Size = 4; + return Result; + } + } LLVM_DEBUG(dbgs() << "Trying RISCV32 table :\n"); Result = decodeInstruction(DecoderTable32, MI, Insn, Address, this, STI); |