Lines Matching refs:Table
72 DecoderTable Table;
98 // Emit the decoder state machine table.
99 void emitTable(formatted_raw_ostream &o, DecoderTable &Table,
268 // Emit table entries to decode instructions given a segment or segments of
314 // Lookup table for the operand decoding of instructions.
439 // Emits table entries to decode the singleton.
583 static void resolveTableFixups(DecoderTable &Table, const FixupList &Fixups,
596 // Our NumToSkip entries are 16-bits. Make sure our table isn't too
598 assert(Delta < 65536U && "disassembler decoding table too large!");
599 Table[FixupIdx] = (uint8_t)Delta;
600 Table[FixupIdx + 1] = (uint8_t)(Delta >> 8);
604 // Emit table entries to decode instructions given a segment or segments
607 TableInfo.Table.push_back(MCD::OPC_ExtractField);
608 TableInfo.Table.push_back(StartBit);
609 TableInfo.Table.push_back(NumBits);
614 DecoderTable &Table = TableInfo.Table;
629 resolveTableFixups(Table, CurScope, Table.size());
633 Table.push_back(MCD::OPC_FilterValue);
637 Table.insert(Table.end(), Buffer, Buffer + Len);
640 PrevFilter = Table.size();
641 Table.push_back(0);
642 Table.push_back(0);
655 uint32_t NumToSkip = Table.size() - PrevFilter - 2;
656 assert(NumToSkip < 65536U && "disassembler decoding table too large!");
657 Table[PrevFilter] = (uint8_t)NumToSkip;
658 Table[PrevFilter + 1] = (uint8_t)(NumToSkip >> 8);
690 // Emit the decoder state machine table.
692 DecoderTable &Table,
703 DecoderTable::const_iterator I = Table.begin();
704 DecoderTable::const_iterator E = Table.end();
706 assert (I < E && "incomplete decode table entry!");
708 uint64_t Pos = I - Table.begin();
714 PrintFatalError("invalid decode table opcode");
741 OS << "// Skip to: " << ((I - Table.begin()) + NumToSkip) << "\n";
761 OS << "// Skip to: " << ((I - Table.begin()) + NumToSkip) << "\n";
778 OS << "// Skip to: " << ((I - Table.begin()) + NumToSkip) << "\n";
821 << ", skip to: " << ((I - Table.begin()) + NumToSkip) << "\n";
1108 // Make sure the predicate is in the table.
1110 // Now figure out the index for when we write out the table.
1183 // Make sure the predicate is in the table.
1185 // Now figure out the index for when we write out the table.
1205 // Figure out the index into the predicate table for the predicate just
1212 TableInfo.Table.push_back(MCD::OPC_CheckPredicate);
1215 TableInfo.Table.push_back(PBytes[i]);
1217 TableInfo.FixupStack.back().push_back(TableInfo.Table.size());
1218 TableInfo.Table.push_back(0);
1219 TableInfo.Table.push_back(0);
1263 TableInfo.Table.push_back(MCD::OPC_SoftFail);
1270 TableInfo.Table.push_back(MaskBytes[i]);
1272 TableInfo.Table.push_back(0);
1277 TableInfo.Table.push_back(MaskBytes[i]);
1279 TableInfo.Table.push_back(0);
1282 // Emits table entries to decode the singleton.
1296 // Emit the predicate table entry if one is needed.
1302 TableInfo.Table.push_back(MCD::OPC_CheckField);
1303 TableInfo.Table.push_back(StartBits[I-1]);
1304 TableInfo.Table.push_back(NumBits);
1308 TableInfo.Table.push_back(*p);
1309 TableInfo.Table.push_back(*p);
1311 TableInfo.FixupStack.back().push_back(TableInfo.Table.size());
1313 // in the table so all our relative position calculations work OK even
1315 TableInfo.Table.push_back(0);
1316 TableInfo.Table.push_back(0);
1334 TableInfo.Table.push_back(HasCompleteDecoder ? MCD::OPC_Decode :
1339 TableInfo.Table.push_back(*p);
1340 TableInfo.Table.push_back(*p);
1348 TableInfo.Table.push_back(Bytes[i]);
1352 TableInfo.FixupStack.back().push_back(TableInfo.Table.size());
1354 TableInfo.Table.push_back(0);
1355 TableInfo.Table.push_back(0);
1359 // Emits table entries to decode the singleton, and then to decode the rest.
1370 resolveTableFixups(TableInfo.Table, TableInfo.FixupStack.back(),
1371 TableInfo.Table.size());
2069 << " errs() << Loc << \": Unexpected decode table opcode!\\n\";\n"
2261 // The decode table is cleared for each top level decoder function. The
2264 TableInfo.Table.clear();
2266 TableInfo.Table.reserve(16384);
2270 // OPC_Fail at the end of the table.
2273 resolveTableFixups(TableInfo.Table, TableInfo.FixupStack.back(),
2274 TableInfo.Table.size());
2277 TableInfo.Table.push_back(MCD::OPC_Fail);
2279 // Print the table to the output stream.
2280 emitTable(OS, TableInfo.Table, 0, FC.getBitWidth(), Opc.first.first);