Lines Matching defs:MO

33 AArch64MCInstLower::GetGlobalAddressSymbol(const MachineOperand &MO) const {
34 return Printer.getSymbol(MO.getGlobal());
38 AArch64MCInstLower::GetExternalSymbolSymbol(const MachineOperand &MO) const {
39 return Printer.GetExternalSymbolSymbol(MO.getSymbolName());
42 MCOperand AArch64MCInstLower::lowerSymbolOperandDarwin(const MachineOperand &MO,
47 if ((MO.getTargetFlags() & AArch64II::MO_GOT) != 0) {
48 if ((MO.getTargetFlags() & AArch64II::MO_FRAGMENT) == AArch64II::MO_PAGE)
50 else if ((MO.getTargetFlags() & AArch64II::MO_FRAGMENT) ==
55 } else if ((MO.getTargetFlags() & AArch64II::MO_TLS) != 0) {
56 if ((MO.getTargetFlags() & AArch64II::MO_FRAGMENT) == AArch64II::MO_PAGE)
58 else if ((MO.getTargetFlags() & AArch64II::MO_FRAGMENT) ==
64 if ((MO.getTargetFlags() & AArch64II::MO_FRAGMENT) == AArch64II::MO_PAGE)
66 else if ((MO.getTargetFlags() & AArch64II::MO_FRAGMENT) ==
71 if (!MO.isJTI() && MO.getOffset())
73 Expr, MCConstantExpr::Create(MO.getOffset(), Ctx), Ctx);
77 MCOperand AArch64MCInstLower::lowerSymbolOperandELF(const MachineOperand &MO,
81 if (MO.getTargetFlags() & AArch64II::MO_GOT)
83 else if (MO.getTargetFlags() & AArch64II::MO_TLS) {
85 if (MO.isGlobal()) {
86 const GlobalValue *GV = MO.getGlobal();
89 assert(MO.isSymbol() &&
90 StringRef(MO.getSymbolName()) == "_TLS_MODULE_BASE_" &&
114 if ((MO.getTargetFlags() & AArch64II::MO_FRAGMENT) == AArch64II::MO_PAGE)
116 else if ((MO.getTargetFlags() & AArch64II::MO_FRAGMENT) ==
119 else if ((MO.getTargetFlags() & AArch64II::MO_FRAGMENT) == AArch64II::MO_G3)
121 else if ((MO.getTargetFlags() & AArch64II::MO_FRAGMENT) == AArch64II::MO_G2)
123 else if ((MO.getTargetFlags() & AArch64II::MO_FRAGMENT) == AArch64II::MO_G1)
125 else if ((MO.getTargetFlags() & AArch64II::MO_FRAGMENT) == AArch64II::MO_G0)
128 if (MO.getTargetFlags() & AArch64II::MO_NC)
133 if (!MO.isJTI() && MO.getOffset())
135 Expr, MCConstantExpr::Create(MO.getOffset(), Ctx), Ctx);
144 MCOperand AArch64MCInstLower::LowerSymbolOperand(const MachineOperand &MO,
147 return lowerSymbolOperandDarwin(MO, Sym);
150 return lowerSymbolOperandELF(MO, Sym);
153 bool AArch64MCInstLower::lowerOperand(const MachineOperand &MO,
155 switch (MO.getType()) {
160 if (MO.isImplicit())
162 MCOp = MCOperand::CreateReg(MO.getReg());
168 MCOp = MCOperand::CreateImm(MO.getImm());
172 MCSymbolRefExpr::Create(MO.getMBB()->getSymbol(), Ctx));
175 MCOp = LowerSymbolOperand(MO, GetGlobalAddressSymbol(MO));
178 MCOp = LowerSymbolOperand(MO, GetExternalSymbolSymbol(MO));
181 MCOp = LowerSymbolOperand(MO, Printer.GetJTISymbol(MO.getIndex()));
184 MCOp = LowerSymbolOperand(MO, Printer.GetCPISymbol(MO.getIndex()));
188 MO, Printer.GetBlockAddressSymbol(MO.getBlockAddress()));