Lines Matching defs:TableInfo
361 void emitTableEntry(DecoderTableInfo &TableInfo) const;
531 unsigned getPredicateIndex(DecoderTableInfo &TableInfo, StringRef P) const;
532 void emitPredicateTableEntry(DecoderTableInfo &TableInfo, unsigned Opc) const;
534 void emitSoftFailTableEntry(DecoderTableInfo &TableInfo, unsigned Opc) const;
537 void emitSingletonTableEntry(DecoderTableInfo &TableInfo,
541 void emitSingletonTableEntry(DecoderTableInfo &TableInfo,
574 void emitTableEntries(DecoderTableInfo &TableInfo) const;
700 void Filter::emitTableEntry(DecoderTableInfo &TableInfo) const {
702 TableInfo.Table.push_back(MCD::OPC_ExtractField);
707 TableInfo.Table.insert(TableInfo.Table.end(), SBytes.begin(), SBytes.end());
708 TableInfo.Table.push_back(NumBits);
711 TableInfo.FixupStack.emplace_back();
713 DecoderTable &Table = TableInfo.Table;
726 FixupList &CurScope = TableInfo.FixupStack.back();
749 Filter.second->emitTableEntries(TableInfo);
765 assert(TableInfo.FixupStack.size() > 1 && "fixup stack underflow!");
766 FixupScopeList::iterator Source = TableInfo.FixupStack.end() - 1;
769 TableInfo.FixupStack.pop_back();
774 TableInfo.FixupStack.back().push_back(PrevFilter);
1328 unsigned FilterChooser::getPredicateIndex(DecoderTableInfo &TableInfo,
1337 TableInfo.Predicates.insert(CachedHashString(Predicate));
1339 PredicateSet::const_iterator P = find(TableInfo.Predicates, Predicate);
1340 return (unsigned)(P - TableInfo.Predicates.begin());
1343 void FilterChooser::emitPredicateTableEntry(DecoderTableInfo &TableInfo,
1357 unsigned PIdx = getPredicateIndex(TableInfo, PS.str());
1362 TableInfo.Table.push_back(MCD::OPC_CheckPredicate);
1365 TableInfo.Table.push_back(PB);
1367 TableInfo.FixupStack.back().push_back(TableInfo.Table.size());
1368 TableInfo.Table.push_back(0);
1369 TableInfo.Table.push_back(0);
1370 TableInfo.Table.push_back(0);
1373 void FilterChooser::emitSoftFailTableEntry(DecoderTableInfo &TableInfo,
1418 TableInfo.Table.push_back(MCD::OPC_SoftFail);
1425 TableInfo.Table.push_back(MaskBytes[i]);
1427 TableInfo.Table.push_back(0);
1432 TableInfo.Table.push_back(MaskBytes[i]);
1434 TableInfo.Table.push_back(0);
1438 void FilterChooser::emitSingletonTableEntry(DecoderTableInfo &TableInfo,
1452 emitPredicateTableEntry(TableInfo, Opc.EncodingID);
1458 TableInfo.Table.push_back(MCD::OPC_CheckField);
1462 TableInfo.Table.push_back(*P);
1463 TableInfo.Table.push_back(*P);
1464 TableInfo.Table.push_back(NumBits);
1467 TableInfo.Table.push_back(*P);
1468 TableInfo.Table.push_back(*P);
1470 TableInfo.FixupStack.back().push_back(TableInfo.Table.size());
1474 TableInfo.Table.push_back(0);
1475 TableInfo.Table.push_back(0);
1476 TableInfo.Table.push_back(0);
1480 emitSoftFailTableEntry(TableInfo, Opc.EncodingID);
1484 getDecoderIndex(TableInfo.Decoders, Opc.EncodingID, HasCompleteDecoder);
1495 TableInfo.Table.push_back(HasCompleteDecoder ? MCD::OPC_Decode
1501 TableInfo.Table.push_back(*p);
1502 TableInfo.Table.push_back(*p);
1510 TableInfo.Table.push_back(B);
1514 TableInfo.FixupStack.back().push_back(TableInfo.Table.size());
1516 TableInfo.Table.push_back(0);
1517 TableInfo.Table.push_back(0);
1518 TableInfo.Table.push_back(0);
1523 void FilterChooser::emitSingletonTableEntry(DecoderTableInfo &TableInfo,
1529 TableInfo.FixupStack.emplace_back();
1531 emitSingletonTableEntry(TableInfo, Opc);
1533 resolveTableFixups(TableInfo.Table, TableInfo.FixupStack.back(),
1534 TableInfo.Table.size());
1535 TableInfo.FixupStack.pop_back();
1537 Best.getVariableFC().emitTableEntries(TableInfo);
1820 void FilterChooser::emitTableEntries(DecoderTableInfo &TableInfo) const {
1825 emitSingletonTableEntry(TableInfo, Opcodes[0]);
1833 emitSingletonTableEntry(TableInfo, Best);
1835 Best.emitTableEntry(TableInfo);
2597 DecoderTableInfo TableInfo;
2608 TableInfo.Table.clear();
2609 TableInfo.FixupStack.clear();
2610 TableInfo.Table.reserve(16384);
2611 TableInfo.FixupStack.emplace_back();
2612 FC.emitTableEntries(TableInfo);
2615 assert(TableInfo.FixupStack.size() == 1 && "fixup stack phasing error!");
2617 resolveTableFixups(TableInfo.Table, TableInfo.FixupStack.back(),
2618 TableInfo.Table.size());
2619 TableInfo.FixupStack.clear();
2621 TableInfo.Table.push_back(MCD::OPC_Fail);
2624 emitTable(OS, TableInfo.Table, indent(0), FC.getBitWidth(), Opc.first.first,
2634 emitPredicateFunction(OS, TableInfo.Predicates, indent(0));
2637 emitDecoderFunction(OS, TableInfo.Decoders, indent(0));