Lines Matching refs:InlineAsm

43 #include "llvm/IR/InlineAsm.h"
226 if (isa<InlineAsm>(CI->getCalledValue()))
822 unsigned Flag = InlineAsm::getFlagWord(Code, Regs.size());
824 Flag = InlineAsm::getFlagWordForMatchingOp(Flag, MatchingIdx);
834 Flag = InlineAsm::getFlagWordForRegClass(Flag, RC->getID());
849 if (TheReg == SP && Code == InlineAsm::Kind_Clobber) {
2001 if (isa<InlineAsm>(Callee))
5864 if (isa<InlineAsm>(I.getCalledValue())) {
6131 if (OpInfo.Type == InlineAsm::isInput &&
6211 /// visitInlineAsm - Handle a call to an InlineAsm object.
6214 const InlineAsm *IA = cast<InlineAsm>(CS.getCalledValue());
6235 case InlineAsm::isOutput:
6253 case InlineAsm::isInput:
6256 case InlineAsm::isClobber:
6334 OpInfo.Type == InlineAsm::isClobber)
6342 (OpInfo.Type == InlineAsm::isInput)) &&
6417 ExtraInfo |= InlineAsm::Extra_HasSideEffects;
6419 ExtraInfo |= InlineAsm::Extra_IsAlignStack;
6421 ExtraInfo |= IA->getDialect() * InlineAsm::Extra_AsmDialect;
6423 // Determine if this InlineAsm MayLoad or MayStore based on the constraints.
6436 if (OpInfo.Type == InlineAsm::isInput)
6437 ExtraInfo |= InlineAsm::Extra_MayLoad;
6438 else if (OpInfo.Type == InlineAsm::isOutput)
6439 ExtraInfo |= InlineAsm::Extra_MayStore;
6440 else if (OpInfo.Type == InlineAsm::isClobber)
6441 ExtraInfo |= (InlineAsm::Extra_MayLoad | InlineAsm::Extra_MayStore);
6459 case InlineAsm::isOutput: {
6466 unsigned OpFlags = InlineAsm::getFlagWord(InlineAsm::Kind_Mem, 1);
6501 ? InlineAsm::Kind_RegDefEarlyClobber
6502 : InlineAsm::Kind_RegDef,
6506 case InlineAsm::isInput: {
6516 unsigned CurOp = InlineAsm::Op_FirstOperand;
6521 assert((InlineAsm::isRegDefKind(OpFlag) ||
6522 InlineAsm::isRegDefEarlyClobberKind(OpFlag) ||
6523 InlineAsm::isMemKind(OpFlag)) && "Skipped past definitions?");
6524 CurOp += InlineAsm::getNumOperandRegisters(OpFlag)+1;
6529 if (InlineAsm::isRegDefKind(OpFlag) ||
6530 InlineAsm::isRegDefEarlyClobberKind(OpFlag)) {
6546 for (unsigned i = 0, e = InlineAsm::getNumOperandRegisters(OpFlag);
6561 MatchedRegs.AddInlineAsmOperands(InlineAsm::Kind_RegUse,
6567 assert(InlineAsm::isMemKind(OpFlag) && "Unknown matching constraint!");
6568 assert(InlineAsm::getNumOperandRegisters(OpFlag) == 1 &&
6571 // See InlineAsm.h isUseOperandTiedToDef.
6572 OpFlag = InlineAsm::getFlagWordForMatchingOp(OpFlag,
6599 InlineAsm::getFlagWord(InlineAsm::Kind_Imm, Ops.size());
6612 unsigned ResOpType = InlineAsm::getFlagWord(InlineAsm::Kind_Mem, 1);
6645 OpInfo.AssignedRegs.AddInlineAsmOperands(InlineAsm::Kind_RegUse, false, 0,
6649 case InlineAsm::isClobber: {
6653 OpInfo.AssignedRegs.AddInlineAsmOperands(InlineAsm::Kind_Clobber,
6662 AsmNodeOperands[InlineAsm::Op_InputChain] = Chain;