summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-03-11 03:14:42 +0000
committerChris Lattner <sabre@nondot.org>2008-03-11 03:14:42 +0000
commit3e0ec65678a103dfdd47cae137f44ba8b997140f (patch)
tree520ccf379687841a5b197373e79867a32a7d4635 /llvm/lib
parent319234d67c2f9c3214d9f223ceaf2095cd556516 (diff)
downloadbcm5719-llvm-3e0ec65678a103dfdd47cae137f44ba8b997140f.tar.gz
bcm5719-llvm-3e0ec65678a103dfdd47cae137f44ba8b997140f.zip
variadic instructions don't have operand info for variadic arguments.
llvm-svn: 48208
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
index 462b94bc3f4..032ef5e2d0a 100644
--- a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
@@ -538,6 +538,7 @@ void ScheduleDAG::AddOperand(MachineInstr *MI, SDOperand Op,
// the regclass is ok.
const TargetRegisterClass *RC =
getInstrOperandRegClass(TRI, TII, *II, IIOpNum);
+ assert((RC || II->isVariadic()) && "Expected reg class info!");
const TargetRegisterClass *VRC = RegInfo.getRegClass(VReg);
if (RC && VRC != RC) {
cerr << "Register class of operand and regclass of use don't agree!\n";
@@ -604,7 +605,7 @@ void ScheduleDAG::AddOperand(MachineInstr *MI, SDOperand Op,
// to be able to handle it. This handles things like copies from ST(0) to
// an FP vreg on x86.
assert(TargetRegisterInfo::isVirtualRegister(VReg) && "Not a vreg?");
- if (II) {
+ if (II && !II->isVariadic()) {
assert(getInstrOperandRegClass(TRI, TII, *II, IIOpNum) &&
"Don't have operand info for this instruction!");
}
OpenPOWER on IntegriCloud