LLVM: lib/Target/AArch64/AArch64CallingConvention.cpp File Reference (original) (raw)
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 [] |
◆ CC_AArch64_Custom_Block()
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 135 of file AArch64CallingConvention.cpp.
References llvm::CCValAssign::AExtUpper, llvm::alignTo(), assert(), llvm::SmallVectorImpl< T >::clear(), DRegList, llvm::ArrayRef< T >::empty(), finishStackBlock(), llvm::ISD::ArgFlagsTy::getNonZeroMemAlign(), llvm::CCValAssign::getPending(), llvm::CCValAssign::getReg(), 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, Reg, llvm::MVT::SimpleTy, llvm::SmallVectorTemplateCommon< T, typename >::size(), SRegList, XRegList, llvm::CCValAssign::ZExt, llvm::zip(), and ZRegList.
◆ CC_AArch64_Custom_Stack_Block()
◆ finishStackBlock()
Definition at line 43 of file AArch64CallingConvention.cpp.
References llvm::AArch64TargetLowering::CCAssignFnForCall(), llvm::SmallVectorImpl< T >::clear(), llvm::CCValAssign::Full, llvm::MVT::getSizeInBits(), llvm::AArch64Subtarget::getTargetLowering(), llvm::EVT::getTypeForEVT(), I, 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().