LLVM 22.0.0git
llvm::MipsABIInfo Class Reference

#include "Target/Mips/MCTargetDesc/MipsABIInfo.h"

Public Types

enum class  ABI { Unknown , O32 , N32 , N64 }

Public Member Functions

 MipsABIInfo (ABI ThisABI)
bool IsKnown () const
bool IsO32 () const
bool IsN32 () const
bool IsN64 () const
ABI GetEnumValue () const
ArrayRef< MCPhysRegGetByValArgRegs () const
 The registers to use for byval arguments.
ArrayRef< MCPhysReggetVarArgRegs (bool isGP64bit) const
 The registers to use for the variable argument list.
unsigned GetCalleeAllocdArgSizeInBytes (CallingConv::ID CC) const
 Obtain the size of the area allocated by the callee for arguments.
bool operator< (const MipsABIInfo Other) const
 Ordering of ABI's MipsGenSubtargetInfo.inc will use this to resolve conflicts when given multiple ABI options.
unsigned GetStackPtr () const
unsigned GetFramePtr () const
unsigned GetBasePtr () const
unsigned GetGlobalPtr () const
unsigned GetNullPtr () const
unsigned GetZeroReg () const
unsigned GetPtrAdduOp () const
unsigned GetPtrAddiuOp () const
unsigned GetPtrSubuOp () const
unsigned GetPtrAndOp () const
unsigned GetGPRMoveOp () const
bool ArePtrs64bit () const
bool AreGprs64bit () const
unsigned GetEhDataReg (unsigned I) const

Static Public Member Functions

static MipsABIInfo Unknown ()
static MipsABIInfo O32 ()
static MipsABIInfo N32 ()
static MipsABIInfo N64 ()
static MipsABIInfo computeTargetABI (const Triple &TT, StringRef ABIName)

Protected Attributes

ABI ThisABI

Detailed Description

Definition at line 22 of file MipsABIInfo.h.

Member Enumeration Documentation

◆ ABI

enum class llvm::MipsABIInfo::ABI
strong
Enumerator
Unknown 
O32 
N32 
N64 

Definition at line 24 of file MipsABIInfo.h.

Constructor & Destructor Documentation

◆ MipsABIInfo()

llvm::MipsABIInfo::MipsABIInfo ( ABI ThisABI)
inline

Definition at line 30 of file MipsABIInfo.h.

References ThisABI.

Referenced by computeTargetABI(), N32(), N64(), O32(), operator<(), and Unknown().

Member Function Documentation

◆ AreGprs64bit()

bool llvm::MipsABIInfo::AreGprs64bit ( ) const
inline

Definition at line 73 of file MipsABIInfo.h.

References IsN32(), and IsN64().

Referenced by GetZeroReg().

◆ ArePtrs64bit()

bool llvm::MipsABIInfo::ArePtrs64bit ( ) const
inline

◆ computeTargetABI()

MipsABIInfo MipsABIInfo::computeTargetABI ( const Triple & TT,
StringRef ABIName )
static

◆ GetBasePtr()

unsigned MipsABIInfo::GetBasePtr ( ) const

Definition at line 84 of file MipsABIInfo.cpp.

References ArePtrs64bit().

◆ GetByValArgRegs()

ArrayRef< MCPhysReg > MipsABIInfo::GetByValArgRegs ( ) const

The registers to use for byval arguments.

Definition at line 32 of file MipsABIInfo.cpp.

References llvm::ArrayRef(), IsN32(), IsN64(), IsO32(), and llvm_unreachable.

◆ GetCalleeAllocdArgSizeInBytes()

unsigned MipsABIInfo::GetCalleeAllocdArgSizeInBytes ( CallingConv::ID CC) const

Obtain the size of the area allocated by the callee for arguments.

CallingConv::FastCall affects the value for O32.

Definition at line 52 of file MipsABIInfo.cpp.

References llvm::CallingConv::Fast, IsN32(), IsN64(), IsO32(), and llvm_unreachable.

◆ GetEhDataReg()

unsigned MipsABIInfo::GetEhDataReg ( unsigned I) const

Definition at line 120 of file MipsABIInfo.cpp.

References I, and IsN64().

◆ GetEnumValue()

ABI llvm::MipsABIInfo::GetEnumValue ( ) const
inline

Definition at line 42 of file MipsABIInfo.h.

References ThisABI.

◆ GetFramePtr()

unsigned MipsABIInfo::GetFramePtr ( ) const

Definition at line 80 of file MipsABIInfo.cpp.

References ArePtrs64bit().

◆ GetGlobalPtr()

unsigned MipsABIInfo::GetGlobalPtr ( ) const

Definition at line 88 of file MipsABIInfo.cpp.

References ArePtrs64bit().

◆ GetGPRMoveOp()

unsigned MipsABIInfo::GetGPRMoveOp ( ) const

Definition at line 116 of file MipsABIInfo.cpp.

References ArePtrs64bit().

◆ GetNullPtr()

unsigned MipsABIInfo::GetNullPtr ( ) const

Definition at line 92 of file MipsABIInfo.cpp.

References ArePtrs64bit().

◆ GetPtrAddiuOp()

unsigned MipsABIInfo::GetPtrAddiuOp ( ) const

Definition at line 104 of file MipsABIInfo.cpp.

References ArePtrs64bit().

◆ GetPtrAdduOp()

unsigned MipsABIInfo::GetPtrAdduOp ( ) const

Definition at line 100 of file MipsABIInfo.cpp.

References ArePtrs64bit().

◆ GetPtrAndOp()

unsigned MipsABIInfo::GetPtrAndOp ( ) const

Definition at line 112 of file MipsABIInfo.cpp.

References ArePtrs64bit().

◆ GetPtrSubuOp()

unsigned MipsABIInfo::GetPtrSubuOp ( ) const

Definition at line 108 of file MipsABIInfo.cpp.

References ArePtrs64bit().

◆ GetStackPtr()

unsigned MipsABIInfo::GetStackPtr ( ) const

Definition at line 76 of file MipsABIInfo.cpp.

References ArePtrs64bit().

◆ getVarArgRegs()

ArrayRef< MCPhysReg > MipsABIInfo::getVarArgRegs ( bool isGP64bit) const

The registers to use for the variable argument list.

Definition at line 40 of file MipsABIInfo.cpp.

References llvm::ArrayRef(), IsN32(), IsN64(), IsO32(), and llvm_unreachable.

◆ GetZeroReg()

unsigned MipsABIInfo::GetZeroReg ( ) const

Definition at line 96 of file MipsABIInfo.cpp.

References AreGprs64bit().

◆ IsKnown()

bool llvm::MipsABIInfo::IsKnown ( ) const
inline

Definition at line 38 of file MipsABIInfo.h.

References ThisABI, and Unknown.

◆ IsN32()

◆ IsN64()

◆ IsO32()

bool llvm::MipsABIInfo::IsO32 ( ) const
inline

◆ N32()

MipsABIInfo llvm::MipsABIInfo::N32 ( )
inlinestatic

Definition at line 34 of file MipsABIInfo.h.

References MipsABIInfo(), and N32.

Referenced by computeTargetABI().

◆ N64()

MipsABIInfo llvm::MipsABIInfo::N64 ( )
inlinestatic

Definition at line 35 of file MipsABIInfo.h.

References MipsABIInfo(), and N64.

Referenced by computeTargetABI(), and llvm::MipsTargetELFStreamer::MipsTargetELFStreamer().

◆ O32()

MipsABIInfo llvm::MipsABIInfo::O32 ( )
inlinestatic

Definition at line 33 of file MipsABIInfo.h.

References MipsABIInfo(), and O32.

Referenced by computeTargetABI(), and llvm::MipsTargetELFStreamer::MipsTargetELFStreamer().

◆ operator<()

bool llvm::MipsABIInfo::operator< ( const MipsABIInfo Other) const
inline

Ordering of ABI's MipsGenSubtargetInfo.inc will use this to resolve conflicts when given multiple ABI options.

Definition at line 57 of file MipsABIInfo.h.

References MipsABIInfo(), llvm::Other, and ThisABI.

◆ Unknown()

MipsABIInfo llvm::MipsABIInfo::Unknown ( )
inlinestatic

Definition at line 32 of file MipsABIInfo.h.

References MipsABIInfo(), and Unknown.

Member Data Documentation

◆ ThisABI

ABI llvm::MipsABIInfo::ThisABI
protected

Definition at line 27 of file MipsABIInfo.h.

Referenced by GetEnumValue(), IsKnown(), IsN32(), IsN64(), IsO32(), MipsABIInfo(), and operator<().


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