Hi: For now I've already successfully generated DisassemblerTable from TableGen with ``-gen-disassembler`` which contains the following function: ``` template<typename InsnType> static DecodeStatus decodeInstruction(const uint8_t DecodeTable[], MCInst &MI, InsnType insn, uint64_t Address, const void *DisAsm, const MCSubtargetInfo &STI) ``` From my understanding here, insn is supposed to contain the actual instruction. However in our ISA, instructions can exceed the limit of uint64_t, and passing APInt as InsnType fails to compile because this function calls ``InsnType CurFieldValue = 0`` which is invalid for APInt. My question is, which type should I use here? Zhang -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201228/7a8ac3c9/attachment.html>
Stephen Neuendorffer via llvm-dev
2020-Dec-28 07:09 UTC
[llvm-dev] Generate MCDisassembler for VLIW?
See the commits here: https://reviews.llvm.org/D52100 This patch adds support for instructions bigger than 64 bits. A number of the function signatures change. Steve On Sun, Dec 27, 2020 at 7:54 PM Zhang via llvm-dev <llvm-dev at lists.llvm.org> wrote:> Hi: > For now I've already successfully generated DisassemblerTable from > TableGen with ``-gen-disassembler`` which contains the following function: > > ``` > template<typename InsnType> > static DecodeStatus decodeInstruction(const uint8_t DecodeTable[], MCInst > &MI, > InsnType insn, uint64_t Address, > const void *DisAsm, > const MCSubtargetInfo &STI) > ``` > > From my understanding here, insn is supposed to contain the actual > instruction. > However in our ISA, instructions can exceed the limit of uint64_t, and > passing APInt as InsnType fails to compile because this function calls > ``InsnType CurFieldValue = 0`` which is invalid for APInt. > My question is, which type should I use here? > > > Zhang > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201227/e5fb0cf3/attachment.html>