Coverage Report

Created: 2024-01-17 10:31

/src/build/lib/Target/MSP430/MSP430GenCallingConv.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_MSP430_AssignStack(unsigned ValNo, MVT ValVT,
12
                                  MVT LocVT, CCValAssign::LocInfo LocInfo,
13
                                  ISD::ArgFlagsTy ArgFlags, CCState &State);
14
static bool RetCC_MSP430(unsigned ValNo, MVT ValVT,
15
                         MVT LocVT, CCValAssign::LocInfo LocInfo,
16
                         ISD::ArgFlagsTy ArgFlags, CCState &State);
17
18
19
static bool CC_MSP430_AssignStack(unsigned ValNo, MVT ValVT,
20
                                  MVT LocVT, CCValAssign::LocInfo LocInfo,
21
0
                                  ISD::ArgFlagsTy ArgFlags, CCState &State) {
22
23
0
  if (ArgFlags.isByVal()) {
24
0
    State.HandleByVal(ValNo, ValVT, LocVT, LocInfo, 2, Align(2), ArgFlags);
25
0
    return false;
26
0
  }
27
28
0
  if (LocVT == MVT::i8) {
29
0
    LocVT = MVT::i16;
30
0
    if (ArgFlags.isSExt())
31
0
      LocInfo = CCValAssign::SExt;
32
0
    else if (ArgFlags.isZExt())
33
0
      LocInfo = CCValAssign::ZExt;
34
0
    else
35
0
      LocInfo = CCValAssign::AExt;
36
0
  }
37
38
0
  if (LocVT == MVT::i16) {
39
0
    int64_t Offset1 = State.AllocateStack(2, Align(2));
40
0
    State.addLoc(CCValAssign::getMem(ValNo, ValVT, Offset1, LocVT, LocInfo));
41
0
    return false;
42
0
  }
43
44
0
  return true; // CC didn't match.
45
0
}
46
47
48
static bool RetCC_MSP430(unsigned ValNo, MVT ValVT,
49
                         MVT LocVT, CCValAssign::LocInfo LocInfo,
50
0
                         ISD::ArgFlagsTy ArgFlags, CCState &State) {
51
52
0
  if (LocVT == MVT::i8) {
53
0
    static const MCPhysReg RegList1[] = {
54
0
      MSP430::R12B, MSP430::R13B, MSP430::R14B, MSP430::R15B
55
0
    };
56
0
    if (unsigned Reg = State.AllocateReg(RegList1)) {
57
0
      State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo));
58
0
      return false;
59
0
    }
60
0
  }
61
62
0
  if (LocVT == MVT::i16) {
63
0
    static const MCPhysReg RegList2[] = {
64
0
      MSP430::R12, MSP430::R13, MSP430::R14, MSP430::R15
65
0
    };
66
0
    if (unsigned Reg = State.AllocateReg(RegList2)) {
67
0
      State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo));
68
0
      return false;
69
0
    }
70
0
  }
71
72
0
  return true; // CC didn't match.
73
0
}
74
75
#else
76
77
const MCRegister CC_MSP430_AssignStack_ArgRegs[] = { 0 };
78
const MCRegister RetCC_MSP430_ArgRegs[] = { MSP430::R12, MSP430::R12B, MSP430::R13, MSP430::R13B, MSP430::R14, MSP430::R14B, MSP430::R15, MSP430::R15B };
79
80
#endif // CC_REGISTER_LIST