LLVM 19.0.0git
Public Member Functions | List of all members
llvm::AArch64MCInstLower Class Reference

AArch64MCInstLower - This class is used to lower an MachineInstr into an MCInst. More...

#include "Target/AArch64/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 lowerSymbolOperandMachO (const MachineOperand &MO, MCSymbol *Sym) const
 
MCOperand lowerSymbolOperandELF (const MachineOperand &MO, MCSymbol *Sym) const
 
MCOperand lowerSymbolOperandCOFF (const MachineOperand &MO, MCSymbol *Sym) const
 
MCOperand LowerSymbolOperand (const MachineOperand &MO, MCSymbol *Sym) const
 
MCSymbolGetGlobalValueSymbol (const GlobalValue *GV, unsigned TargetFlags) const
 
MCSymbolGetGlobalAddressSymbol (const MachineOperand &MO) const
 
MCSymbolGetExternalSymbolSymbol (const MachineOperand &MO) const
 

Detailed Description

AArch64MCInstLower - This class is used to lower an MachineInstr into an MCInst.

Definition at line 27 of file AArch64MCInstLower.h.

Constructor & Destructor Documentation

◆ AArch64MCInstLower()

AArch64MCInstLower::AArch64MCInstLower ( MCContext ctx,
AsmPrinter printer 
)

Definition at line 36 of file AArch64MCInstLower.cpp.

Member Function Documentation

◆ GetExternalSymbolSymbol()

MCSymbol * AArch64MCInstLower::GetExternalSymbolSymbol ( const MachineOperand MO) const

◆ GetGlobalAddressSymbol()

MCSymbol * AArch64MCInstLower::GetGlobalAddressSymbol ( const MachineOperand MO) const

◆ GetGlobalValueSymbol()

MCSymbol * AArch64MCInstLower::GetGlobalValueSymbol ( const GlobalValue GV,
unsigned  TargetFlags 
) const

◆ Lower()

void AArch64MCInstLower::Lower ( const MachineInstr MI,
MCInst OutMI 
) const

◆ lowerOperand()

bool AArch64MCInstLower::lowerOperand ( const MachineOperand MO,
MCOperand MCOp 
) const

◆ LowerSymbolOperand()

MCOperand AArch64MCInstLower::LowerSymbolOperand ( const MachineOperand MO,
MCSymbol Sym 
) const

◆ lowerSymbolOperandCOFF()

MCOperand AArch64MCInstLower::lowerSymbolOperandCOFF ( const MachineOperand MO,
MCSymbol Sym 
) const

◆ lowerSymbolOperandELF()

MCOperand AArch64MCInstLower::lowerSymbolOperandELF ( const MachineOperand MO,
MCSymbol Sym 
) const

Definition at line 183 of file AArch64MCInstLower.cpp.

References assert(), llvm::AArch64MCExpr::create(), llvm::MCSymbolRefExpr::create(), llvm::MCConstantExpr::create(), llvm::MCBinaryExpr::createAdd(), llvm::MCOperand::createExpr(), EnableAArch64ELFLocalDynamicTLSGeneration, 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_HI12, llvm::AArch64II::MO_NC, llvm::AArch64II::MO_PAGE, llvm::AArch64II::MO_PAGEOFF, llvm::AArch64II::MO_PREL, llvm::AArch64II::MO_TLS, Sym, 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_HI12, llvm::AArch64MCExpr::VK_NC, llvm::MCSymbolRefExpr::VK_None, llvm::AArch64MCExpr::VK_PAGE, llvm::AArch64MCExpr::VK_PAGEOFF, llvm::AArch64MCExpr::VK_PREL, llvm::AArch64MCExpr::VK_TLSDESC, and llvm::AArch64MCExpr::VK_TPREL.

Referenced by LowerSymbolOperand().

◆ lowerSymbolOperandMachO()

MCOperand AArch64MCInstLower::lowerSymbolOperandMachO ( const MachineOperand MO,
MCSymbol Sym 
) const

The documentation for this class was generated from the following files: