LLVM 20.0.0git
|
#include "AArch64CallingConvention.h"
#include "AArch64.h"
#include "AArch64InstrInfo.h"
#include "AArch64Subtarget.h"
#include "llvm/CodeGen/CallingConvLower.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "AArch64GenCallingConv.inc"
Go to the source code of this file.
Functions | |
static bool | finishStackBlock (SmallVectorImpl< CCValAssign > &PendingMembers, MVT LocVT, ISD::ArgFlagsTy &ArgFlags, CCState &State, Align 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. | |
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. | |
Variables | |
static const MCPhysReg | XRegList [] |
static const MCPhysReg | HRegList [] |
static const MCPhysReg | SRegList [] |
static const MCPhysReg | DRegList [] |
static const MCPhysReg | QRegList [] |
static const MCPhysReg | ZRegList [] |
static const MCPhysReg | PRegList [] |
|
static |
Given an [N x Ty] block, it should be passed in a consecutive sequence of registers.
If no such sequence is available, mark the rest of the registers of that type as used and place the argument on the stack.
Definition at line 133 of file AArch64CallingConvention.cpp.
References llvm::CCState::addLoc(), llvm::CCValAssign::AExtUpper, llvm::alignTo(), llvm::CCState::AllocateReg(), llvm::CCState::AllocateRegBlock(), assert(), DRegList, finishStackBlock(), llvm::MachineFunction::getDataLayout(), llvm::CCState::getMachineFunction(), llvm::ISD::ArgFlagsTy::getNonZeroMemAlign(), llvm::CCValAssign::getPending(), llvm::CCState::getPendingLocs(), llvm::CCValAssign::getReg(), llvm::DataLayout::getStackAlignment(), llvm::MachineFunction::getSubtarget(), HRegList, Info, llvm::MVT::is128BitVector(), llvm::MVT::is32BitVector(), llvm::MVT::is64BitVector(), llvm::ISD::ArgFlagsTy::isInConsecutiveRegsLast(), llvm::MVT::isScalableVector(), llvm::AArch64Subtarget::isTargetDarwin(), llvm::AArch64Subtarget::isTargetILP32(), llvm::AArch64Subtarget::isTargetMachO(), PRegList, llvm::SmallVectorTemplateBase< T, bool >::push_back(), QRegList, llvm::MVT::SimpleTy, llvm::SmallVectorBase< Size_T >::size(), SRegList, XRegList, llvm::CCValAssign::ZExt, and ZRegList.
|
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 114 of file AArch64CallingConvention.cpp.
References finishStackBlock(), llvm::CCValAssign::getPending(), llvm::CCState::getPendingLocs(), llvm::ISD::ArgFlagsTy::isInConsecutiveRegsLast(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
static |
Definition at line 43 of file AArch64CallingConvention.cpp.
References llvm::CCState::addLoc(), llvm::CCState::AllocateReg(), llvm::CCState::AllocateStack(), llvm::AArch64TargetLowering::CCAssignFnForCall(), llvm::SmallVectorImpl< T >::clear(), llvm::CCState::DeallocateReg(), llvm::CCValAssign::Full, llvm::CCState::getCallingConv(), llvm::CCState::getMachineFunction(), llvm::MVT::getSizeInBits(), llvm::MachineFunction::getSubtarget(), llvm::AArch64Subtarget::getTargetLowering(), I, llvm::CCState::isAllocated(), llvm::MVT::isScalableVector(), llvm_unreachable, PRegList, llvm::ISD::ArgFlagsTy::setInConsecutiveRegs(), llvm::ISD::ArgFlagsTy::setInConsecutiveRegsLast(), Size, and ZRegList.
Referenced by CC_AArch64_Custom_Block(), and CC_AArch64_Custom_Stack_Block().
Definition at line 31 of file AArch64CallingConvention.cpp.
Referenced by CC_AArch64_Custom_Block().
Definition at line 25 of file AArch64CallingConvention.cpp.
Referenced by CC_AArch64_Custom_Block().
Definition at line 40 of file AArch64CallingConvention.cpp.
Referenced by CC_AArch64_Custom_Block(), and finishStackBlock().
Definition at line 34 of file AArch64CallingConvention.cpp.
Referenced by CC_AArch64_Custom_Block().
Definition at line 28 of file AArch64CallingConvention.cpp.
Referenced by CC_AArch64_Custom_Block().
Definition at line 22 of file AArch64CallingConvention.cpp.
Referenced by CC_AArch64_Custom_Block().
Definition at line 37 of file AArch64CallingConvention.cpp.
Referenced by CC_AArch64_Custom_Block(), and finishStackBlock().