reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
81 OS << "#include \"MCTargetDesc/WebAssemblyMCTargetDesc.h\"\n"; 82 OS << "\n"; 83 OS << "namespace llvm {\n\n"; 84 OS << "static constexpr int WebAssemblyInstructionTableSize = "; 85 OS << WebAssemblyInstructionTableSize << ";\n\n"; 86 OS << "enum EntryType : uint8_t { "; 87 OS << "ET_Unused, ET_Prefix, ET_Instruction };\n\n"; 88 OS << "struct WebAssemblyInstruction {\n"; 89 OS << " uint16_t Opcode;\n"; 90 OS << " EntryType ET;\n"; 91 OS << " uint8_t NumOperands;\n"; 92 OS << " uint16_t OperandStart;\n"; 93 OS << "};\n\n"; 99 OS << "WebAssemblyInstruction InstructionTable" << PrefixPair.first; 100 OS << "[] = {\n"; 107 OS << " // 0x"; 108 OS.write_hex(static_cast<unsigned long long>(I)); 109 OS << ": " << CGI.AsmString << "\n"; 110 OS << " { " << InstIt->second.first << ", ET_Instruction, "; 111 OS << CGI.Operands.OperandList.size() << ", "; 139 OS << OperandStart; 144 OS << " { 0, ET_Prefix, 0, 0"; 146 OS << " { 0, ET_Unused, 0, 0"; 149 OS << " },\n"; 151 OS << "};\n\n"; 154 OS << "const uint8_t OperandTable[] = {\n"; 156 OS << " " << Op << ",\n"; 158 OS << "};\n\n"; 160 OS << "struct { uint8_t Prefix; const WebAssemblyInstruction *Table; }\n"; 161 OS << "PrefixTable[] = {\n"; 165 OS << " { " << PrefixPair.first << ", InstructionTable" 167 OS << " },\n"; 169 OS << " { 0, nullptr }\n};\n\n"; 170 OS << "} // end namespace llvm\n";