llvm.org GIT mirror llvm / f2f3cd5
Fix CodeGen/Generic/2007-04-27-LargeMemObject.ll and CodeGen/Generic/2007-04-27-InlineAsm-X-Dest.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36534 91177308-0d34-0410-b5e6-96231b3b80d8 Chris Lattner 13 years ago
1 changed file(s) with 10 addition(s) and 4 deletion(s). Raw diff Collapse all Expand all
32093209 switch (Constraints[i].Type) {
32103210 case InlineAsm::isOutput:
32113211 if (!Constraints[i].isIndirect) {
3212 // The return value of the call is this value.
32123213 assert(I.getType() != Type::VoidTy && "Bad inline asm!");
32133214 OpVT = TLI.getValueType(I.getType());
32143215 } else {
32153216 const Type *OpTy = I.getOperand(OpNum)->getType();
3216 OpVT = TLI.getValueType(cast(OpTy)->getElementType());
3217 OpVT = TLI.getValueType(cast(OpTy)->getElementType(),true);
32173218 OpNum++; // Consumes a call operand.
32183219 }
32193220 break;
32203221 case InlineAsm::isInput:
3221 OpVT = TLI.getValueType(I.getOperand(OpNum)->getType());
3222 if (!Constraints[i].isIndirect) {
3223 OpVT = TLI.getValueType(I.getOperand(OpNum)->getType());
3224 } else {
3225 const Type *OpTy = I.getOperand(OpNum)->getType();
3226 OpVT = TLI.getValueType(cast(OpTy)->getElementType(),true);
3227 }
32223228 OpNum++; // Consumes a call operand.
32233229 break;
32243230 case InlineAsm::isClobber:
32743280 if (ConstraintCode.size() == 1) // not a physreg name.
32753281 CTy = TLI.getConstraintType(ConstraintCode);
32763282
3277 if (CTy == TargetLowering::C_Memory) {
3278 // Memory output.
3283 if (CTy != TargetLowering::C_RegisterClass) {
3284 // Memory output, or 'other' output (e.g. 'X' constraint).
32793285 SDOperand InOperandVal = getValue(I.getOperand(OpNum));
32803286
32813287 // Check that the operand (the address to store to) isn't a float.