LLVM API Documentation
#include <AArch64MCInstLower.h>
Public Member Functions | |
AArch64MCInstLower (MCContext &ctx, AsmPrinter &printer) | |
bool | lowerOperand (const MachineOperand &MO, MCOperand &MCOp) const |
void | Lower (const MachineInstr *MI, MCInst &OutMI) const |
MCOperand | lowerSymbolOperandDarwin (const MachineOperand &MO, MCSymbol *Sym) const |
MCOperand | lowerSymbolOperandELF (const MachineOperand &MO, MCSymbol *Sym) const |
MCOperand | LowerSymbolOperand (const MachineOperand &MO, MCSymbol *Sym) const |
MCSymbol * | GetGlobalAddressSymbol (const MachineOperand &MO) const |
MCSymbol * | GetExternalSymbolSymbol (const MachineOperand &MO) const |
AArch64MCInstLower - This class is used to lower an MachineInstr into an MCInst.
Definition at line 30 of file AArch64MCInstLower.h.
AArch64MCInstLower::AArch64MCInstLower | ( | MCContext & | ctx, |
AsmPrinter & | printer | ||
) |
Definition at line 28 of file AArch64MCInstLower.cpp.
MCSymbol * AArch64MCInstLower::GetExternalSymbolSymbol | ( | const MachineOperand & | MO | ) | const |
Definition at line 37 of file AArch64MCInstLower.cpp.
References llvm::AsmPrinter::GetExternalSymbolSymbol(), and llvm::MachineOperand::getSymbolName().
Referenced by lowerOperand().
MCSymbol * AArch64MCInstLower::GetGlobalAddressSymbol | ( | const MachineOperand & | MO | ) | const |
Definition at line 32 of file AArch64MCInstLower.cpp.
References llvm::MachineOperand::getGlobal(), and llvm::AsmPrinter::getSymbol().
Referenced by lowerOperand().
void AArch64MCInstLower::Lower | ( | const MachineInstr * | MI, |
MCInst & | OutMI | ||
) | const |
Definition at line 193 of file AArch64MCInstLower.cpp.
References llvm::MCInst::addOperand(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), lowerOperand(), and llvm::MCInst::setOpcode().
bool AArch64MCInstLower::lowerOperand | ( | const MachineOperand & | MO, |
MCOperand & | MCOp | ||
) | const |
Definition at line 152 of file AArch64MCInstLower.cpp.
References llvm::MCSymbolRefExpr::Create(), llvm::MCOperand::CreateExpr(), llvm::MCOperand::CreateImm(), llvm::MCOperand::CreateReg(), llvm::MachineOperand::getBlockAddress(), llvm::AsmPrinter::GetBlockAddressSymbol(), llvm::AsmPrinter::GetCPISymbol(), GetExternalSymbolSymbol(), GetGlobalAddressSymbol(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::AsmPrinter::GetJTISymbol(), llvm::MachineOperand::getMBB(), llvm::MachineOperand::getReg(), llvm::MachineBasicBlock::getSymbol(), llvm::MachineOperand::getType(), llvm::MachineOperand::isImplicit(), llvm_unreachable, LowerSymbolOperand(), llvm::MachineOperand::MO_BlockAddress, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_ExternalSymbol, llvm::MachineOperand::MO_GlobalAddress, llvm::MachineOperand::MO_Immediate, llvm::MachineOperand::MO_JumpTableIndex, llvm::MachineOperand::MO_MachineBasicBlock, llvm::MachineOperand::MO_Register, and llvm::MachineOperand::MO_RegisterMask.
Referenced by Lower().
MCOperand AArch64MCInstLower::LowerSymbolOperand | ( | const MachineOperand & | MO, |
MCSymbol * | Sym | ||
) | const |
Definition at line 143 of file AArch64MCInstLower.cpp.
References llvm::Triple::isOSBinFormatELF(), llvm::Triple::isOSDarwin(), lowerSymbolOperandDarwin(), and lowerSymbolOperandELF().
Referenced by lowerOperand().
MCOperand AArch64MCInstLower::lowerSymbolOperandDarwin | ( | const MachineOperand & | MO, |
MCSymbol * | Sym | ||
) | const |
Definition at line 41 of file AArch64MCInstLower.cpp.
References llvm::MCConstantExpr::Create(), llvm::MCSymbolRefExpr::Create(), llvm::MCBinaryExpr::CreateAdd(), llvm::MCOperand::CreateExpr(), llvm::MachineOperand::getOffset(), llvm::MachineOperand::getTargetFlags(), llvm::MachineOperand::isJTI(), llvm_unreachable, llvm::AArch64II::MO_FRAGMENT, llvm::AArch64II::MO_GOT, llvm::AArch64II::MO_PAGE, llvm::AArch64II::MO_PAGEOFF, llvm::AArch64II::MO_TLS, llvm::MCSymbolRefExpr::VK_GOTPAGE, llvm::MCSymbolRefExpr::VK_GOTPAGEOFF, llvm::MCSymbolRefExpr::VK_None, llvm::MCSymbolRefExpr::VK_PAGE, llvm::MCSymbolRefExpr::VK_PAGEOFF, llvm::MCSymbolRefExpr::VK_TLVPPAGE, and llvm::MCSymbolRefExpr::VK_TLVPPAGEOFF.
Referenced by LowerSymbolOperand().
MCOperand AArch64MCInstLower::lowerSymbolOperandELF | ( | const MachineOperand & | MO, |
MCSymbol * | Sym | ||
) | const |
Definition at line 76 of file AArch64MCInstLower.cpp.
References llvm::AArch64MCExpr::Create(), llvm::MCConstantExpr::Create(), llvm::MCSymbolRefExpr::Create(), llvm::MCBinaryExpr::CreateAdd(), llvm::MCOperand::CreateExpr(), llvm::TLSModel::GeneralDynamic, llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getOffset(), llvm::MachineOperand::getSymbolName(), llvm::MachineOperand::getTargetFlags(), llvm::TargetMachine::getTLSModel(), llvm::TLSModel::InitialExec, llvm::MachineOperand::isGlobal(), llvm::MachineOperand::isJTI(), llvm::MachineOperand::isSymbol(), llvm::TLSModel::LocalDynamic, llvm::TLSModel::LocalExec, llvm::AArch64II::MO_FRAGMENT, llvm::AArch64II::MO_G0, llvm::AArch64II::MO_G1, llvm::AArch64II::MO_G2, llvm::AArch64II::MO_G3, llvm::AArch64II::MO_GOT, llvm::AArch64II::MO_NC, llvm::AArch64II::MO_PAGE, llvm::AArch64II::MO_PAGEOFF, llvm::AArch64II::MO_TLS, llvm::AsmPrinter::TM, llvm::AArch64MCExpr::VK_ABS, llvm::AArch64MCExpr::VK_DTPREL, llvm::AArch64MCExpr::VK_G0, llvm::AArch64MCExpr::VK_G1, llvm::AArch64MCExpr::VK_G2, llvm::AArch64MCExpr::VK_G3, llvm::AArch64MCExpr::VK_GOT, llvm::AArch64MCExpr::VK_GOTTPREL, llvm::AArch64MCExpr::VK_NC, llvm::MCSymbolRefExpr::VK_None, llvm::AArch64MCExpr::VK_PAGE, llvm::AArch64MCExpr::VK_PAGEOFF, llvm::AArch64MCExpr::VK_TLSDESC, and llvm::AArch64MCExpr::VK_TPREL.
Referenced by LowerSymbolOperand().