Lines Matching refs:MO
34 static MCSymbol *GetSymbolFromOperand(const MachineOperand &MO, in GetSymbolFromOperand() argument
36 if (MO.isGlobal()) { in GetSymbolFromOperand()
39 const GlobalValue *GV = MO.getGlobal(); in GetSymbolFromOperand()
43 assert(MO.isSymbol() && "Isn't a symbol reference"); in GetSymbolFromOperand()
47 Mangler::getNameWithPrefix(Name, MO.getSymbolName(), DL); in GetSymbolFromOperand()
54 static MCOperand GetSymbolRef(const MachineOperand &MO, const MCSymbol *Symbol, in GetSymbolRef() argument
59 unsigned access = MO.getTargetFlags(); in GetSymbolRef()
86 const MachineInstr *MI = MO.getParent(); in GetSymbolRef()
89 if (MO.getTargetFlags() == PPCII::MO_PLT) in GetSymbolRef()
91 else if (MO.getTargetFlags() == PPCII::MO_PCREL_FLAG) in GetSymbolRef()
93 else if (MO.getTargetFlags() == PPCII::MO_GOT_PCREL_FLAG) in GetSymbolRef()
95 else if (MO.getTargetFlags() == PPCII::MO_TPREL_PCREL_FLAG) in GetSymbolRef()
97 else if (MO.getTargetFlags() == PPCII::MO_GOT_TLSGD_PCREL_FLAG) in GetSymbolRef()
99 else if (MO.getTargetFlags() == PPCII::MO_GOT_TLSLD_PCREL_FLAG) in GetSymbolRef()
101 else if (MO.getTargetFlags() == PPCII::MO_GOT_TPREL_PCREL_FLAG) in GetSymbolRef()
103 else if (MO.getTargetFlags() == PPCII::MO_TPREL_FLAG || in GetSymbolRef()
104 MO.getTargetFlags() == PPCII::MO_TLSLD_FLAG) { in GetSymbolRef()
105 assert(MO.isGlobal() && "Only expecting a global MachineOperand here!"); in GetSymbolRef()
106 TLSModel::Model Model = TM.getTLSModel(MO.getGlobal()); in GetSymbolRef()
135 if (MO.getTargetFlags() == PPCII::MO_PCREL_OPT_FLAG) in GetSymbolRef()
143 MO.getTargetFlags() == PPCII::MO_PLT) in GetSymbolRef()
147 if (!MO.isJTI() && MO.getOffset()) in GetSymbolRef()
149 MCConstantExpr::create(MO.getOffset(), Ctx), in GetSymbolRef()
153 if (MO.getTargetFlags() == PPCII::MO_PIC_FLAG || in GetSymbolRef()
154 MO.getTargetFlags() == PPCII::MO_PIC_HA_FLAG || in GetSymbolRef()
155 MO.getTargetFlags() == PPCII::MO_PIC_LO_FLAG) { in GetSymbolRef()
156 const MachineFunction *MF = MO.getParent()->getParent()->getParent(); in GetSymbolRef()
181 for (const MachineOperand &MO : MI->operands()) { in LowerPPCMachineInstrToMCInst() local
183 if (LowerPPCMachineOperandToMCOperand(MO, MCOp, AP)) in LowerPPCMachineInstrToMCInst()
188 bool llvm::LowerPPCMachineOperandToMCOperand(const MachineOperand &MO, in LowerPPCMachineOperandToMCOperand() argument
190 switch (MO.getType()) { in LowerPPCMachineOperandToMCOperand()
194 assert(!MO.getSubReg() && "Subregs should be eliminated!"); in LowerPPCMachineOperandToMCOperand()
195 assert(MO.getReg() > PPC::NoRegister && in LowerPPCMachineOperandToMCOperand()
196 MO.getReg() < PPC::NUM_TARGET_REGS && in LowerPPCMachineOperandToMCOperand()
199 if (MO.isImplicit()) in LowerPPCMachineOperandToMCOperand()
201 OutMO = MCOperand::createReg(MO.getReg()); in LowerPPCMachineOperandToMCOperand()
204 OutMO = MCOperand::createImm(MO.getImm()); in LowerPPCMachineOperandToMCOperand()
208 MCSymbolRefExpr::create(MO.getMBB()->getSymbol(), AP.OutContext)); in LowerPPCMachineOperandToMCOperand()
212 OutMO = GetSymbolRef(MO, GetSymbolFromOperand(MO, AP), AP); in LowerPPCMachineOperandToMCOperand()
215 OutMO = GetSymbolRef(MO, AP.GetJTISymbol(MO.getIndex()), AP); in LowerPPCMachineOperandToMCOperand()
218 OutMO = GetSymbolRef(MO, AP.GetCPISymbol(MO.getIndex()), AP); in LowerPPCMachineOperandToMCOperand()
222 GetSymbolRef(MO, AP.GetBlockAddressSymbol(MO.getBlockAddress()), AP); in LowerPPCMachineOperandToMCOperand()
225 OutMO = GetSymbolRef(MO, MO.getMCSymbol(), AP); in LowerPPCMachineOperandToMCOperand()