Lines Matching refs:TableInfo
271 void emitTableEntry(DecoderTableInfo &TableInfo) const;
442 unsigned getPredicateIndex(DecoderTableInfo &TableInfo, StringRef P) const;
443 void emitPredicateTableEntry(DecoderTableInfo &TableInfo,
446 void emitSoftFailTableEntry(DecoderTableInfo &TableInfo,
450 void emitSingletonTableEntry(DecoderTableInfo &TableInfo,
454 void emitSingletonTableEntry(DecoderTableInfo &TableInfo,
484 void emitTableEntries(DecoderTableInfo &TableInfo) const;
632 void Filter::emitTableEntry(DecoderTableInfo &TableInfo) const {
633 TableInfo.Table.push_back(MCD::OPC_ExtractField);
634 TableInfo.Table.push_back(StartBit);
635 TableInfo.Table.push_back(NumBits);
638 TableInfo.FixupStack.push_back(FixupList());
642 DecoderTable &Table = TableInfo.Table;
657 FixupList &CurScope = TableInfo.FixupStack.back();
679 filterIterator->second->emitTableEntries(TableInfo);
693 assert(TableInfo.FixupStack.size() > 1 && "fixup stack underflow!");
694 FixupScopeList::iterator Source = TableInfo.FixupStack.end() - 1;
697 TableInfo.FixupStack.pop_back();
702 TableInfo.FixupStack.back().push_back(PrevFilter);
1195 unsigned FilterChooser::getPredicateIndex(DecoderTableInfo &TableInfo,
1204 TableInfo.Predicates.insert(Predicate.str());
1206 PredicateSet::const_iterator P = std::find(TableInfo.Predicates.begin(),
1207 TableInfo.Predicates.end(),
1209 return (unsigned)(P - TableInfo.Predicates.begin());
1212 void FilterChooser::emitPredicateTableEntry(DecoderTableInfo &TableInfo,
1227 unsigned PIdx = getPredicateIndex(TableInfo, PS.str());
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);
1243 void FilterChooser::emitSoftFailTableEntry(DecoderTableInfo &TableInfo,
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);
1307 void FilterChooser::emitSingletonTableEntry(DecoderTableInfo &TableInfo,
1321 emitPredicateTableEntry(TableInfo, Opc);
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());
1339 TableInfo.Table.push_back(0);
1340 TableInfo.Table.push_back(0);
1344 emitSoftFailTableEntry(TableInfo, Opc);
1346 TableInfo.Table.push_back(MCD::OPC_Decode);
1350 TableInfo.Table.push_back(*p);
1351 TableInfo.Table.push_back(*p);
1353 unsigned DIdx = getDecoderIndex(TableInfo.Decoders, Opc);
1361 TableInfo.Table.push_back(Bytes[i]);
1365 void FilterChooser::emitSingletonTableEntry(DecoderTableInfo &TableInfo,
1371 TableInfo.FixupStack.push_back(FixupList());
1373 emitSingletonTableEntry(TableInfo, Opc);
1375 resolveTableFixups(TableInfo.Table, TableInfo.FixupStack.back(),
1376 TableInfo
1377 TableInfo.FixupStack.pop_back();
1379 Best.getVariableFC().emitTableEntries(TableInfo);
1664 void FilterChooser::emitTableEntries(DecoderTableInfo &TableInfo) const {
1669 emitSingletonTableEntry(TableInfo, Opcodes[0]);
1677 emitSingletonTableEntry(TableInfo, Best);
1679 Best.emitTableEntry(TableInfo);
2040 DecoderTableInfo TableInfo;
2052 TableInfo.Table.clear();
2053 TableInfo.FixupStack.clear();
2054 TableInfo.Table.reserve(16384);
2055 TableInfo.FixupStack.push_back(FixupList());
2056 FC.emitTableEntries(TableInfo);
2059 assert(TableInfo.FixupStack.size() == 1 && "fixup stack phasing error!");
2061 resolveTableFixups(TableInfo.Table, TableInfo.FixupStack.back(),
2062 TableInfo.Table.size());
2063 TableInfo.FixupStack.clear();
2065 TableInfo.Table.push_back(MCD::OPC_Fail);
2068 emitTable(OS, TableInfo.Table, 0, FC.getBitWidth(), I->first.first);
2073 emitPredicateFunction(OS, TableInfo.Predicates, 0);
2076 emitDecoderFunction(OS, TableInfo.Decoders, 0);