Home | History | Annotate | Download | only in TableGen

Lines Matching refs:Table

71   DecoderTable Table;
99 // Emit the decoder state machine table.
100 void emitTable(formatted_raw_ostream &o, DecoderTable &Table,
269 // Emit table entries to decode instructions given a segment or segments of
315 // Lookup table for the operand decoding of instructions.
449 // Emits table entries to decode the singleton.
609 static void resolveTableFixups(DecoderTable &Table, const FixupList &Fixups,
622 // Our NumToSkip entries are 16-bits. Make sure our table isn't too
624 assert(Delta < 65536U && "disassembler decoding table too large!");
625 Table[FixupIdx] = (uint8_t)Delta;
626 Table[FixupIdx + 1] = (uint8_t)(Delta >> 8);
630 // Emit table entries to decode instructions given a segment or segments
633 TableInfo.Table.push_back(MCD::OPC_ExtractField);
634 TableInfo.Table.push_back(StartBit);
635 TableInfo.Table.push_back(NumBits);
642 DecoderTable &Table = TableInfo.Table;
659 resolveTableFixups(Table, CurScope, Table.size());
663 Table.push_back(MCD::OPC_FilterValue);
667 Table.insert(Table.end(), Buffer, Buffer + Len);
670 PrevFilter = Table.size();
671 Table.push_back(0);
672 Table.push_back(0);
685 uint32_t NumToSkip = Table.size() - PrevFilter - 2;
686 assert(NumToSkip < 65536U && "disassembler decoding table too large!");
687 Table[PrevFilter] = (uint8_t)NumToSkip;
688 Table[PrevFilter + 1] = (uint8_t)(NumToSkip >> 8);
720 // Emit the decoder state machine table.
722 DecoderTable &Table,
733 DecoderTable::const_iterator I = Table.begin();
734 DecoderTable::const_iterator E = Table.end();
736 assert (I < E && "incomplete decode table entry!");
738 uint64_t Pos = I - Table.begin();
744 PrintFatalError("invalid decode table opcode");
771 OS << "// Skip to: " << ((I - Table.begin()) + NumToSkip) << "\n";
791 OS << "// Skip to: " << ((I - Table.begin()) + NumToSkip) << "\n";
808 OS << "// Skip to: " << ((I - Table.begin()) + NumToSkip) << "\n";
1130 // Make sure the predicate is in the table.
1132 // Now figure out the index for when we write out the table.
1203 // Make sure the predicate is in the table.
1205 // Now figure out the index for when we write out the table.
1225 // Figure out the index into the predicate table for the predicate just
1233 TableInfo.Table.push_back(MCD::OPC_CheckPredicate);
1236 TableInfo.Table.push_back(PBytes[i]);
1238 TableInfo.FixupStack.back().push_back(TableInfo.Table.size());
1239 TableInfo.Table.push_back(0);
1240 TableInfo.Table.push_back(0);
1284 TableInfo.Table.push_back(MCD::OPC_SoftFail);
1292 TableInfo.Table.push_back(MaskBytes[i]);
1294 TableInfo.Table.push_back(0);
1301 TableInfo.Table.push_back(MaskBytes[i]);
1303 TableInfo.Table.push_back(0);
1306 // Emits table entries to decode the singleton.
1320 // Emit the predicate table entry if one is needed.
1326 TableInfo.Table.push_back(MCD::OPC_CheckField);
1327 TableInfo.Table.push_back(StartBits[I-1]);
1328 TableInfo.Table.push_back(NumBits);
1332 TableInfo.Table.push_back(*p);
1333 TableInfo.Table.push_back(*p);
1335 TableInfo.FixupStack.back().push_back(TableInfo.Table.size());
1337 // in the table so all our relative position calculations work OK even
1339 TableInfo.Table.push_back(0);
1340 TableInfo.Table.push_back(0);
1346 TableInfo.Table.push_back(MCD::OPC_Decode);
1350 TableInfo.Table.push_back(*p);
1351 TableInfo.Table.push_back(*p);
1361 TableInfo.Table.push_back(Bytes[i]);
1364 // Emits table entries to decode the singleton, and then to decode the rest.
1375 resolveTableFixups(TableInfo.Table, TableInfo.FixupStack.back(),
1376 TableInfo.Table
1896 << " errs() << Loc << \": Unexpected decode table opcode!\\n\";\n"
2049 // The decode table is cleared for each top level decoder function. The
2052 TableInfo.Table.clear();
2054 TableInfo.Table.reserve(16384);
2058 // OPC_Fail at the end of the table.
2061 resolveTableFixups(TableInfo.Table, TableInfo.FixupStack.back(),
2062 TableInfo.Table.size());
2065 TableInfo.Table.push_back(MCD::OPC_Fail);
2067 // Print the table to the output stream.
2068 emitTable(OS, TableInfo.Table, 0, FC.getBitWidth(), I->first.first);