LLVM  14.0.0git
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
llvm::MipsABIInfo Class Reference

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

Collaboration diagram for llvm::MipsABIInfo:
Collaboration graph
[legend]

Public Types

enum  ABI { ABI::Unknown, ABI::O32, ABI::N32, ABI::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. More...
 
ArrayRef< MCPhysRegGetVarArgRegs () const
 The registers to use for the variable argument list. More...
 
unsigned GetCalleeAllocdArgSizeInBytes (CallingConv::ID CC) const
 Obtain the size of the area allocated by the callee for arguments. More...
 
bool operator< (const MipsABIInfo Other) const
 Ordering of ABI's MipsGenSubtargetInfo.inc will use this to resolve conflicts when given multiple ABI options. More...
 
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 CPU, const MCTargetOptions &Options)
 

Protected Attributes

ABI ThisABI
 

Detailed Description

Definition at line 22 of file MipsABIInfo.h.

Member Enumeration Documentation

◆ ABI

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.

Referenced by N32(), N64(), O32(), and Unknown().

Member Function Documentation

◆ AreGprs64bit()

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

Definition at line 74 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  CPU,
const MCTargetOptions Options 
)
static

◆ GetBasePtr()

unsigned MipsABIInfo::GetBasePtr ( ) const

Definition at line 81 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 IsN32(), IsN64(), IsO32(), llvm_unreachable, and llvm::makeArrayRef().

Referenced by llvm::MipsTargetLowering::HandleByVal().

◆ 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 48 of file MipsABIInfo.cpp.

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

◆ GetEhDataReg()

unsigned MipsABIInfo::GetEhDataReg ( unsigned  I) const

Definition at line 117 of file MipsABIInfo.cpp.

References I, and IsN64().

◆ GetEnumValue()

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

Definition at line 43 of file MipsABIInfo.h.

References ThisABI.

◆ GetFramePtr()

unsigned MipsABIInfo::GetFramePtr ( ) const

Definition at line 77 of file MipsABIInfo.cpp.

References ArePtrs64bit().

◆ GetGlobalPtr()

unsigned MipsABIInfo::GetGlobalPtr ( ) const

Definition at line 85 of file MipsABIInfo.cpp.

References ArePtrs64bit().

◆ GetGPRMoveOp()

unsigned MipsABIInfo::GetGPRMoveOp ( ) const

Definition at line 113 of file MipsABIInfo.cpp.

References ArePtrs64bit(), and llvm::ISD::OR.

◆ GetNullPtr()

unsigned MipsABIInfo::GetNullPtr ( ) const

Definition at line 89 of file MipsABIInfo.cpp.

References ArePtrs64bit().

◆ GetPtrAddiuOp()

unsigned MipsABIInfo::GetPtrAddiuOp ( ) const

Definition at line 101 of file MipsABIInfo.cpp.

References ArePtrs64bit().

◆ GetPtrAdduOp()

unsigned MipsABIInfo::GetPtrAdduOp ( ) const

Definition at line 97 of file MipsABIInfo.cpp.

References ArePtrs64bit().

◆ GetPtrAndOp()

unsigned MipsABIInfo::GetPtrAndOp ( ) const

Definition at line 109 of file MipsABIInfo.cpp.

References llvm::ISD::AND, and ArePtrs64bit().

◆ GetPtrSubuOp()

unsigned MipsABIInfo::GetPtrSubuOp ( ) const

Definition at line 105 of file MipsABIInfo.cpp.

References ArePtrs64bit().

◆ GetStackPtr()

unsigned MipsABIInfo::GetStackPtr ( ) const

Definition at line 73 of file MipsABIInfo.cpp.

References ArePtrs64bit().

◆ GetVarArgRegs()

ArrayRef< MCPhysReg > MipsABIInfo::GetVarArgRegs ( ) const

The registers to use for the variable argument list.

Definition at line 40 of file MipsABIInfo.cpp.

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

◆ GetZeroReg()

unsigned MipsABIInfo::GetZeroReg ( ) const

Definition at line 93 of file MipsABIInfo.cpp.

References AreGprs64bit().

Referenced by llvm::MipsInstrInfo::getEquivalentCompactForm().

◆ IsKnown()

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

Definition at line 39 of file MipsABIInfo.h.

References ThisABI, and Unknown.

◆ IsN32()

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

◆ IsN64()

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

◆ IsO32()

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

◆ N32()

static MipsABIInfo llvm::MipsABIInfo::N32 ( )
inlinestatic

Definition at line 34 of file MipsABIInfo.h.

References MipsABIInfo(), and N32.

Referenced by computeTargetABI().

◆ N64()

static 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()

static 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 58 of file MipsABIInfo.h.

References Other, and ThisABI.

◆ Unknown()

static 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(), and operator<().


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