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

#include <MipsABIInfo.h>

Collaboration diagram for llvm::MipsABIInfo:
[legend]

Public Types

enum  ABI {
  ABI::Unknown, ABI::O32, ABI::N32, ABI::N64,
  ABI::EABI
}
 

Public Member Functions

 MipsABIInfo (ABI ThisABI)
 
bool IsKnown () const
 
bool IsO32 () const
 
bool IsN32 () const
 
bool IsN64 () const
 
bool IsEABI () const
 
ABI GetEnumValue () const
 
const ArrayRef< MCPhysRegGetByValArgRegs () const
 The registers to use for byval arguments. More...
 
const 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 GetNullPtr () const
 
unsigned GetPtrAdduOp () const
 
unsigned GetPtrAddiuOp () const
 
bool ArePtrs64bit () const
 
unsigned GetEhDataReg (unsigned I) const
 

Static Public Member Functions

static MipsABIInfo Unknown ()
 
static MipsABIInfo O32 ()
 
static MipsABIInfo N32 ()
 
static MipsABIInfo N64 ()
 
static MipsABIInfo EABI ()
 
static MipsABIInfo computeTargetABI (const Triple &TT, StringRef CPU, const MCTargetOptions &Options)
 

Protected Attributes

ABI ThisABI
 

Detailed Description

Definition at line 24 of file MipsABIInfo.h.

Member Enumeration Documentation

Enumerator
Unknown 
O32 
N32 
N64 
EABI 

Definition at line 26 of file MipsABIInfo.h.

Constructor & Destructor Documentation

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

Definition at line 32 of file MipsABIInfo.h.

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

Member Function Documentation

bool llvm::MipsABIInfo::ArePtrs64bit ( ) const
inline
MipsABIInfo MipsABIInfo::computeTargetABI ( const Triple TT,
StringRef  CPU,
const MCTargetOptions Options 
)
static
static MipsABIInfo llvm::MipsABIInfo::EABI ( )
inlinestatic

Definition at line 38 of file MipsABIInfo.h.

References EABI, and MipsABIInfo().

Referenced by computeTargetABI().

unsigned MipsABIInfo::GetBasePtr ( ) const

Definition at line 102 of file MipsABIInfo.cpp.

References ArePtrs64bit().

const ArrayRef< MCPhysReg > MipsABIInfo::GetByValArgRegs ( ) const

The registers to use for byval arguments.

Definition at line 26 of file MipsABIInfo.cpp.

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

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

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

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

unsigned MipsABIInfo::GetEhDataReg ( unsigned  I) const

Definition at line 118 of file MipsABIInfo.cpp.

References I, and IsN64().

Referenced by llvm::MipsSEFrameLowering::emitEpilogue(), and llvm::MipsSEFrameLowering::emitPrologue().

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

Definition at line 47 of file MipsABIInfo.h.

References ThisABI.

Referenced by operator<().

unsigned MipsABIInfo::GetFramePtr ( ) const
unsigned MipsABIInfo::GetNullPtr ( ) const
unsigned MipsABIInfo::GetPtrAddiuOp ( ) const
unsigned MipsABIInfo::GetPtrAdduOp ( ) const
unsigned MipsABIInfo::GetStackPtr ( ) const
const ArrayRef< MCPhysReg > MipsABIInfo::GetVarArgRegs ( ) const

The registers to use for the variable argument list.

Definition at line 34 of file MipsABIInfo.cpp.

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

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

Definition at line 42 of file MipsABIInfo.h.

References ThisABI, and Unknown.

bool llvm::MipsABIInfo::IsN32 ( ) const
inline
bool llvm::MipsABIInfo::IsN64 ( ) const
inline
bool llvm::MipsABIInfo::IsO32 ( ) const
inline
static MipsABIInfo llvm::MipsABIInfo::N32 ( )
inlinestatic

Definition at line 36 of file MipsABIInfo.h.

References MipsABIInfo(), and N32.

Referenced by computeTargetABI().

static MipsABIInfo llvm::MipsABIInfo::N64 ( )
inlinestatic

Definition at line 37 of file MipsABIInfo.h.

References MipsABIInfo(), and N64.

Referenced by computeTargetABI().

static MipsABIInfo llvm::MipsABIInfo::O32 ( )
inlinestatic

Definition at line 35 of file MipsABIInfo.h.

References MipsABIInfo(), and O32.

Referenced by computeTargetABI().

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

References GetEnumValue(), and ThisABI.

static MipsABIInfo llvm::MipsABIInfo::Unknown ( )
inlinestatic

Definition at line 34 of file MipsABIInfo.h.

References MipsABIInfo(), and Unknown.

Referenced by computeTargetABI().

Member Data Documentation

ABI llvm::MipsABIInfo::ThisABI
protected

Definition at line 29 of file MipsABIInfo.h.

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


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