LLVM 20.0.0git
|
Public Member Functions | |
M68kOutgoingArgHandler (MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI, MachineInstrBuilder MIB) | |
void | assignValueToReg (Register ValVReg, Register PhysReg, const CCValAssign &VA) override |
The specified value has been assigned to a physical register, handle the appropriate COPY (either to or from) and mark any relevant uses/defines as needed. | |
void | assignValueToAddress (Register ValVReg, Register Addr, LLT MemTy, const MachinePointerInfo &MPO, const CCValAssign &VA) override |
The specified value has been assigned to a stack location. | |
Register | getStackAddress (uint64_t Size, int64_t Offset, MachinePointerInfo &MPO, ISD::ArgFlagsTy Flags) override |
Materialize a VReg containing the address of the specified stack-based object. | |
Public Member Functions inherited from llvm::CallLowering::OutgoingValueHandler | |
OutgoingValueHandler (MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI) | |
Public Member Functions inherited from llvm::CallLowering::ValueHandler | |
ValueHandler (bool IsIncoming, MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI) | |
virtual | ~ValueHandler ()=default |
bool | isIncomingArgumentHandler () const |
Returns true if the handler is dealing with incoming arguments, i.e. | |
virtual Register | getStackAddress (uint64_t MemSize, int64_t Offset, MachinePointerInfo &MPO, ISD::ArgFlagsTy Flags)=0 |
Materialize a VReg containing the address of the specified stack-based object. | |
virtual LLT | getStackValueStoreType (const DataLayout &DL, const CCValAssign &VA, ISD::ArgFlagsTy Flags) const |
Return the in-memory size to write for the argument at VA . | |
virtual void | assignValueToReg (Register ValVReg, Register PhysReg, const CCValAssign &VA)=0 |
The specified value has been assigned to a physical register, handle the appropriate COPY (either to or from) and mark any relevant uses/defines as needed. | |
virtual void | assignValueToAddress (Register ValVReg, Register Addr, LLT MemTy, const MachinePointerInfo &MPO, const CCValAssign &VA)=0 |
The specified value has been assigned to a stack location. | |
virtual void | assignValueToAddress (const ArgInfo &Arg, unsigned ValRegIndex, Register Addr, LLT MemTy, const MachinePointerInfo &MPO, const CCValAssign &VA) |
An overload which takes an ArgInfo if additional information about the arg is needed. | |
virtual unsigned | assignCustomValue (ArgInfo &Arg, ArrayRef< CCValAssign > VAs, std::function< void()> *Thunk=nullptr) |
Handle custom values, which may be passed into one or more of VAs . | |
void | copyArgumentMemory (const ArgInfo &Arg, Register DstPtr, Register SrcPtr, const MachinePointerInfo &DstPtrInfo, Align DstAlign, const MachinePointerInfo &SrcPtrInfo, Align SrcAlign, uint64_t MemSize, CCValAssign &VA) const |
Do a memory copy of MemSize bytes from SrcPtr to DstPtr . | |
Register | extendRegister (Register ValReg, const CCValAssign &VA, unsigned MaxSizeBits=0) |
Extend a register to the location type given in VA, capped at extending to at most MaxSize bits. | |
Public Attributes | |
MachineInstrBuilder | MIB |
const DataLayout & | DL |
const M68kSubtarget & | STI |
Public Attributes inherited from llvm::CallLowering::ValueHandler | |
MachineIRBuilder & | MIRBuilder |
MachineRegisterInfo & | MRI |
const bool | IsIncomingArgumentHandler |
Definition at line 52 of file M68kCallLowering.cpp.
|
inline |
Definition at line 53 of file M68kCallLowering.cpp.
|
inlineoverridevirtual |
The specified value has been assigned to a stack location.
Load or store it there, with appropriate extension if necessary.
Implements llvm::CallLowering::ValueHandler.
Definition at line 66 of file M68kCallLowering.cpp.
References Addr, llvm::MachineFunction::getMachineMemOperand(), llvm::inferAlignFromPtrInfo(), and llvm::MachineMemOperand::MOStore.
|
inlineoverridevirtual |
The specified value has been assigned to a physical register, handle the appropriate COPY (either to or from) and mark any relevant uses/defines as needed.
Implements llvm::CallLowering::ValueHandler.
Definition at line 59 of file M68kCallLowering.cpp.
References llvm::RegState::Implicit.
|
inlineoverridevirtual |
Materialize a VReg containing the address of the specified stack-based object.
This is either based on a FrameIndex or direct SP manipulation, depending on the context. MPO
should be initialized to an appropriate description of the address created.
Implements llvm::CallLowering::ValueHandler.
Definition at line 77 of file M68kCallLowering.cpp.
References DL, llvm::MachinePointerInfo::getStack(), llvm::Offset, llvm::LLT::pointer(), llvm::LLT::scalar(), and SPReg.
const DataLayout& M68kOutgoingArgHandler::DL |
Definition at line 90 of file M68kCallLowering.cpp.
MachineInstrBuilder M68kOutgoingArgHandler::MIB |
Definition at line 89 of file M68kCallLowering.cpp.
const M68kSubtarget& M68kOutgoingArgHandler::STI |
Definition at line 91 of file M68kCallLowering.cpp.