summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/AsmMatcherEmitter.cpp
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2012-03-07 17:06:40 +0000
committerChad Rosier <mcrosier@apple.com>2012-03-07 17:06:40 +0000
commit3048107bc154c2fd792e99c0da2a0721816f3699 (patch)
treedee7a14b453edfd686ecc55c1d3cfcb60e1fb437 /llvm/utils/TableGen/AsmMatcherEmitter.cpp
parentaa0f752fc83602b005422bfea8e5edd7b2876134 (diff)
downloadbcm5719-llvm-3048107bc154c2fd792e99c0da2a0721816f3699.tar.gz
bcm5719-llvm-3048107bc154c2fd792e99c0da2a0721816f3699.zip
Revert r152202 as it's causing internal buildbot failures.
Original commit message: Use uint16_t to store InstrNameIndices in MCInstrInfo. Add asserts to protect all 16-bit string table offsets. Also make sure the string to offset table string is not larger than 65536 characters since larger string literals aren't portable. llvm-svn: 152233
Diffstat (limited to 'llvm/utils/TableGen/AsmMatcherEmitter.cpp')
-rw-r--r--llvm/utils/TableGen/AsmMatcherEmitter.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/llvm/utils/TableGen/AsmMatcherEmitter.cpp b/llvm/utils/TableGen/AsmMatcherEmitter.cpp
index 4afee215234..cdcc496e7d4 100644
--- a/llvm/utils/TableGen/AsmMatcherEmitter.cpp
+++ b/llvm/utils/TableGen/AsmMatcherEmitter.cpp
@@ -2023,7 +2023,7 @@ static void EmitCustomOperandParsing(raw_ostream &OS, CodeGenTarget &Target,
// Emit the static custom operand parsing table;
OS << "namespace {\n";
OS << " struct OperandMatchEntry {\n";
- OS << " static const char *const MnemonicTable;\n";
+ OS << " static const char *MnemonicTable;\n";
OS << " unsigned OperandMask;\n";
OS << " uint16_t Mnemonic;\n";
OS << " " << getMinimalTypeForRange(Info.Classes.size())
@@ -2079,9 +2079,8 @@ static void EmitCustomOperandParsing(raw_ostream &OS, CodeGenTarget &Target,
// Store a pascal-style length byte in the mnemonic.
std::string LenMnemonic = char(II.Mnemonic.size()) + II.Mnemonic.str();
- unsigned Idx = StringTable.GetOrAddStringOffset(LenMnemonic, false);
- assert(Idx <= 0xffff && "String offset too large to fit in table");
- OS << ", " << Idx << " /* " << II.Mnemonic << " */";
+ OS << ", " << StringTable.GetOrAddStringOffset(LenMnemonic, false)
+ << " /* " << II.Mnemonic << " */";
OS << ", " << OMI.CI->Name
<< ", ";
@@ -2098,7 +2097,7 @@ static void EmitCustomOperandParsing(raw_ostream &OS, CodeGenTarget &Target,
}
OS << "};\n\n";
- OS << "const char *const OperandMatchEntry::MnemonicTable =\n";
+ OS << "const char *OperandMatchEntry::MnemonicTable =\n";
StringTable.EmitString(OS);
OS << ";\n\n";
@@ -2321,7 +2320,7 @@ void AsmMatcherEmitter::run(raw_ostream &OS) {
// following the mnemonic.
OS << "namespace {\n";
OS << " struct MatchEntry {\n";
- OS << " static const char *const MnemonicTable;\n";
+ OS << " static const char *MnemonicTable;\n";
OS << " uint16_t Opcode;\n";
OS << " uint16_t Mnemonic;\n";
OS << " " << getMinimalTypeForRange(Info.Matchables.size())
@@ -2364,11 +2363,10 @@ void AsmMatcherEmitter::run(raw_ostream &OS) {
// Store a pascal-style length byte in the mnemonic.
std::string LenMnemonic = char(II.Mnemonic.size()) + II.Mnemonic.str();
- unsigned Idx = StringTable.GetOrAddStringOffset(LenMnemonic, false);
- assert(Idx <= 0xffff && "String offset too large to fit in table");
OS << " { " << Target.getName() << "::"
<< II.getResultInst()->TheDef->getName() << ", "
- << Idx << " /* " << II.Mnemonic << " */"
+ << StringTable.GetOrAddStringOffset(LenMnemonic, false)
+ << " /* " << II.Mnemonic << " */"
<< ", " << II.ConversionFnKind << ", { ";
for (unsigned i = 0, e = II.AsmOperands.size(); i != e; ++i) {
MatchableInfo::AsmOperand &Op = II.AsmOperands[i];
@@ -2392,7 +2390,7 @@ void AsmMatcherEmitter::run(raw_ostream &OS) {
OS << "};\n\n";
- OS << "const char *const MatchEntry::MnemonicTable =\n";
+ OS << "const char *MatchEntry::MnemonicTable =\n";
StringTable.EmitString(OS);
OS << ";\n\n";
OpenPOWER on IntegriCloud