Coverage Report

Created: 2024-01-17 10:31

/src/build/lib/Target/Lanai/LanaiGenCallingConv.inc
Line
Count
Source (jump to first uncovered line)
1
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2
|*                                                                            *|
3
|* Calling Convention Implementation Fragment                                 *|
4
|*                                                                            *|
5
|* Automatically generated file, do not edit!                                 *|
6
|*                                                                            *|
7
\*===----------------------------------------------------------------------===*/
8
9
#ifndef GET_CC_REGISTER_LISTS
10
11
static bool CC_Lanai32(unsigned ValNo, MVT ValVT,
12
                       MVT LocVT, CCValAssign::LocInfo LocInfo,
13
                       ISD::ArgFlagsTy ArgFlags, CCState &State);
14
static bool CC_Lanai32_Fast(unsigned ValNo, MVT ValVT,
15
                            MVT LocVT, CCValAssign::LocInfo LocInfo,
16
                            ISD::ArgFlagsTy ArgFlags, CCState &State);
17
static bool RetCC_Lanai32(unsigned ValNo, MVT ValVT,
18
                          MVT LocVT, CCValAssign::LocInfo LocInfo,
19
                          ISD::ArgFlagsTy ArgFlags, CCState &State);
20
21
22
static bool CC_Lanai32(unsigned ValNo, MVT ValVT,
23
                       MVT LocVT, CCValAssign::LocInfo LocInfo,
24
0
                       ISD::ArgFlagsTy ArgFlags, CCState &State) {
25
26
0
  if (LocVT == MVT::i8 ||
27
0
      LocVT == MVT::i16) {
28
0
    LocVT = MVT::i32;
29
0
    if (ArgFlags.isSExt())
30
0
      LocInfo = CCValAssign::SExt;
31
0
    else if (ArgFlags.isZExt())
32
0
      LocInfo = CCValAssign::ZExt;
33
0
    else
34
0
      LocInfo = CCValAssign::AExt;
35
0
  }
36
37
0
  if (!State.isVarArg()) {
38
0
    if (ArgFlags.isInReg()) {
39
0
      if (LocVT == MVT::i32) {
40
0
        static const MCPhysReg RegList1[] = {
41
0
          Lanai::R6, Lanai::R7, Lanai::R18, Lanai::R19
42
0
        };
43
0
        if (unsigned Reg = State.AllocateReg(RegList1)) {
44
0
          State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo));
45
0
          return false;
46
0
        }
47
0
      }
48
0
    }
49
0
  }
50
51
0
  int64_t Offset2 = State.AllocateStack(4, Align(4));
52
0
  State.addLoc(CCValAssign::getMem(ValNo, ValVT, Offset2, LocVT, LocInfo));
53
0
  return false;
54
55
0
  return true; // CC didn't match.
56
0
}
57
58
59
static bool CC_Lanai32_Fast(unsigned ValNo, MVT ValVT,
60
                            MVT LocVT, CCValAssign::LocInfo LocInfo,
61
0
                            ISD::ArgFlagsTy ArgFlags, CCState &State) {
62
63
0
  if (LocVT == MVT::i8 ||
64
0
      LocVT == MVT::i16) {
65
0
    LocVT = MVT::i32;
66
0
    if (ArgFlags.isSExt())
67
0
      LocInfo = CCValAssign::SExt;
68
0
    else if (ArgFlags.isZExt())
69
0
      LocInfo = CCValAssign::ZExt;
70
0
    else
71
0
      LocInfo = CCValAssign::AExt;
72
0
  }
73
74
0
  if (!State.isVarArg()) {
75
0
    if (LocVT == MVT::i32) {
76
0
      static const MCPhysReg RegList1[] = {
77
0
        Lanai::R6, Lanai::R7, Lanai::R18, Lanai::R19
78
0
      };
79
0
      if (unsigned Reg = State.AllocateReg(RegList1)) {
80
0
        State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo));
81
0
        return false;
82
0
      }
83
0
    }
84
0
  }
85
86
0
  int64_t Offset2 = State.AllocateStack(4, Align(4));
87
0
  State.addLoc(CCValAssign::getMem(ValNo, ValVT, Offset2, LocVT, LocInfo));
88
0
  return false;
89
90
0
  return true; // CC didn't match.
91
0
}
92
93
94
static bool RetCC_Lanai32(unsigned ValNo, MVT ValVT,
95
                          MVT LocVT, CCValAssign::LocInfo LocInfo,
96
0
                          ISD::ArgFlagsTy ArgFlags, CCState &State) {
97
98
0
  if (LocVT == MVT::i32) {
99
0
    static const MCPhysReg RegList1[] = {
100
0
      Lanai::RV, Lanai::R9
101
0
    };
102
0
    if (unsigned Reg = State.AllocateReg(RegList1)) {
103
0
      State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo));
104
0
      return false;
105
0
    }
106
0
  }
107
108
0
  return true; // CC didn't match.
109
0
}
110
111
#else
112
113
const MCRegister CC_Lanai32_ArgRegs[] = { Lanai::R18, Lanai::R19, Lanai::R6, Lanai::R7 };
114
const MCRegister CC_Lanai32_Fast_ArgRegs[] = { Lanai::R18, Lanai::R19, Lanai::R6, Lanai::R7 };
115
const MCRegister RetCC_Lanai32_ArgRegs[] = { Lanai::R9, Lanai::RV };
116
117
#endif // CC_REGISTER_LIST