LLVM
15.0.0git
lib
Target
Lanai
MCTargetDesc
LanaiBaseInfo.h
Go to the documentation of this file.
1
//===-- LanaiBaseInfo.h - Top level definitions for Lanai MC ----*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// This file contains small standalone helper functions and enum definitions for
10
// the Lanai target useful for the compiler back-end and the MC libraries.
11
//
12
//===----------------------------------------------------------------------===//
13
14
#ifndef LLVM_LIB_TARGET_LANAI_MCTARGETDESC_LANAIBASEINFO_H
15
#define LLVM_LIB_TARGET_LANAI_MCTARGETDESC_LANAIBASEINFO_H
16
17
#include "
LanaiMCTargetDesc.h
"
18
#include "
llvm/MC/MCExpr.h
"
19
#include "
llvm/Support/DataTypes.h
"
20
#include "
llvm/Support/ErrorHandling.h
"
21
22
namespace
llvm
{
23
24
// LanaiII - This namespace holds all of the target specific flags that
25
// instruction info tracks.
26
namespace
LanaiII {
27
// Target Operand Flag enum.
28
enum
TOF
{
29
//===------------------------------------------------------------------===//
30
// Lanai Specific MachineOperand flags.
31
MO_NO_FLAG
,
32
33
// MO_ABS_HI/LO - Represents the hi or low part of an absolute symbol
34
// address.
35
MO_ABS_HI
,
36
MO_ABS_LO
,
37
};
38
}
// namespace LanaiII
39
40
static
inline
unsigned
getLanaiRegisterNumbering
(
unsigned
Reg
) {
41
switch
(
Reg
) {
42
case
Lanai::R0:
43
return
0;
44
case
Lanai::R1:
45
return
1;
46
case
Lanai::R2
:
47
case
Lanai::PC:
48
return
2;
49
case
Lanai::R3:
50
return
3;
51
case
Lanai::R4
:
52
case
Lanai::SP:
53
return
4;
54
case
Lanai::R5:
55
case
Lanai::FP:
56
return
5;
57
case
Lanai::R6
:
58
return
6;
59
case
Lanai::R7:
60
return
7;
61
case
Lanai::R8:
62
case
Lanai::RV:
63
return
8;
64
case
Lanai::R9:
65
return
9;
66
case
Lanai::R10:
67
case
Lanai::RR1:
68
return
10;
69
case
Lanai::R11:
70
case
Lanai::RR2:
71
return
11;
72
case
Lanai::R12:
73
return
12;
74
case
Lanai::R13:
75
return
13;
76
case
Lanai::R14:
77
return
14;
78
case
Lanai::R15:
79
case
Lanai::RCA:
80
return
15;
81
case
Lanai::R16:
82
return
16;
83
case
Lanai::R17:
84
return
17;
85
case
Lanai::R18:
86
return
18;
87
case
Lanai::R19:
88
return
19;
89
case
Lanai::R20:
90
return
20;
91
case
Lanai::R21:
92
return
21;
93
case
Lanai::R22:
94
return
22;
95
case
Lanai::R23:
96
return
23;
97
case
Lanai::R24:
98
return
24;
99
case
Lanai::R25:
100
return
25;
101
case
Lanai::R26:
102
return
26;
103
case
Lanai::R27:
104
return
27;
105
case
Lanai::R28:
106
return
28;
107
case
Lanai::R29:
108
return
29;
109
case
Lanai::R30:
110
return
30;
111
case
Lanai::R31:
112
return
31;
113
default
:
114
llvm_unreachable
(
"Unknown register number!"
);
115
}
116
}
117
}
// namespace llvm
118
#endif // LLVM_LIB_TARGET_LANAI_MCTARGETDESC_LANAIBASEINFO_H
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:17
ErrorHandling.h
llvm::X86Disassembler::Reg
Reg
All possible values of the reg field in the ModR/M byte.
Definition:
X86DisassemblerDecoder.h:462
R4
#define R4(n)
llvm::LanaiII::MO_ABS_LO
@ MO_ABS_LO
Definition:
LanaiBaseInfo.h:36
llvm::LanaiII::MO_NO_FLAG
@ MO_NO_FLAG
Definition:
LanaiBaseInfo.h:31
R2
#define R2(n)
llvm::getLanaiRegisterNumbering
static unsigned getLanaiRegisterNumbering(unsigned Reg)
Definition:
LanaiBaseInfo.h:40
R6
#define R6(n)
llvm_unreachable
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
Definition:
ErrorHandling.h:143
llvm::LanaiII::TOF
TOF
Definition:
LanaiBaseInfo.h:28
LanaiMCTargetDesc.h
DataTypes.h
MCExpr.h
llvm::LanaiII::MO_ABS_HI
@ MO_ABS_HI
Definition:
LanaiBaseInfo.h:35
Generated on Mon Jul 4 2022 08:01:19 for LLVM by
1.8.17