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 | 31aafbd5013ca93e4ae8f8eeff7ed83eb29239df (patch) | |
| tree | 37e375f19da6860085078b75f3c757ed8f5d847a /llvm | |
| parent | 9d29eff19874a506c2290c239209d524c84ff0ab (diff) | |
| download | bcm5719-llvm-31aafbd5013ca93e4ae8f8eeff7ed83eb29239df.tar.gz bcm5719-llvm-31aafbd5013ca93e4ae8f8eeff7ed83eb29239df.zip | |
TableGen: PointerLikeRegClass can be accepted to operand.
llvm-svn: 124271
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/utils/TableGen/CodeGenInstruction.cpp | 3 | ||||
| -rw-r--r-- | llvm/utils/TableGen/EDEmitter.cpp | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/llvm/utils/TableGen/CodeGenInstruction.cpp b/llvm/utils/TableGen/CodeGenInstruction.cpp index e6e081f2d6b..d69a44bc293 100644 --- a/llvm/utils/TableGen/CodeGenInstruction.cpp +++ b/llvm/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/llvm/utils/TableGen/EDEmitter.cpp b/llvm/utils/TableGen/EDEmitter.cpp index 353dbd6340c..7051f2e0bc4 100644 --- a/llvm/utils/TableGen/EDEmitter.cpp +++ b/llvm/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"; |

