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 "llvm/IR/CallingConv.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 134 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 115 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 44 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 32 of file AArch64CallingConvention.cpp.
Referenced by CC_AArch64_Custom_Block().
Definition at line 26 of file AArch64CallingConvention.cpp.
Referenced by CC_AArch64_Custom_Block().
Definition at line 41 of file AArch64CallingConvention.cpp.
Referenced by CC_AArch64_Custom_Block(), and finishStackBlock().
Definition at line 35 of file AArch64CallingConvention.cpp.
Referenced by CC_AArch64_Custom_Block().
Definition at line 29 of file AArch64CallingConvention.cpp.
Referenced by CC_AArch64_Custom_Block().
Definition at line 23 of file AArch64CallingConvention.cpp.
Referenced by CC_AArch64_Custom_Block().
Definition at line 38 of file AArch64CallingConvention.cpp.
Referenced by CC_AArch64_Custom_Block(), and finishStackBlock().