forked from OSchip/llvm-project
				
			
							parent
							
								
									6058a35624
								
							
						
					
					
						commit
						412d61af43
					
				| 
						 | 
					@ -3248,14 +3248,30 @@ void SelectionDAGLowering::visitInlineAsm(CallInst &I) {
 | 
				
			||||||
    if (OpInfo.CallOperandVal) {
 | 
					    if (OpInfo.CallOperandVal) {
 | 
				
			||||||
      OpInfo.CallOperand = getValue(OpInfo.CallOperandVal);
 | 
					      OpInfo.CallOperand = getValue(OpInfo.CallOperandVal);
 | 
				
			||||||
      const Type *OpTy = OpInfo.CallOperandVal->getType();
 | 
					      const Type *OpTy = OpInfo.CallOperandVal->getType();
 | 
				
			||||||
      if (!OpInfo.isIndirect) {
 | 
					      // If this is an indirect operand, the operand is a pointer to the
 | 
				
			||||||
        // Must be an input.
 | 
					      // accessed type.
 | 
				
			||||||
        OpVT = TLI.getValueType(OpTy);
 | 
					      if (OpInfo.isIndirect)
 | 
				
			||||||
      } else {
 | 
					        OpTy = cast<PointerType>(OpTy)->getElementType();
 | 
				
			||||||
        OpVT = TLI.getValueType(cast<PointerType>(OpTy)->getElementType(),true);
 | 
					      
 | 
				
			||||||
 | 
					      // If OpTy is not a first-class value, it may be a struct/union that we
 | 
				
			||||||
 | 
					      // can tile with integers.
 | 
				
			||||||
 | 
					      if (!OpTy->isFirstClassType() && OpTy->isSized()) {
 | 
				
			||||||
 | 
					        unsigned BitSize = TD->getTypeSizeInBits(OpTy);
 | 
				
			||||||
 | 
					        switch (BitSize) {
 | 
				
			||||||
 | 
					        default: break;
 | 
				
			||||||
 | 
					        case 1:
 | 
				
			||||||
 | 
					        case 8:
 | 
				
			||||||
 | 
					        case 16:
 | 
				
			||||||
 | 
					        case 32:
 | 
				
			||||||
 | 
					        case 64:
 | 
				
			||||||
 | 
					          OpTy = IntegerType::get(BitSize);
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
 | 
					      OpVT = TLI.getValueType(OpTy, true);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    OpInfo.ConstraintVT = OpVT;
 | 
					    OpInfo.ConstraintVT = OpVT;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    // Compute the constraint code to use.
 | 
					    // Compute the constraint code to use.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue