diff options
| author | Thomas Lively <tlively@google.com> | 2018-11-09 01:57:00 +0000 |
|---|---|---|
| committer | Thomas Lively <tlively@google.com> | 2018-11-09 01:57:00 +0000 |
| commit | 2faf079494e90c1a941cf1bf51c8e7abb19bcef9 (patch) | |
| tree | 7d5a9c9d963a109a9414f7a90c63b9d1c5633c2c /llvm/utils/TableGen | |
| parent | 4ddd22581ee547c20222a4aba3a598803eb99a1e (diff) | |
| download | bcm5719-llvm-2faf079494e90c1a941cf1bf51c8e7abb19bcef9.tar.gz bcm5719-llvm-2faf079494e90c1a941cf1bf51c8e7abb19bcef9.zip | |
[WebAssembly] Read prefixed opcodes as ULEB128s
Summary: Depends on D54126.
Reviewers: aheejin, dschuff, aardappel
Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits
Differential Revision: https://reviews.llvm.org/D54138
llvm-svn: 346465
Diffstat (limited to 'llvm/utils/TableGen')
| -rw-r--r-- | llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp b/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp index a8edfdc623f..ab785715d97 100644 --- a/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp +++ b/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp @@ -19,6 +19,8 @@ namespace llvm { +static constexpr int WebAssemblyInstructionTableSize = 256; + void emitWebAssemblyDisassemblerTables( raw_ostream &OS, const ArrayRef<const CodeGenInstruction *> &NumberedInstructions) { @@ -59,6 +61,8 @@ void emitWebAssemblyDisassemblerTables( OS << "#include \"MCTargetDesc/WebAssemblyMCTargetDesc.h\"\n"; OS << "\n"; OS << "namespace llvm {\n\n"; + OS << "static constexpr int WebAssemblyInstructionTableSize = "; + OS << WebAssemblyInstructionTableSize << ";\n\n"; OS << "enum EntryType : uint8_t { "; OS << "ET_Unused, ET_Prefix, ET_Instruction };\n\n"; OS << "struct WebAssemblyInstruction {\n"; @@ -74,7 +78,7 @@ void emitWebAssemblyDisassemblerTables( continue; OS << "WebAssemblyInstruction InstructionTable" << PrefixPair.first; OS << "[] = {\n"; - for (unsigned I = 0; I <= 0xFF; I++) { + for (unsigned I = 0; I < WebAssemblyInstructionTableSize; I++) { auto InstIt = PrefixPair.second.find(I); if (InstIt != PrefixPair.second.end()) { // Regular instruction. |

