Lines Matching defs:TableInfo
362 void emitTableEntry(DecoderTableInfo &TableInfo) const;
533 unsigned getPredicateIndex(DecoderTableInfo &TableInfo, StringRef P) const;
534 void emitPredicateTableEntry(DecoderTableInfo &TableInfo, unsigned Opc) const;
536 void emitSoftFailTableEntry(DecoderTableInfo &TableInfo, unsigned Opc) const;
539 void emitSingletonTableEntry(DecoderTableInfo &TableInfo,
543 void emitSingletonTableEntry(DecoderTableInfo &TableInfo,
576 void emitTableEntries(DecoderTableInfo &TableInfo) const;
702 void Filter::emitTableEntry(DecoderTableInfo &TableInfo) const {
704 TableInfo.Table.push_back(MCD::OPC_ExtractField);
709 TableInfo.Table.insert(TableInfo.Table.end(), SBytes.begin(), SBytes.end());
710 TableInfo.Table.push_back(NumBits);
713 TableInfo.FixupStack.emplace_back();
715 DecoderTable &Table = TableInfo.Table;
728 FixupList &CurScope = TableInfo.FixupStack.back();
751 Filter.second->emitTableEntries(TableInfo);
767 assert(TableInfo.FixupStack.size() > 1 && "fixup stack underflow!");
768 FixupScopeList::iterator Source = TableInfo.FixupStack.end() - 1;
771 TableInfo.FixupStack.pop_back();
776 TableInfo.FixupStack.back().push_back(PrevFilter);
1336 unsigned FilterChooser::getPredicateIndex(DecoderTableInfo &TableInfo,
1345 TableInfo.Predicates.insert(CachedHashString(Predicate));
1347 PredicateSet::const_iterator P = find(TableInfo.Predicates, Predicate);
1348 return (unsigned)(P - TableInfo.Predicates.begin());
1351 void FilterChooser::emitPredicateTableEntry(DecoderTableInfo &TableInfo,
1366 unsigned PIdx = getPredicateIndex(TableInfo, PS.str());
1371 TableInfo.Table.push_back(MCD::OPC_CheckPredicate);
1374 TableInfo.Table.push_back(PB);
1376 TableInfo.FixupStack.back().push_back(TableInfo.Table.size());
1377 TableInfo.Table.push_back(0);
1378 TableInfo.Table.push_back(0);
1379 TableInfo.Table.push_back(0);
1382 void FilterChooser::emitSoftFailTableEntry(DecoderTableInfo &TableInfo,
1427 TableInfo.Table.push_back(MCD::OPC_SoftFail);
1434 TableInfo.Table.push_back(MaskBytes[i]);
1436 TableInfo.Table.push_back(0);
1441 TableInfo.Table.push_back(MaskBytes[i]);
1443 TableInfo.Table.push_back(0);
1447 void FilterChooser::emitSingletonTableEntry(DecoderTableInfo &TableInfo,
1461 emitPredicateTableEntry(TableInfo, Opc.EncodingID);
1467 TableInfo.Table.push_back(MCD::OPC_CheckField);
1471 TableInfo.Table.push_back(*P);
1472 TableInfo.Table.push_back(*P);
1473 TableInfo.Table.push_back(NumBits);
1476 TableInfo.Table.push_back(*P);
1477 TableInfo.Table.push_back(*P);
1479 TableInfo.FixupStack.back().push_back(TableInfo.Table.size());
1483 TableInfo.Table.push_back(0);
1484 TableInfo.Table.push_back(0);
1485 TableInfo.Table.push_back(0);
1489 emitSoftFailTableEntry(TableInfo, Opc.EncodingID);
1493 getDecoderIndex(TableInfo.Decoders, Opc.EncodingID, HasCompleteDecoder);
1504 TableInfo.Table.push_back(HasCompleteDecoder ? MCD::OPC_Decode
1510 TableInfo.Table.push_back(*p);
1511 TableInfo.Table.push_back(*p);
1519 TableInfo.Table.push_back(B);
1523 TableInfo.FixupStack.back().push_back(TableInfo.Table.size());
1525 TableInfo.Table.push_back(0);
1526 TableInfo.Table.push_back(0);
1527 TableInfo.Table.push_back(0);
1532 void FilterChooser::emitSingletonTableEntry(DecoderTableInfo &TableInfo,
1538 TableInfo.FixupStack.emplace_back();
1540 emitSingletonTableEntry(TableInfo, Opc);
1542 resolveTableFixups(TableInfo.Table, TableInfo.FixupStack.back(),
1543 TableInfo.Table.size());
1544 TableInfo.FixupStack.pop_back();
1546 Best.getVariableFC().emitTableEntries(TableInfo);
1829 void FilterChooser::emitTableEntries(DecoderTableInfo &TableInfo) const {
1834 emitSingletonTableEntry(TableInfo, Opcodes[0]);
1842 emitSingletonTableEntry(TableInfo, Best);
1844 Best.emitTableEntry(TableInfo);
2606 DecoderTableInfo TableInfo;
2617 TableInfo.Table.clear();
2618 TableInfo.FixupStack.clear();
2619 TableInfo.Table.reserve(16384);
2620 TableInfo.FixupStack.emplace_back();
2621 FC.emitTableEntries(TableInfo);
2624 assert(TableInfo.FixupStack.size() == 1 && "fixup stack phasing error!");
2626 resolveTableFixups(TableInfo.Table, TableInfo.FixupStack.back(),
2627 TableInfo.Table.size());
2628 TableInfo.FixupStack.clear();
2630 TableInfo.Table.push_back(MCD::OPC_Fail);
2633 emitTable(OS, TableInfo.Table, 0, FC.getBitWidth(), Opc.first.first,
2643 emitPredicateFunction(OS, TableInfo.Predicates, 0);
2646 emitDecoderFunction(OS, TableInfo.Decoders, 0);