LLVM  9.0.0svn
Functions | Variables
AArch64CallingConvention.cpp File Reference
#include "AArch64CallingConvention.h"
#include "AArch64.h"
#include "AArch64InstrInfo.h"
#include "AArch64Subtarget.h"
#include "llvm/CodeGen/CallingConvLower.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/IR/CallingConv.h"
#include "AArch64GenCallingConv.inc"
Include dependency graph for AArch64CallingConvention.cpp:

Go to the source code of this file.

Functions

static bool finishStackBlock (SmallVectorImpl< CCValAssign > &PendingMembers, MVT LocVT, ISD::ArgFlagsTy &ArgFlags, CCState &State, unsigned SlotAlign)
 
static bool CC_AArch64_Custom_Stack_Block (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 The Darwin variadic PCS places anonymous arguments in 8-byte stack slots. More...
 
static bool CC_AArch64_Custom_Block (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 Given an [N x Ty] block, it should be passed in a consecutive sequence of registers. More...
 

Variables

static const MCPhysReg XRegList []
 
static const MCPhysReg HRegList []
 
static const MCPhysReg SRegList []
 
static const MCPhysReg DRegList []
 
static const MCPhysReg QRegList []
 

Function Documentation

◆ CC_AArch64_Custom_Block()

static bool CC_AArch64_Custom_Block ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)
static

◆ CC_AArch64_Custom_Stack_Block()

static bool CC_AArch64_Custom_Stack_Block ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)
static

The Darwin variadic PCS places anonymous arguments in 8-byte stack slots.

An [N x Ty] type must still be contiguous in memory though.

Definition at line 60 of file AArch64CallingConvention.cpp.

References finishStackBlock(), llvm::CCValAssign::getPending(), llvm::CCState::getPendingLocs(), llvm::ISD::ArgFlagsTy::isInConsecutiveRegsLast(), and llvm::SmallVectorTemplateBase< T >::push_back().

◆ finishStackBlock()

static bool finishStackBlock ( SmallVectorImpl< CCValAssign > &  PendingMembers,
MVT  LocVT,
ISD::ArgFlagsTy ArgFlags,
CCState State,
unsigned  SlotAlign 
)
static

Variable Documentation

◆ DRegList

const MCPhysReg DRegList[]
static
Initial value:
= {AArch64::D0, AArch64::D1, AArch64::D2,
AArch64::D3, AArch64::D4, AArch64::D5,
AArch64::D6, AArch64::D7}

Definition at line 32 of file AArch64CallingConvention.cpp.

Referenced by CC_AArch64_Custom_Block().

◆ HRegList

const MCPhysReg HRegList[]
static
Initial value:
= {AArch64::H0, AArch64::H1, AArch64::H2,
AArch64::H3, AArch64::H4, AArch64::H5,
AArch64::H6, AArch64::H7}

Definition at line 26 of file AArch64CallingConvention.cpp.

Referenced by CC_AArch64_Custom_Block().

◆ QRegList

const MCPhysReg QRegList[]
static
Initial value:
= {AArch64::Q0, AArch64::Q1, AArch64::Q2,
AArch64::Q3, AArch64::Q4, AArch64::Q5,
AArch64::Q6, AArch64::Q7}

Definition at line 35 of file AArch64CallingConvention.cpp.

Referenced by CC_AArch64_Custom_Block().

◆ SRegList

const MCPhysReg SRegList[]
static
Initial value:
= {AArch64::S0, AArch64::S1, AArch64::S2,
AArch64::S3, AArch64::S4, AArch64::S5,
AArch64::S6, AArch64::S7}

Definition at line 29 of file AArch64CallingConvention.cpp.

Referenced by CC_AArch64_Custom_Block().

◆ XRegList

const MCPhysReg XRegList[]
static
Initial value:
= {AArch64::X0, AArch64::X1, AArch64::X2,
AArch64::X3, AArch64::X4, AArch64::X5,
AArch64::X6, AArch64::X7}

Definition at line 23 of file AArch64CallingConvention.cpp.

Referenced by CC_AArch64_Custom_Block().