LLVM: lib/Target/CSKY/CSKYCallingConv.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14#ifndef LLVM_LIB_TARGET_CSKY_CSKYCALLINGCONV_H
15#define LLVM_LIB_TARGET_CSKY_CSKYCALLINGCONV_H
16
22
23namespace llvm {
24
28
29 static const MCPhysReg ArgGPRs[] = {CSKY::R0, CSKY::R1, CSKY::R2, CSKY::R3};
31 LocVT = MVT::i32;
32 if () {
34 State.addLoc(
36 return true;
37 }
38 if (!State.AllocateReg(ArgGPRs))
39 State.AllocateStack(4, Align(4));
41 return true;
42}
43
47
50 LocVT = MVT::i32;
52 return false;
53
54 if (!State.AllocateReg(ArgGPRs))
55 return false;
56
58 return true;
59}
60
61}
62
63#endif
const MCPhysReg ArgGPRs[]
CCState - This class holds information needed while lowering arguments and return values.
static CCValAssign getReg(unsigned ValNo, MVT ValVT, MCRegister Reg, MVT LocVT, LocInfo HTP, bool IsCustom=false)
static CCValAssign getMem(unsigned ValNo, MVT ValVT, int64_t Offset, MVT LocVT, LocInfo HTP, bool IsCustom=false)
Wrapper class representing virtual and physical registers.
StackOffset holds a fixed and a scalable offset in bytes.
This is an optimization pass for GlobalISel generic memory operations.
static bool Ret_CSKY_ABIV2_SOFT_64(unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
Definition CSKYCallingConv.h:44
uint16_t MCPhysReg
An unsigned integer type large enough to represent all physical registers, but not necessarily virtua...
static bool CC_CSKY_ABIV2_SOFT_64(unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
Definition CSKYCallingConv.h:25
This struct is a compact representation of a valid (non-zero power of two) alignment.