diff options
author | NAKAMURA Takumi <geek4civic@gmail.com> | 2011-01-26 02:03:48 +0000 |
---|---|---|
committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2011-01-26 02:03:48 +0000 |
commit | 36c3bc431b92f1573b3f3bd75b644774681998ee (patch) | |
tree | bfca1b97f1f5b1b18ff715bdb95e2880b43af9ab /utils/TableGen | |
parent | e5fffe9c3fa402cb5d5167327783f82b86f52b8f (diff) | |
download | external_llvm-36c3bc431b92f1573b3f3bd75b644774681998ee.zip external_llvm-36c3bc431b92f1573b3f3bd75b644774681998ee.tar.gz external_llvm-36c3bc431b92f1573b3f3bd75b644774681998ee.tar.bz2 |
TableGen: PointerLikeRegClass can be accepted to operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124271 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen')
-rw-r--r-- | utils/TableGen/CodeGenInstruction.cpp | 3 | ||||
-rw-r--r-- | utils/TableGen/EDEmitter.cpp | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/utils/TableGen/CodeGenInstruction.cpp b/utils/TableGen/CodeGenInstruction.cpp index e6e081f..d69a44b 100644 --- a/utils/TableGen/CodeGenInstruction.cpp +++ b/utils/TableGen/CodeGenInstruction.cpp @@ -94,7 +94,8 @@ CGIOperandList::CGIOperandList(Record *R) : TheDef(R) { isVariadic = true; continue; } else if (!Rec->isSubClassOf("RegisterClass") && - Rec->getName() != "ptr_rc" && Rec->getName() != "unknown") + !Rec->isSubClassOf("PointerLikeRegClass") && + Rec->getName() != "unknown") throw "Unknown operand class '" + Rec->getName() + "' in '" + R->getName() + "' instruction!"; diff --git a/utils/TableGen/EDEmitter.cpp b/utils/TableGen/EDEmitter.cpp index 353dbd6..7051f2e 100644 --- a/utils/TableGen/EDEmitter.cpp +++ b/utils/TableGen/EDEmitter.cpp @@ -354,7 +354,8 @@ static void X86PopulateOperands( const CGIOperandList::OperandInfo &operandInfo = inst.Operands[index]; Record &rec = *operandInfo.Rec; - if (X86TypeFromOpName(operandTypes[index], rec.getName())) { + if (X86TypeFromOpName(operandTypes[index], rec.getName()) && + !rec.isSubClassOf("PointerLikeRegClass")) { errs() << "Operand type: " << rec.getName().c_str() << "\n"; errs() << "Operand name: " << operandInfo.Name.c_str() << "\n"; errs() << "Instruction name: " << inst.TheDef->getName().c_str() << "\n"; |