summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen
diff options
context:
space:
mode:
authorThomas Lively <tlively@google.com>2018-11-09 01:57:00 +0000
committerThomas Lively <tlively@google.com>2018-11-09 01:57:00 +0000
commit2faf079494e90c1a941cf1bf51c8e7abb19bcef9 (patch)
tree7d5a9c9d963a109a9414f7a90c63b9d1c5633c2c /llvm/utils/TableGen
parent4ddd22581ee547c20222a4aba3a598803eb99a1e (diff)
downloadbcm5719-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.cpp6
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.
OpenPOWER on IntegriCloud