summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-08-25 00:47:38 +0000
committerChris Lattner <sabre@nondot.org>2007-08-25 00:47:38 +0000
commitd8c9cb918273165cfd6e25ecff0f9a94b9e0a591 (patch)
treed7afdcdafe7e0740578c108892171ae025fad423 /llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
parent45e608ad752874f0bc74ad32715977142f2947f6 (diff)
downloadbcm5719-llvm-d8c9cb918273165cfd6e25ecff0f9a94b9e0a591.tar.gz
bcm5719-llvm-d8c9cb918273165cfd6e25ecff0f9a94b9e0a591.zip
rename isOperandValidForConstraint to LowerAsmOperandForConstraint,
changing the interface to allow for future changes. llvm-svn: 41384
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
index 2e91359b430..9597696d2dc 100644
--- a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
@@ -1354,12 +1354,12 @@ TargetLowering::getConstraintType(const std::string &Constraint) const {
return C_Unknown;
}
-/// isOperandValidForConstraint - Return the specified operand (possibly
-/// modified) if the specified SDOperand is valid for the specified target
-/// constraint letter, otherwise return null.
-SDOperand TargetLowering::isOperandValidForConstraint(SDOperand Op,
- char ConstraintLetter,
- SelectionDAG &DAG) {
+/// LowerAsmOperandForConstraint - Lower the specified operand into the Ops
+/// vector. If it is invalid, don't add anything to Ops.
+void TargetLowering::LowerAsmOperandForConstraint(SDOperand Op,
+ char ConstraintLetter,
+ std::vector<SDOperand> &Ops,
+ SelectionDAG &DAG) {
switch (ConstraintLetter) {
default: break;
case 'i': // Simple Integer or Relocatable Constant
@@ -1390,19 +1390,21 @@ SDOperand TargetLowering::isOperandValidForConstraint(SDOperand Op,
if (ConstraintLetter != 'n') {
int64_t Offs = GA->getOffset();
if (C) Offs += C->getValue();
- return DAG.getTargetGlobalAddress(GA->getGlobal(), Op.getValueType(),
- Offs);
+ Ops.push_back(DAG.getTargetGlobalAddress(GA->getGlobal(),
+ Op.getValueType(), Offs));
+ return;
}
}
if (C) { // just C, no GV.
// Simple constants are not allowed for 's'.
- if (ConstraintLetter != 's')
- return DAG.getTargetConstant(C->getValue(), Op.getValueType());
+ if (ConstraintLetter != 's') {
+ Ops.push_back(DAG.getTargetConstant(C->getValue(), Op.getValueType()));
+ return;
+ }
}
break;
}
}
- return SDOperand(0,0);
}
std::vector<unsigned> TargetLowering::
OpenPOWER on IntegriCloud