Coverage Report

Created: 2025-08-26 06:30

/src/capstonenext/include/capstone/sparc.h
Line
Count
Source (jump to first uncovered line)
1
#ifndef CAPSTONE_SPARC_H
2
#define CAPSTONE_SPARC_H
3
4
/* Capstone Disassembly Engine */
5
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2014-2015 */
6
7
#ifdef __cplusplus
8
extern "C" {
9
#endif
10
11
#include "platform.h"
12
#include "cs_operand.h"
13
14
// GCC SPARC toolchain has a default macro called "sparc" which breaks
15
// compilation
16
#undef sparc
17
18
#ifdef _MSC_VER
19
#pragma warning(disable:4201)
20
#endif
21
22
/// Enums corresponding to Sparc condition codes, both icc's and fcc's.
23
typedef enum sparc_cc {
24
  // Integer condition codes
25
  SPARC_CC_ICC_A = 8,    // Always
26
  SPARC_CC_ICC_N = 0,    // Never
27
  SPARC_CC_ICC_NE = 9,   // Not Equal
28
  SPARC_CC_ICC_E = 1,    // Equal
29
  SPARC_CC_ICC_G = 10,   // Greater
30
  SPARC_CC_ICC_LE = 2,   // Less or Equal
31
  SPARC_CC_ICC_GE = 11,  // Greater or Equal
32
  SPARC_CC_ICC_L = 3,    // Less
33
  SPARC_CC_ICC_GU = 12,  // Greater Unsigned
34
  SPARC_CC_ICC_LEU = 4,  // Less or Equal Unsigned
35
  SPARC_CC_ICC_CC = 13,  // Carry Clear/Great or Equal Unsigned
36
  SPARC_CC_ICC_CS = 5,   // Carry Set/Less Unsigned
37
  SPARC_CC_ICC_POS = 14, // Positive
38
  SPARC_CC_ICC_NEG = 6,  // Negative
39
  SPARC_CC_ICC_VC = 15,  // Overflow Clear
40
  SPARC_CC_ICC_VS = 7,   // Overflow Set
41
42
  SPARC_CC_FCC_BEGIN = 16,
43
  SPARC_CC_FCC_A = 8 + SPARC_CC_FCC_BEGIN,    // Always
44
  SPARC_CC_FCC_N = 0 + SPARC_CC_FCC_BEGIN,    // Never
45
  SPARC_CC_FCC_U = 7 + SPARC_CC_FCC_BEGIN,    // Unordered
46
  SPARC_CC_FCC_G = 6 + SPARC_CC_FCC_BEGIN,    // Greater
47
  SPARC_CC_FCC_UG = 5 + SPARC_CC_FCC_BEGIN,   // Unordered or Greater
48
  SPARC_CC_FCC_L = 4 + SPARC_CC_FCC_BEGIN,    // Less
49
  SPARC_CC_FCC_UL = 3 + SPARC_CC_FCC_BEGIN,   // Unordered or Less
50
  SPARC_CC_FCC_LG = 2 + SPARC_CC_FCC_BEGIN,   // Less or Greater
51
  SPARC_CC_FCC_NE = 1 + SPARC_CC_FCC_BEGIN,   // Not Equal
52
  SPARC_CC_FCC_E = 9 + SPARC_CC_FCC_BEGIN,    // Equal
53
  SPARC_CC_FCC_UE = 10 + SPARC_CC_FCC_BEGIN,  // Unordered or Equal
54
  SPARC_CC_FCC_GE = 11 + SPARC_CC_FCC_BEGIN,  // Greater or Equal
55
  SPARC_CC_FCC_UGE = 12 + SPARC_CC_FCC_BEGIN, // Unordered or Greater or Equal
56
  SPARC_CC_FCC_LE = 13 + SPARC_CC_FCC_BEGIN,  // Less or Equal
57
  SPARC_CC_FCC_ULE = 14 + SPARC_CC_FCC_BEGIN, // Unordered or Less or Equal
58
  SPARC_CC_FCC_O = 15 + SPARC_CC_FCC_BEGIN,   // Ordered
59
60
  SPARC_CC_CPCC_BEGIN = 32, ///< Co-processor conditional branches
61
  SPARC_CC_CPCC_A = 8 + SPARC_CC_CPCC_BEGIN, // Always
62
  SPARC_CC_CPCC_N = 0 + SPARC_CC_CPCC_BEGIN, // Never
63
  SPARC_CC_CPCC_3 = 7 + SPARC_CC_CPCC_BEGIN,
64
  SPARC_CC_CPCC_2 = 6 + SPARC_CC_CPCC_BEGIN,
65
  SPARC_CC_CPCC_23 = 5 + SPARC_CC_CPCC_BEGIN,
66
  SPARC_CC_CPCC_1 = 4 + SPARC_CC_CPCC_BEGIN,
67
  SPARC_CC_CPCC_13 = 3 + SPARC_CC_CPCC_BEGIN,
68
  SPARC_CC_CPCC_12 = 2 + SPARC_CC_CPCC_BEGIN,
69
  SPARC_CC_CPCC_123 = 1 + SPARC_CC_CPCC_BEGIN,
70
  SPARC_CC_CPCC_0 = 9 + SPARC_CC_CPCC_BEGIN,
71
  SPARC_CC_CPCC_03 = 10 + SPARC_CC_CPCC_BEGIN,
72
  SPARC_CC_CPCC_02 = 11 + SPARC_CC_CPCC_BEGIN,
73
  SPARC_CC_CPCC_023 = 12 + SPARC_CC_CPCC_BEGIN,
74
  SPARC_CC_CPCC_01 = 13 + SPARC_CC_CPCC_BEGIN,
75
  SPARC_CC_CPCC_013 = 14 + SPARC_CC_CPCC_BEGIN,
76
  SPARC_CC_CPCC_012 = 15 + SPARC_CC_CPCC_BEGIN,
77
78
  SPARC_CC_REG_BEGIN = 48,
79
  SPARC_CC_REG_Z = 1 + SPARC_CC_REG_BEGIN,   // Is zero
80
  SPARC_CC_REG_LEZ = 2 + SPARC_CC_REG_BEGIN, // Less or equal to zero
81
  SPARC_CC_REG_LZ = 3 + SPARC_CC_REG_BEGIN,  // Less than zero
82
  SPARC_CC_REG_NZ = 5 + SPARC_CC_REG_BEGIN,  // Is not zero
83
  SPARC_CC_REG_GZ = 6 + SPARC_CC_REG_BEGIN,  // Greater than zero
84
  SPARC_CC_REG_GEZ = 7 + SPARC_CC_REG_BEGIN,  // Greater than or equal to zero
85
86
  SPARC_CC_UNDEF = 0xffff,
87
} sparc_cc;
88
89
13.6k
inline static const char *SPARCCondCodeToString(sparc_cc CC) {
90
13.6k
  switch (CC) {
91
41
  case SPARC_CC_ICC_A:   return "a";
92
545
  case SPARC_CC_ICC_N:   return "n";
93
246
  case SPARC_CC_ICC_NE:  return "ne";
94
74
  case SPARC_CC_ICC_E:   return "e";
95
315
  case SPARC_CC_ICC_G:   return "g";
96
726
  case SPARC_CC_ICC_LE:  return "le";
97
36
  case SPARC_CC_ICC_GE:  return "ge";
98
82
  case SPARC_CC_ICC_L:   return "l";
99
72
  case SPARC_CC_ICC_GU:  return "gu";
100
205
  case SPARC_CC_ICC_LEU: return "leu";
101
37
  case SPARC_CC_ICC_CC:  return "cc";
102
754
  case SPARC_CC_ICC_CS:  return "cs";
103
213
  case SPARC_CC_ICC_POS: return "pos";
104
219
  case SPARC_CC_ICC_NEG: return "neg";
105
35
  case SPARC_CC_ICC_VC:  return "vc";
106
449
  case SPARC_CC_ICC_VS:  return "vs";
107
160
  case SPARC_CC_FCC_A:   return "a";
108
790
  case SPARC_CC_FCC_N:   return "n";
109
333
  case SPARC_CC_FCC_U:   return "u";
110
87
  case SPARC_CC_FCC_G:   return "g";
111
98
  case SPARC_CC_FCC_UG:  return "ug";
112
321
  case SPARC_CC_FCC_L:   return "l";
113
221
  case SPARC_CC_FCC_UL:  return "ul";
114
214
  case SPARC_CC_FCC_LG:  return "lg";
115
544
  case SPARC_CC_FCC_NE:  return "ne";
116
118
  case SPARC_CC_FCC_E:   return "e";
117
213
  case SPARC_CC_FCC_UE:  return "ue";
118
109
  case SPARC_CC_FCC_GE:  return "ge";
119
223
  case SPARC_CC_FCC_UGE: return "uge";
120
308
  case SPARC_CC_FCC_LE:  return "le";
121
225
  case SPARC_CC_FCC_ULE: return "ule";
122
323
  case SPARC_CC_FCC_O:   return "o";
123
219
  case SPARC_CC_CPCC_A:   return "a";
124
718
  case SPARC_CC_CPCC_N:   return "n";
125
234
  case SPARC_CC_CPCC_3:   return "3";
126
230
  case SPARC_CC_CPCC_2:   return "2";
127
251
  case SPARC_CC_CPCC_23:  return "23";
128
201
  case SPARC_CC_CPCC_1:   return "1";
129
249
  case SPARC_CC_CPCC_13:  return "13";
130
119
  case SPARC_CC_CPCC_12:  return "12";
131
507
  case SPARC_CC_CPCC_123: return "123";
132
265
  case SPARC_CC_CPCC_0:   return "0";
133
275
  case SPARC_CC_CPCC_03:  return "03";
134
73
  case SPARC_CC_CPCC_02:  return "02";
135
77
  case SPARC_CC_CPCC_023: return "023";
136
80
  case SPARC_CC_CPCC_01:  return "01";
137
92
  case SPARC_CC_CPCC_013: return "013";
138
214
  case SPARC_CC_CPCC_012: return "012";
139
559
  case SPARC_CC_REG_BEGIN:
140
559
  case SPARC_CC_UNDEF:
141
559
    return "invalid";
142
87
  case SPARC_CC_REG_Z:
143
87
    return "z";
144
81
  case SPARC_CC_REG_LEZ:
145
81
    return "lez";
146
147
  case SPARC_CC_REG_LZ:
147
147
    return "lz";
148
92
  case SPARC_CC_REG_NZ:
149
92
    return "nz";
150
81
  case SPARC_CC_REG_GZ:
151
81
    return "gz";
152
69
  case SPARC_CC_REG_GEZ:
153
69
    return "gez";
154
13.6k
  }
155
371
  return "invalid";
156
13.6k
}
Unexecuted instantiation: fuzz_disasm.c:SPARCCondCodeToString
Unexecuted instantiation: platform.c:SPARCCondCodeToString
Unexecuted instantiation: cs.c:SPARCCondCodeToString
Unexecuted instantiation: MCInst.c:SPARCCondCodeToString
Unexecuted instantiation: SStream.c:SPARCCondCodeToString
Unexecuted instantiation: utils.c:SPARCCondCodeToString
Unexecuted instantiation: ARMModule.c:SPARCCondCodeToString
Unexecuted instantiation: AArch64Module.c:SPARCCondCodeToString
Unexecuted instantiation: MipsModule.c:SPARCCondCodeToString
Unexecuted instantiation: PPCModule.c:SPARCCondCodeToString
Unexecuted instantiation: X86Module.c:SPARCCondCodeToString
Unexecuted instantiation: X86ATTInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: SparcModule.c:SPARCCondCodeToString
Unexecuted instantiation: SystemZModule.c:SPARCCondCodeToString
Unexecuted instantiation: XCoreModule.c:SPARCCondCodeToString
Unexecuted instantiation: M68KModule.c:SPARCCondCodeToString
Unexecuted instantiation: TMS320C64xModule.c:SPARCCondCodeToString
Unexecuted instantiation: M680XModule.c:SPARCCondCodeToString
Unexecuted instantiation: EVMModule.c:SPARCCondCodeToString
Unexecuted instantiation: WASMModule.c:SPARCCondCodeToString
Unexecuted instantiation: MOS65XXModule.c:SPARCCondCodeToString
Unexecuted instantiation: MOS65XXDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: BPFModule.c:SPARCCondCodeToString
Unexecuted instantiation: RISCVModule.c:SPARCCondCodeToString
Unexecuted instantiation: SHModule.c:SPARCCondCodeToString
Unexecuted instantiation: TriCoreModule.c:SPARCCondCodeToString
Unexecuted instantiation: AlphaModule.c:SPARCCondCodeToString
Unexecuted instantiation: HPPAModule.c:SPARCCondCodeToString
Unexecuted instantiation: LoongArchModule.c:SPARCCondCodeToString
Unexecuted instantiation: XtensaModule.c:SPARCCondCodeToString
Unexecuted instantiation: ARCModule.c:SPARCCondCodeToString
Unexecuted instantiation: ARMMapping.c:SPARCCondCodeToString
Unexecuted instantiation: AArch64Mapping.c:SPARCCondCodeToString
Unexecuted instantiation: MipsMapping.c:SPARCCondCodeToString
Unexecuted instantiation: PPCMapping.c:SPARCCondCodeToString
Unexecuted instantiation: X86Disassembler.c:SPARCCondCodeToString
Unexecuted instantiation: X86DisassemblerDecoder.c:SPARCCondCodeToString
Unexecuted instantiation: X86IntelInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: X86InstPrinterCommon.c:SPARCCondCodeToString
Unexecuted instantiation: X86Mapping.c:SPARCCondCodeToString
Unexecuted instantiation: SparcMapping.c:SPARCCondCodeToString
Unexecuted instantiation: SystemZMapping.c:SPARCCondCodeToString
Unexecuted instantiation: XCoreDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: XCoreInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: XCoreMapping.c:SPARCCondCodeToString
Unexecuted instantiation: M68KDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: M68KInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: TMS320C64xDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: TMS320C64xInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: TMS320C64xMapping.c:SPARCCondCodeToString
Unexecuted instantiation: M680XDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: M680XInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: EVMDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: EVMInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: EVMMapping.c:SPARCCondCodeToString
Unexecuted instantiation: WASMDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: WASMInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: WASMMapping.c:SPARCCondCodeToString
Unexecuted instantiation: BPFDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: BPFInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: BPFMapping.c:SPARCCondCodeToString
Unexecuted instantiation: RISCVDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: RISCVInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: RISCVMapping.c:SPARCCondCodeToString
Unexecuted instantiation: SHDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: SHInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: TriCoreDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: TriCoreMapping.c:SPARCCondCodeToString
Unexecuted instantiation: AlphaDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: AlphaMapping.c:SPARCCondCodeToString
Unexecuted instantiation: HPPADisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: HPPAInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: HPPAMapping.c:SPARCCondCodeToString
Unexecuted instantiation: LoongArchMapping.c:SPARCCondCodeToString
Unexecuted instantiation: XtensaMapping.c:SPARCCondCodeToString
Unexecuted instantiation: ARCMapping.c:SPARCCondCodeToString
Unexecuted instantiation: Mapping.c:SPARCCondCodeToString
Unexecuted instantiation: ARMBaseInfo.c:SPARCCondCodeToString
Unexecuted instantiation: ARMDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: ARMDisassemblerExtension.c:SPARCCondCodeToString
Unexecuted instantiation: ARMInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: AArch64BaseInfo.c:SPARCCondCodeToString
Unexecuted instantiation: AArch64Disassembler.c:SPARCCondCodeToString
Unexecuted instantiation: AArch64DisassemblerExtension.c:SPARCCondCodeToString
Unexecuted instantiation: AArch64InstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: MipsDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: MipsInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: PPCDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: PPCInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: SparcDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: SparcDisassemblerExtension.c:SPARCCondCodeToString
SparcInstPrinter.c:SPARCCondCodeToString
Line
Count
Source
89
13.6k
inline static const char *SPARCCondCodeToString(sparc_cc CC) {
90
13.6k
  switch (CC) {
91
41
  case SPARC_CC_ICC_A:   return "a";
92
545
  case SPARC_CC_ICC_N:   return "n";
93
246
  case SPARC_CC_ICC_NE:  return "ne";
94
74
  case SPARC_CC_ICC_E:   return "e";
95
315
  case SPARC_CC_ICC_G:   return "g";
96
726
  case SPARC_CC_ICC_LE:  return "le";
97
36
  case SPARC_CC_ICC_GE:  return "ge";
98
82
  case SPARC_CC_ICC_L:   return "l";
99
72
  case SPARC_CC_ICC_GU:  return "gu";
100
205
  case SPARC_CC_ICC_LEU: return "leu";
101
37
  case SPARC_CC_ICC_CC:  return "cc";
102
754
  case SPARC_CC_ICC_CS:  return "cs";
103
213
  case SPARC_CC_ICC_POS: return "pos";
104
219
  case SPARC_CC_ICC_NEG: return "neg";
105
35
  case SPARC_CC_ICC_VC:  return "vc";
106
449
  case SPARC_CC_ICC_VS:  return "vs";
107
160
  case SPARC_CC_FCC_A:   return "a";
108
790
  case SPARC_CC_FCC_N:   return "n";
109
333
  case SPARC_CC_FCC_U:   return "u";
110
87
  case SPARC_CC_FCC_G:   return "g";
111
98
  case SPARC_CC_FCC_UG:  return "ug";
112
321
  case SPARC_CC_FCC_L:   return "l";
113
221
  case SPARC_CC_FCC_UL:  return "ul";
114
214
  case SPARC_CC_FCC_LG:  return "lg";
115
544
  case SPARC_CC_FCC_NE:  return "ne";
116
118
  case SPARC_CC_FCC_E:   return "e";
117
213
  case SPARC_CC_FCC_UE:  return "ue";
118
109
  case SPARC_CC_FCC_GE:  return "ge";
119
223
  case SPARC_CC_FCC_UGE: return "uge";
120
308
  case SPARC_CC_FCC_LE:  return "le";
121
225
  case SPARC_CC_FCC_ULE: return "ule";
122
323
  case SPARC_CC_FCC_O:   return "o";
123
219
  case SPARC_CC_CPCC_A:   return "a";
124
718
  case SPARC_CC_CPCC_N:   return "n";
125
234
  case SPARC_CC_CPCC_3:   return "3";
126
230
  case SPARC_CC_CPCC_2:   return "2";
127
251
  case SPARC_CC_CPCC_23:  return "23";
128
201
  case SPARC_CC_CPCC_1:   return "1";
129
249
  case SPARC_CC_CPCC_13:  return "13";
130
119
  case SPARC_CC_CPCC_12:  return "12";
131
507
  case SPARC_CC_CPCC_123: return "123";
132
265
  case SPARC_CC_CPCC_0:   return "0";
133
275
  case SPARC_CC_CPCC_03:  return "03";
134
73
  case SPARC_CC_CPCC_02:  return "02";
135
77
  case SPARC_CC_CPCC_023: return "023";
136
80
  case SPARC_CC_CPCC_01:  return "01";
137
92
  case SPARC_CC_CPCC_013: return "013";
138
214
  case SPARC_CC_CPCC_012: return "012";
139
559
  case SPARC_CC_REG_BEGIN:
140
559
  case SPARC_CC_UNDEF:
141
559
    return "invalid";
142
87
  case SPARC_CC_REG_Z:
143
87
    return "z";
144
81
  case SPARC_CC_REG_LEZ:
145
81
    return "lez";
146
147
  case SPARC_CC_REG_LZ:
147
147
    return "lz";
148
92
  case SPARC_CC_REG_NZ:
149
92
    return "nz";
150
81
  case SPARC_CC_REG_GZ:
151
81
    return "gz";
152
69
  case SPARC_CC_REG_GEZ:
153
69
    return "gez";
154
13.6k
  }
155
371
  return "invalid";
156
13.6k
}
Unexecuted instantiation: SystemZDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: SystemZDisassemblerExtension.c:SPARCCondCodeToString
Unexecuted instantiation: SystemZInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: SystemZMCTargetDesc.c:SPARCCondCodeToString
Unexecuted instantiation: TriCoreInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: AlphaInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: LoongArchDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: LoongArchDisassemblerExtension.c:SPARCCondCodeToString
Unexecuted instantiation: LoongArchInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: XtensaDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: XtensaInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: ARCDisassembler.c:SPARCCondCodeToString
Unexecuted instantiation: ARCInstPrinter.c:SPARCCondCodeToString
Unexecuted instantiation: MCInstPrinter.c:SPARCCondCodeToString
157
158
/// The cc field values encoded in the cc0, cc1, cc2 bits or opf_cc.
159
/// They are equivalent to ISA Sparc v9 - Table 41 - Chapter E.2 Tables - Page 281.
160
typedef enum {
161
  SPARC_CC_FIELD_FCC0 = 0,
162
  SPARC_CC_FIELD_FCC1 = 1,
163
  SPARC_CC_FIELD_FCC2 = 2,
164
  SPARC_CC_FIELD_FCC3 = 3,
165
  SPARC_CC_FIELD_ICC = 4,
166
  SPARC_CC_FIELD_RESERVED_I = 5,
167
  SPARC_CC_FIELD_XCC = 6,
168
  SPARC_CC_FIELD_RESERVED_II = 7,
169
  SPARC_CC_FIELD_NONE = 0xff,
170
} sparc_cc_field;
171
172
/// The instruction formats.
173
/// They are only loosely equivalent to the one in the ISA.
174
/// Because in LLVM they are not defined one to one.
175
typedef enum {
176
  // generated content <SparcGenCSInsnFormatsEnum.inc> begin
177
  // clang-format off
178
179
  SPARC_INSN_FORM_ASMPSEUDOINST,
180
  SPARC_INSN_FORM_F3_2,
181
  SPARC_INSN_FORM_F3_1_ASI,
182
  SPARC_INSN_FORM_F3_3,
183
  SPARC_INSN_FORM_F2_2,
184
  SPARC_INSN_FORM_F2_3,
185
  SPARC_INSN_FORM_F2_4,
186
  SPARC_INSN_FORM_F1,
187
  SPARC_INSN_FORM_F3_3U,
188
  SPARC_INSN_FORM_F4_3,
189
  SPARC_INSN_FORM_F4_4R,
190
  SPARC_INSN_FORM_F4_2,
191
  SPARC_INSN_FORM_F4_1,
192
  SPARC_INSN_FORM_F4_4I,
193
  SPARC_INSN_FORM_F2_1,
194
  SPARC_INSN_FORM_F3_SI,
195
  SPARC_INSN_FORM_F3_SR,
196
  SPARC_INSN_FORM_TRAPSP,
197
  SPARC_INSN_FORM_F3_3C,
198
199
  // clang-format on
200
  // generated content <SparcGenCSInsnFormatsEnum.inc> end
201
} sparc_insn_form;
202
203
/// Branch hint
204
typedef enum sparc_hint {
205
  SPARC_HINT_INVALID = 0, ///< no hint
206
  SPARC_HINT_A  = 1 << 0, ///< annul delay slot instruction
207
  SPARC_HINT_PT = 1 << 1, ///< branch taken
208
  SPARC_HINT_PN = 1 << 2, ///< branch NOT taken
209
  SPARC_HINT_A_PN = SPARC_HINT_A | SPARC_HINT_PN,
210
  SPARC_HINT_A_PT = SPARC_HINT_A | SPARC_HINT_PT,
211
} sparc_hint;
212
213
/// Operand type for instruction's operands
214
typedef enum sparc_op_type {
215
  SPARC_OP_INVALID = CS_OP_INVALID, ///< = CS_OP_INVALID (Uninitialized).
216
  SPARC_OP_REG = CS_OP_REG, ///< = CS_OP_REG (Register operand).
217
  SPARC_OP_IMM = CS_OP_IMM, ///< = CS_OP_IMM (Immediate operand).
218
  SPARC_OP_MEM = CS_OP_MEM, ///< = CS_OP_MEM (Memory operand).
219
  SPARC_OP_MEMBAR_TAG = CS_OP_SPECIAL + 0,
220
  SPARC_OP_ASI = CS_OP_SPECIAL + 1,
221
} sparc_op_type;
222
223
/// SPARC registers
224
typedef enum sparc_reg {
225
  // generated content <SparcGenCSRegEnum.inc> begin
226
  // clang-format off
227
228
  SPARC_REG_INVALID = 0,
229
  SPARC_REG_CANRESTORE = 1,
230
  SPARC_REG_CANSAVE = 2,
231
  SPARC_REG_CLEANWIN = 3,
232
  SPARC_REG_CPQ = 4,
233
  SPARC_REG_CPSR = 5,
234
  SPARC_REG_CWP = 6,
235
  SPARC_REG_FQ = 7,
236
  SPARC_REG_FSR = 8,
237
  SPARC_REG_GL = 9,
238
  SPARC_REG_ICC = 10,
239
  SPARC_REG_OTHERWIN = 11,
240
  SPARC_REG_PIL = 12,
241
  SPARC_REG_PSR = 13,
242
  SPARC_REG_PSTATE = 14,
243
  SPARC_REG_TBA = 15,
244
  SPARC_REG_TBR = 16,
245
  SPARC_REG_TICK = 17,
246
  SPARC_REG_TL = 18,
247
  SPARC_REG_TNPC = 19,
248
  SPARC_REG_TPC = 20,
249
  SPARC_REG_TSTATE = 21,
250
  SPARC_REG_TT = 22,
251
  SPARC_REG_VER = 23,
252
  SPARC_REG_WIM = 24,
253
  SPARC_REG_WSTATE = 25,
254
  SPARC_REG_Y = 26,
255
  SPARC_REG_ASR1 = 27,
256
  SPARC_REG_ASR2 = 28,
257
  SPARC_REG_ASR3 = 29,
258
  SPARC_REG_ASR4 = 30,
259
  SPARC_REG_ASR5 = 31,
260
  SPARC_REG_ASR6 = 32,
261
  SPARC_REG_ASR7 = 33,
262
  SPARC_REG_ASR8 = 34,
263
  SPARC_REG_ASR9 = 35,
264
  SPARC_REG_ASR10 = 36,
265
  SPARC_REG_ASR11 = 37,
266
  SPARC_REG_ASR12 = 38,
267
  SPARC_REG_ASR13 = 39,
268
  SPARC_REG_ASR14 = 40,
269
  SPARC_REG_ASR15 = 41,
270
  SPARC_REG_ASR16 = 42,
271
  SPARC_REG_ASR17 = 43,
272
  SPARC_REG_ASR18 = 44,
273
  SPARC_REG_ASR19 = 45,
274
  SPARC_REG_ASR20 = 46,
275
  SPARC_REG_ASR21 = 47,
276
  SPARC_REG_ASR22 = 48,
277
  SPARC_REG_ASR23 = 49,
278
  SPARC_REG_ASR24 = 50,
279
  SPARC_REG_ASR25 = 51,
280
  SPARC_REG_ASR26 = 52,
281
  SPARC_REG_ASR27 = 53,
282
  SPARC_REG_ASR28 = 54,
283
  SPARC_REG_ASR29 = 55,
284
  SPARC_REG_ASR30 = 56,
285
  SPARC_REG_ASR31 = 57,
286
  SPARC_REG_C0 = 58,
287
  SPARC_REG_C1 = 59,
288
  SPARC_REG_C2 = 60,
289
  SPARC_REG_C3 = 61,
290
  SPARC_REG_C4 = 62,
291
  SPARC_REG_C5 = 63,
292
  SPARC_REG_C6 = 64,
293
  SPARC_REG_C7 = 65,
294
  SPARC_REG_C8 = 66,
295
  SPARC_REG_C9 = 67,
296
  SPARC_REG_C10 = 68,
297
  SPARC_REG_C11 = 69,
298
  SPARC_REG_C12 = 70,
299
  SPARC_REG_C13 = 71,
300
  SPARC_REG_C14 = 72,
301
  SPARC_REG_C15 = 73,
302
  SPARC_REG_C16 = 74,
303
  SPARC_REG_C17 = 75,
304
  SPARC_REG_C18 = 76,
305
  SPARC_REG_C19 = 77,
306
  SPARC_REG_C20 = 78,
307
  SPARC_REG_C21 = 79,
308
  SPARC_REG_C22 = 80,
309
  SPARC_REG_C23 = 81,
310
  SPARC_REG_C24 = 82,
311
  SPARC_REG_C25 = 83,
312
  SPARC_REG_C26 = 84,
313
  SPARC_REG_C27 = 85,
314
  SPARC_REG_C28 = 86,
315
  SPARC_REG_C29 = 87,
316
  SPARC_REG_C30 = 88,
317
  SPARC_REG_C31 = 89,
318
  SPARC_REG_D0 = 90,
319
  SPARC_REG_D1 = 91,
320
  SPARC_REG_D2 = 92,
321
  SPARC_REG_D3 = 93,
322
  SPARC_REG_D4 = 94,
323
  SPARC_REG_D5 = 95,
324
  SPARC_REG_D6 = 96,
325
  SPARC_REG_D7 = 97,
326
  SPARC_REG_D8 = 98,
327
  SPARC_REG_D9 = 99,
328
  SPARC_REG_D10 = 100,
329
  SPARC_REG_D11 = 101,
330
  SPARC_REG_D12 = 102,
331
  SPARC_REG_D13 = 103,
332
  SPARC_REG_D14 = 104,
333
  SPARC_REG_D15 = 105,
334
  SPARC_REG_D16 = 106,
335
  SPARC_REG_D17 = 107,
336
  SPARC_REG_D18 = 108,
337
  SPARC_REG_D19 = 109,
338
  SPARC_REG_D20 = 110,
339
  SPARC_REG_D21 = 111,
340
  SPARC_REG_D22 = 112,
341
  SPARC_REG_D23 = 113,
342
  SPARC_REG_D24 = 114,
343
  SPARC_REG_D25 = 115,
344
  SPARC_REG_D26 = 116,
345
  SPARC_REG_D27 = 117,
346
  SPARC_REG_D28 = 118,
347
  SPARC_REG_D29 = 119,
348
  SPARC_REG_D30 = 120,
349
  SPARC_REG_D31 = 121,
350
  SPARC_REG_F0 = 122,
351
  SPARC_REG_F1 = 123,
352
  SPARC_REG_F2 = 124,
353
  SPARC_REG_F3 = 125,
354
  SPARC_REG_F4 = 126,
355
  SPARC_REG_F5 = 127,
356
  SPARC_REG_F6 = 128,
357
  SPARC_REG_F7 = 129,
358
  SPARC_REG_F8 = 130,
359
  SPARC_REG_F9 = 131,
360
  SPARC_REG_F10 = 132,
361
  SPARC_REG_F11 = 133,
362
  SPARC_REG_F12 = 134,
363
  SPARC_REG_F13 = 135,
364
  SPARC_REG_F14 = 136,
365
  SPARC_REG_F15 = 137,
366
  SPARC_REG_F16 = 138,
367
  SPARC_REG_F17 = 139,
368
  SPARC_REG_F18 = 140,
369
  SPARC_REG_F19 = 141,
370
  SPARC_REG_F20 = 142,
371
  SPARC_REG_F21 = 143,
372
  SPARC_REG_F22 = 144,
373
  SPARC_REG_F23 = 145,
374
  SPARC_REG_F24 = 146,
375
  SPARC_REG_F25 = 147,
376
  SPARC_REG_F26 = 148,
377
  SPARC_REG_F27 = 149,
378
  SPARC_REG_F28 = 150,
379
  SPARC_REG_F29 = 151,
380
  SPARC_REG_F30 = 152,
381
  SPARC_REG_F31 = 153,
382
  SPARC_REG_FCC0 = 154,
383
  SPARC_REG_FCC1 = 155,
384
  SPARC_REG_FCC2 = 156,
385
  SPARC_REG_FCC3 = 157,
386
  SPARC_REG_G0 = 158,
387
  SPARC_REG_G1 = 159,
388
  SPARC_REG_G2 = 160,
389
  SPARC_REG_G3 = 161,
390
  SPARC_REG_G4 = 162,
391
  SPARC_REG_G5 = 163,
392
  SPARC_REG_G6 = 164,
393
  SPARC_REG_G7 = 165,
394
  SPARC_REG_I0 = 166,
395
  SPARC_REG_I1 = 167,
396
  SPARC_REG_I2 = 168,
397
  SPARC_REG_I3 = 169,
398
  SPARC_REG_I4 = 170,
399
  SPARC_REG_I5 = 171,
400
  SPARC_REG_I6 = 172,
401
  SPARC_REG_I7 = 173,
402
  SPARC_REG_L0 = 174,
403
  SPARC_REG_L1 = 175,
404
  SPARC_REG_L2 = 176,
405
  SPARC_REG_L3 = 177,
406
  SPARC_REG_L4 = 178,
407
  SPARC_REG_L5 = 179,
408
  SPARC_REG_L6 = 180,
409
  SPARC_REG_L7 = 181,
410
  SPARC_REG_O0 = 182,
411
  SPARC_REG_O1 = 183,
412
  SPARC_REG_O2 = 184,
413
  SPARC_REG_O3 = 185,
414
  SPARC_REG_O4 = 186,
415
  SPARC_REG_O5 = 187,
416
  SPARC_REG_O6 = 188,
417
  SPARC_REG_O7 = 189,
418
  SPARC_REG_Q0 = 190,
419
  SPARC_REG_Q1 = 191,
420
  SPARC_REG_Q2 = 192,
421
  SPARC_REG_Q3 = 193,
422
  SPARC_REG_Q4 = 194,
423
  SPARC_REG_Q5 = 195,
424
  SPARC_REG_Q6 = 196,
425
  SPARC_REG_Q7 = 197,
426
  SPARC_REG_Q8 = 198,
427
  SPARC_REG_Q9 = 199,
428
  SPARC_REG_Q10 = 200,
429
  SPARC_REG_Q11 = 201,
430
  SPARC_REG_Q12 = 202,
431
  SPARC_REG_Q13 = 203,
432
  SPARC_REG_Q14 = 204,
433
  SPARC_REG_Q15 = 205,
434
  SPARC_REG_C0_C1 = 206,
435
  SPARC_REG_C2_C3 = 207,
436
  SPARC_REG_C4_C5 = 208,
437
  SPARC_REG_C6_C7 = 209,
438
  SPARC_REG_C8_C9 = 210,
439
  SPARC_REG_C10_C11 = 211,
440
  SPARC_REG_C12_C13 = 212,
441
  SPARC_REG_C14_C15 = 213,
442
  SPARC_REG_C16_C17 = 214,
443
  SPARC_REG_C18_C19 = 215,
444
  SPARC_REG_C20_C21 = 216,
445
  SPARC_REG_C22_C23 = 217,
446
  SPARC_REG_C24_C25 = 218,
447
  SPARC_REG_C26_C27 = 219,
448
  SPARC_REG_C28_C29 = 220,
449
  SPARC_REG_C30_C31 = 221,
450
  SPARC_REG_G0_G1 = 222,
451
  SPARC_REG_G2_G3 = 223,
452
  SPARC_REG_G4_G5 = 224,
453
  SPARC_REG_G6_G7 = 225,
454
  SPARC_REG_I0_I1 = 226,
455
  SPARC_REG_I2_I3 = 227,
456
  SPARC_REG_I4_I5 = 228,
457
  SPARC_REG_I6_I7 = 229,
458
  SPARC_REG_L0_L1 = 230,
459
  SPARC_REG_L2_L3 = 231,
460
  SPARC_REG_L4_L5 = 232,
461
  SPARC_REG_L6_L7 = 233,
462
  SPARC_REG_O0_O1 = 234,
463
  SPARC_REG_O2_O3 = 235,
464
  SPARC_REG_O4_O5 = 236,
465
  SPARC_REG_O6_O7 = 237,
466
  SPARC_REG_ENDING, // 238
467
468
  // clang-format on
469
  // generated content <SparcGenCSRegEnum.inc> end
470
471
  // extras
472
  SPARC_REG_SP = SPARC_REG_O6,
473
  SPARC_REG_FP = SPARC_REG_I6,
474
} sparc_reg;
475
476
typedef enum sparc_asi {
477
  SPARC_ASITAG_ASI_INVALID = 0x0,
478
  // generated content <SparcGenCSSystemOperandsEnum.inc:GET_ENUM_VALUES_ASITag> begin
479
  // clang-format off
480
481
  SPARC_ASITAG_ASI_AIUP = 0x10,
482
  SPARC_ASITAG_ASI_AS_IF_USER_PRIMARY = 0x10,
483
  SPARC_ASITAG_ASI_AIUP_L = 0x18,
484
  SPARC_ASITAG_ASI_AS_IF_USER_PRIMARY_LITTLE = 0x18,
485
  SPARC_ASITAG_ASI_AIUS = 0x11,
486
  SPARC_ASITAG_ASI_AS_IF_USER_SECONDARY = 0x11,
487
  SPARC_ASITAG_ASI_AIUS_L = 0x19,
488
  SPARC_ASITAG_ASI_AS_IF_USER_SECONDARY_LITTLE = 0x19,
489
  SPARC_ASITAG_ASI_N = 0x4,
490
  SPARC_ASITAG_ASI_NUCLEUS = 0x4,
491
  SPARC_ASITAG_ASI_N_L = 0xc,
492
  SPARC_ASITAG_ASI_NUCLEUS_LITTLE = 0xc,
493
  SPARC_ASITAG_ASI_P = 0x80,
494
  SPARC_ASITAG_ASI_PRIMARY = 0x80,
495
  SPARC_ASITAG_ASI_PNF = 0x82,
496
  SPARC_ASITAG_ASI_PRIMARY_NOFAULT = 0x82,
497
  SPARC_ASITAG_ASI_PNF_L = 0x8a,
498
  SPARC_ASITAG_ASI_PRIMARY_NOFAULT_LITTLE = 0x8a,
499
  SPARC_ASITAG_ASI_P_L = 0x88,
500
  SPARC_ASITAG_ASI_PRIMARY_LITTLE = 0x88,
501
  SPARC_ASITAG_ASI_S = 0x81,
502
  SPARC_ASITAG_ASI_SECONDARY = 0x81,
503
  SPARC_ASITAG_ASI_SNF = 0x83,
504
  SPARC_ASITAG_ASI_SECONDARY_NOFAULT = 0x83,
505
  SPARC_ASITAG_ASI_SNF_L = 0x8b,
506
  SPARC_ASITAG_ASI_SECONDARY_NOFAULT_LITTLE = 0x8b,
507
  SPARC_ASITAG_ASI_S_L = 0x89,
508
  SPARC_ASITAG_ASI_SECONDARY_LITTLE = 0x89,
509
510
  // clang-format on
511
  // generated content <SparcGenCSSystemOperandsEnum.inc:GET_ENUM_VALUES_ASITag> end
512
} sparc_asi;
513
514
typedef enum sparc_membar_tag {
515
  SPARC_MEMBAR_TAG_NONE = 0,
516
  SPARC_MEMBAR_TAG_LOADLOAD = 1,
517
  SPARC_MEMBAR_TAG_STORELOAD = 1 << 1,
518
  SPARC_MEMBAR_TAG_LOADSTORE = 1 << 2,
519
  SPARC_MEMBAR_TAG_STORESTORE = 1 << 3,
520
  SPARC_MEMBAR_TAG_LOOKASIDE = 1 << 4,
521
  SPARC_MEMBAR_TAG_MEMISSUE = 1 << 5,
522
  SPARC_MEMBAR_TAG_SYNC = 1 << 6,
523
} sparc_membar_tag;
524
525
/// Instruction's operand referring to memory
526
/// This is associated with SPARC_OP_MEM operand type above
527
typedef struct sparc_op_mem {
528
  sparc_reg base;   ///< base register, can be safely interpreted as
529
        ///< a value of type `sparc_reg`, but it is only
530
        ///< one byte wide
531
  sparc_reg index;    ///< index register, same conditions apply here
532
  int32_t disp;   ///< displacement/offset value
533
} sparc_op_mem;
534
535
/// Instruction operand
536
typedef struct cs_sparc_op {
537
  sparc_op_type type; ///< operand type
538
  union {
539
    sparc_reg reg;  ///< register value for REG operand
540
    int64_t imm;    ///< immediate value for IMM operand
541
    sparc_op_mem mem;   ///< base/disp value for MEM operand
542
    sparc_membar_tag membar_tag; ///< Tag of the MEMBAR instruction.
543
    sparc_asi asi; ///< Address space identifier.
544
  };
545
  cs_ac_type access; ///< The way the operand is accessed.
546
} cs_sparc_op;
547
548
322k
#define NUM_SPARC_OPS 6
549
550
/// Instruction structure
551
typedef struct cs_sparc {
552
  sparc_cc cc;  ///< Condition code: only SPARC_CC_ICC_* are set here.
553
  sparc_cc_field cc_field; ///< The CC field the instruction uses.
554
  sparc_hint hint;  ///< branch hint: encoding as bitwise OR of sparc_hint.
555
  sparc_insn_form format; ///< The instruction format.
556
  /// Number of operands of this instruction,
557
  /// or 0 when instruction has no operand.
558
  uint8_t op_count;
559
  cs_sparc_op operands[NUM_SPARC_OPS]; ///< operands for this instruction.
560
} cs_sparc;
561
562
typedef struct {
563
  sparc_insn_form form; ///< The instruction format.
564
} sparc_suppl_info;
565
566
/// SPARC instruction
567
typedef enum sparc_insn {
568
  // generated content <SparcGenCSInsnEnum.inc> begin
569
  // clang-format off
570
571
  SPARC_INS_INVALID,
572
  SPARC_INS_SET,
573
  SPARC_INS_SETX,
574
  SPARC_INS_ADDCC,
575
  SPARC_INS_ADDX,
576
  SPARC_INS_ADDXCC,
577
  SPARC_INS_ADDXC,
578
  SPARC_INS_ADDXCCC,
579
  SPARC_INS_ADD,
580
  SPARC_INS_ALIGNADDR,
581
  SPARC_INS_ALIGNADDRL,
582
  SPARC_INS_ANDCC,
583
  SPARC_INS_ANDNCC,
584
  SPARC_INS_ANDN,
585
  SPARC_INS_AND,
586
  SPARC_INS_ARRAY16,
587
  SPARC_INS_ARRAY32,
588
  SPARC_INS_ARRAY8,
589
  SPARC_INS_B,
590
  SPARC_INS_BMASK,
591
  SPARC_INS_FB,
592
  SPARC_INS_BR,
593
  SPARC_INS_BSHUFFLE,
594
  SPARC_INS_CALL,
595
  SPARC_INS_CASA,
596
  SPARC_INS_CASXA,
597
  SPARC_INS_CB,
598
  SPARC_INS_CMASK16,
599
  SPARC_INS_CMASK32,
600
  SPARC_INS_CMASK8,
601
  SPARC_INS_DONE,
602
  SPARC_INS_EDGE16,
603
  SPARC_INS_EDGE16L,
604
  SPARC_INS_EDGE16LN,
605
  SPARC_INS_EDGE16N,
606
  SPARC_INS_EDGE32,
607
  SPARC_INS_EDGE32L,
608
  SPARC_INS_EDGE32LN,
609
  SPARC_INS_EDGE32N,
610
  SPARC_INS_EDGE8,
611
  SPARC_INS_EDGE8L,
612
  SPARC_INS_EDGE8LN,
613
  SPARC_INS_EDGE8N,
614
  SPARC_INS_FABSD,
615
  SPARC_INS_FABSQ,
616
  SPARC_INS_FABSS,
617
  SPARC_INS_FADDD,
618
  SPARC_INS_FADDQ,
619
  SPARC_INS_FADDS,
620
  SPARC_INS_FALIGNDATA,
621
  SPARC_INS_FAND,
622
  SPARC_INS_FANDNOT1,
623
  SPARC_INS_FANDNOT1S,
624
  SPARC_INS_FANDNOT2,
625
  SPARC_INS_FANDNOT2S,
626
  SPARC_INS_FANDS,
627
  SPARC_INS_FCHKSM16,
628
  SPARC_INS_FCMPEQ16,
629
  SPARC_INS_FCMPEQ32,
630
  SPARC_INS_FCMPGT16,
631
  SPARC_INS_FCMPGT32,
632
  SPARC_INS_FCMPLE16,
633
  SPARC_INS_FCMPLE32,
634
  SPARC_INS_FCMPNE16,
635
  SPARC_INS_FCMPNE32,
636
  SPARC_INS_FDIVD,
637
  SPARC_INS_FDIVQ,
638
  SPARC_INS_FDIVS,
639
  SPARC_INS_FDMULQ,
640
  SPARC_INS_FDTOI,
641
  SPARC_INS_FDTOQ,
642
  SPARC_INS_FDTOS,
643
  SPARC_INS_FDTOX,
644
  SPARC_INS_FEXPAND,
645
  SPARC_INS_FHADDD,
646
  SPARC_INS_FHADDS,
647
  SPARC_INS_FHSUBD,
648
  SPARC_INS_FHSUBS,
649
  SPARC_INS_FITOD,
650
  SPARC_INS_FITOQ,
651
  SPARC_INS_FITOS,
652
  SPARC_INS_FLCMPD,
653
  SPARC_INS_FLCMPS,
654
  SPARC_INS_FLUSH,
655
  SPARC_INS_FLUSHW,
656
  SPARC_INS_FMEAN16,
657
  SPARC_INS_FMOVD,
658
  SPARC_INS_FMOVQ,
659
  SPARC_INS_FMOVRD,
660
  SPARC_INS_FMOVRQ,
661
  SPARC_INS_FMOVRS,
662
  SPARC_INS_FMOVS,
663
  SPARC_INS_FMUL8SUX16,
664
  SPARC_INS_FMUL8ULX16,
665
  SPARC_INS_FMUL8X16,
666
  SPARC_INS_FMUL8X16AL,
667
  SPARC_INS_FMUL8X16AU,
668
  SPARC_INS_FMULD,
669
  SPARC_INS_FMULD8SUX16,
670
  SPARC_INS_FMULD8ULX16,
671
  SPARC_INS_FMULQ,
672
  SPARC_INS_FMULS,
673
  SPARC_INS_FNADDD,
674
  SPARC_INS_FNADDS,
675
  SPARC_INS_FNAND,
676
  SPARC_INS_FNANDS,
677
  SPARC_INS_FNEGD,
678
  SPARC_INS_FNEGQ,
679
  SPARC_INS_FNEGS,
680
  SPARC_INS_FNHADDD,
681
  SPARC_INS_FNHADDS,
682
  SPARC_INS_FNMULD,
683
  SPARC_INS_FNMULS,
684
  SPARC_INS_FNOR,
685
  SPARC_INS_FNORS,
686
  SPARC_INS_FNOT1,
687
  SPARC_INS_FNOT1S,
688
  SPARC_INS_FNOT2,
689
  SPARC_INS_FNOT2S,
690
  SPARC_INS_FNSMULD,
691
  SPARC_INS_FONE,
692
  SPARC_INS_FONES,
693
  SPARC_INS_FOR,
694
  SPARC_INS_FORNOT1,
695
  SPARC_INS_FORNOT1S,
696
  SPARC_INS_FORNOT2,
697
  SPARC_INS_FORNOT2S,
698
  SPARC_INS_FORS,
699
  SPARC_INS_FPACK16,
700
  SPARC_INS_FPACK32,
701
  SPARC_INS_FPACKFIX,
702
  SPARC_INS_FPADD16,
703
  SPARC_INS_FPADD16S,
704
  SPARC_INS_FPADD32,
705
  SPARC_INS_FPADD32S,
706
  SPARC_INS_FPADD64,
707
  SPARC_INS_FPMERGE,
708
  SPARC_INS_FPSUB16,
709
  SPARC_INS_FPSUB16S,
710
  SPARC_INS_FPSUB32,
711
  SPARC_INS_FPSUB32S,
712
  SPARC_INS_FQTOD,
713
  SPARC_INS_FQTOI,
714
  SPARC_INS_FQTOS,
715
  SPARC_INS_FQTOX,
716
  SPARC_INS_FSLAS16,
717
  SPARC_INS_FSLAS32,
718
  SPARC_INS_FSLL16,
719
  SPARC_INS_FSLL32,
720
  SPARC_INS_FSMULD,
721
  SPARC_INS_FSQRTD,
722
  SPARC_INS_FSQRTQ,
723
  SPARC_INS_FSQRTS,
724
  SPARC_INS_FSRA16,
725
  SPARC_INS_FSRA32,
726
  SPARC_INS_FSRC1,
727
  SPARC_INS_FSRC1S,
728
  SPARC_INS_FSRC2,
729
  SPARC_INS_FSRC2S,
730
  SPARC_INS_FSRL16,
731
  SPARC_INS_FSRL32,
732
  SPARC_INS_FSTOD,
733
  SPARC_INS_FSTOI,
734
  SPARC_INS_FSTOQ,
735
  SPARC_INS_FSTOX,
736
  SPARC_INS_FSUBD,
737
  SPARC_INS_FSUBQ,
738
  SPARC_INS_FSUBS,
739
  SPARC_INS_FXNOR,
740
  SPARC_INS_FXNORS,
741
  SPARC_INS_FXOR,
742
  SPARC_INS_FXORS,
743
  SPARC_INS_FXTOD,
744
  SPARC_INS_FXTOQ,
745
  SPARC_INS_FXTOS,
746
  SPARC_INS_FZERO,
747
  SPARC_INS_FZEROS,
748
  SPARC_INS_LDX,
749
  SPARC_INS_LD,
750
  SPARC_INS_JMPL,
751
  SPARC_INS_LDA,
752
  SPARC_INS_LDDA,
753
  SPARC_INS_LDD,
754
  SPARC_INS_LDQA,
755
  SPARC_INS_LDQ,
756
  SPARC_INS_LDSBA,
757
  SPARC_INS_LDSB,
758
  SPARC_INS_LDSHA,
759
  SPARC_INS_LDSH,
760
  SPARC_INS_LDSTUBA,
761
  SPARC_INS_LDSTUB,
762
  SPARC_INS_LDSWA,
763
  SPARC_INS_LDSW,
764
  SPARC_INS_LDUBA,
765
  SPARC_INS_LDUB,
766
  SPARC_INS_LDUHA,
767
  SPARC_INS_LDUH,
768
  SPARC_INS_LDXA,
769
  SPARC_INS_LZCNT,
770
  SPARC_INS_MEMBAR,
771
  SPARC_INS_MOVDTOX,
772
  SPARC_INS_MOV,
773
  SPARC_INS_MOVR,
774
  SPARC_INS_MOVSTOSW,
775
  SPARC_INS_MOVSTOUW,
776
  SPARC_INS_MOVWTOS,
777
  SPARC_INS_MOVXTOD,
778
  SPARC_INS_MULSCC,
779
  SPARC_INS_MULX,
780
  SPARC_INS_NOP,
781
  SPARC_INS_ORCC,
782
  SPARC_INS_ORNCC,
783
  SPARC_INS_ORN,
784
  SPARC_INS_OR,
785
  SPARC_INS_PDIST,
786
  SPARC_INS_PDISTN,
787
  SPARC_INS_POPC,
788
  SPARC_INS_PREFETCH,
789
  SPARC_INS_PWR,
790
  SPARC_INS_RD,
791
  SPARC_INS_RDPR,
792
  SPARC_INS_RESTORED,
793
  SPARC_INS_RESTORE,
794
  SPARC_INS_RETRY,
795
  SPARC_INS_RETT,
796
  SPARC_INS_SAVED,
797
  SPARC_INS_SAVE,
798
  SPARC_INS_SDIVCC,
799
  SPARC_INS_SDIVX,
800
  SPARC_INS_SDIV,
801
  SPARC_INS_SETHI,
802
  SPARC_INS_SHUTDOWN,
803
  SPARC_INS_SIAM,
804
  SPARC_INS_SIR,
805
  SPARC_INS_SLLX,
806
  SPARC_INS_SLL,
807
  SPARC_INS_SMAC,
808
  SPARC_INS_SMULCC,
809
  SPARC_INS_SMUL,
810
  SPARC_INS_SRAX,
811
  SPARC_INS_SRA,
812
  SPARC_INS_SRLX,
813
  SPARC_INS_SRL,
814
  SPARC_INS_STA,
815
  SPARC_INS_STBAR,
816
  SPARC_INS_STBA,
817
  SPARC_INS_STB,
818
  SPARC_INS_ST,
819
  SPARC_INS_STDA,
820
  SPARC_INS_STD,
821
  SPARC_INS_STHA,
822
  SPARC_INS_STH,
823
  SPARC_INS_STQA,
824
  SPARC_INS_STQ,
825
  SPARC_INS_STXA,
826
  SPARC_INS_STX,
827
  SPARC_INS_SUBCC,
828
  SPARC_INS_SUBX,
829
  SPARC_INS_SUBXCC,
830
  SPARC_INS_SUB,
831
  SPARC_INS_SWAPA,
832
  SPARC_INS_SWAP,
833
  SPARC_INS_TA,
834
  SPARC_INS_TADDCCTV,
835
  SPARC_INS_TADDCC,
836
  SPARC_INS_T,
837
  SPARC_INS_TSUBCCTV,
838
  SPARC_INS_TSUBCC,
839
  SPARC_INS_UDIVCC,
840
  SPARC_INS_UDIVX,
841
  SPARC_INS_UDIV,
842
  SPARC_INS_UMAC,
843
  SPARC_INS_UMULCC,
844
  SPARC_INS_UMULXHI,
845
  SPARC_INS_UMUL,
846
  SPARC_INS_UNIMP,
847
  SPARC_INS_FCMPD,
848
  SPARC_INS_FCMPED,
849
  SPARC_INS_FCMPEQ,
850
  SPARC_INS_FCMPES,
851
  SPARC_INS_FCMPQ,
852
  SPARC_INS_FCMPS,
853
  SPARC_INS_WR,
854
  SPARC_INS_WRPR,
855
  SPARC_INS_XMULX,
856
  SPARC_INS_XMULXHI,
857
  SPARC_INS_XNORCC,
858
  SPARC_INS_XNOR,
859
  SPARC_INS_XORCC,
860
  SPARC_INS_XOR,
861
862
  // clang-format on
863
  // generated content <SparcGenCSInsnEnum.inc> end
864
865
  SPARC_INS_ENDING, // <-- mark the end of the list of instructions
866
867
  SPARC_INS_ALIAS_BEGIN,
868
  // generated content <SparcGenCSAliasEnum.inc> begin
869
  // clang-format off
870
871
  SPARC_INS_ALIAS_MOVA, // Real instr.: SPARC_MOVICCrr
872
  SPARC_INS_ALIAS_FMOVSA, // Real instr.: SPARC_FMOVS_ICC
873
  SPARC_INS_ALIAS_FMOVDA, // Real instr.: SPARC_FMOVD_ICC
874
  SPARC_INS_ALIAS_MOVRZ, // Real instr.: SPARC_MOVRrr
875
  SPARC_INS_ALIAS_FMOVRSZ, // Real instr.: SPARC_FMOVRS
876
  SPARC_INS_ALIAS_FMOVRDZ, // Real instr.: SPARC_FMOVRD
877
  SPARC_INS_ALIAS_FMOVRQZ, // Real instr.: SPARC_FMOVRQ
878
  SPARC_INS_ALIAS_BA, // Real instr.: SPARC_BCOND
879
  SPARC_INS_ALIAS_BA_A, // Real instr.: SPARC_BCONDA
880
  SPARC_INS_ALIAS_BA_PT, // Real instr.: SPARC_BPICC
881
  SPARC_INS_ALIAS_BA_A_PT, // Real instr.: SPARC_BPICCA
882
  SPARC_INS_ALIAS_BA_PN, // Real instr.: SPARC_BPICCNT
883
  SPARC_INS_ALIAS_BA_A_PN, // Real instr.: SPARC_BPICCANT
884
  SPARC_INS_ALIAS_FMOVQA, // Real instr.: SPARC_FMOVQ_ICC
885
  SPARC_INS_ALIAS_TA, // Real instr.: SPARC_TICCrr
886
  SPARC_INS_ALIAS_FBA, // Real instr.: SPARC_BPFCC
887
  SPARC_INS_ALIAS_FBA_PT, // Real instr.: SPARC_BPFCC
888
  SPARC_INS_ALIAS_FBA_A, // Real instr.: SPARC_BPFCCA
889
  SPARC_INS_ALIAS_FBA_A_PT, // Real instr.: SPARC_BPFCCA
890
  SPARC_INS_ALIAS_FBA_PN, // Real instr.: SPARC_BPFCCNT
891
  SPARC_INS_ALIAS_FBA_A_PN, // Real instr.: SPARC_BPFCCANT
892
  SPARC_INS_ALIAS_BRZ, // Real instr.: SPARC_BPR
893
  SPARC_INS_ALIAS_BRZ_PT, // Real instr.: SPARC_BPR
894
  SPARC_INS_ALIAS_BRZ_PN, // Real instr.: SPARC_BPRNT
895
  SPARC_INS_ALIAS_BRZ_A, // Real instr.: SPARC_BPRA
896
  SPARC_INS_ALIAS_BRZ_A_PT, // Real instr.: SPARC_BPRA
897
  SPARC_INS_ALIAS_BRZ_A_PN, // Real instr.: SPARC_BPRANT
898
  SPARC_INS_ALIAS_BN, // Real instr.: SPARC_BCOND
899
  SPARC_INS_ALIAS_BN_A, // Real instr.: SPARC_BCONDA
900
  SPARC_INS_ALIAS_BN_PT, // Real instr.: SPARC_BPICC
901
  SPARC_INS_ALIAS_BN_A_PT, // Real instr.: SPARC_BPICCA
902
  SPARC_INS_ALIAS_BN_PN, // Real instr.: SPARC_BPICCNT
903
  SPARC_INS_ALIAS_BN_A_PN, // Real instr.: SPARC_BPICCANT
904
  SPARC_INS_ALIAS_MOVN, // Real instr.: SPARC_MOVICCrr
905
  SPARC_INS_ALIAS_FMOVSN, // Real instr.: SPARC_FMOVS_ICC
906
  SPARC_INS_ALIAS_FMOVDN, // Real instr.: SPARC_FMOVD_ICC
907
  SPARC_INS_ALIAS_FMOVQN, // Real instr.: SPARC_FMOVQ_ICC
908
  SPARC_INS_ALIAS_TN, // Real instr.: SPARC_TICCrr
909
  SPARC_INS_ALIAS_BNE, // Real instr.: SPARC_BCOND
910
  SPARC_INS_ALIAS_BNE_A, // Real instr.: SPARC_BCONDA
911
  SPARC_INS_ALIAS_BNE_PT, // Real instr.: SPARC_BPICC
912
  SPARC_INS_ALIAS_BNE_A_PT, // Real instr.: SPARC_BPICCA
913
  SPARC_INS_ALIAS_BNE_PN, // Real instr.: SPARC_BPICCNT
914
  SPARC_INS_ALIAS_BNE_A_PN, // Real instr.: SPARC_BPICCANT
915
  SPARC_INS_ALIAS_MOVNE, // Real instr.: SPARC_MOVICCrr
916
  SPARC_INS_ALIAS_FMOVSNE, // Real instr.: SPARC_FMOVS_ICC
917
  SPARC_INS_ALIAS_FMOVDNE, // Real instr.: SPARC_FMOVD_ICC
918
  SPARC_INS_ALIAS_FMOVQNE, // Real instr.: SPARC_FMOVQ_ICC
919
  SPARC_INS_ALIAS_TNE, // Real instr.: SPARC_TICCrr
920
  SPARC_INS_ALIAS_BE, // Real instr.: SPARC_BCOND
921
  SPARC_INS_ALIAS_BE_A, // Real instr.: SPARC_BCONDA
922
  SPARC_INS_ALIAS_BE_PT, // Real instr.: SPARC_BPICC
923
  SPARC_INS_ALIAS_BE_A_PT, // Real instr.: SPARC_BPICCA
924
  SPARC_INS_ALIAS_BE_PN, // Real instr.: SPARC_BPICCNT
925
  SPARC_INS_ALIAS_BE_A_PN, // Real instr.: SPARC_BPICCANT
926
  SPARC_INS_ALIAS_MOVE, // Real instr.: SPARC_MOVICCrr
927
  SPARC_INS_ALIAS_FMOVSE, // Real instr.: SPARC_FMOVS_ICC
928
  SPARC_INS_ALIAS_FMOVDE, // Real instr.: SPARC_FMOVD_ICC
929
  SPARC_INS_ALIAS_FMOVQE, // Real instr.: SPARC_FMOVQ_ICC
930
  SPARC_INS_ALIAS_TE, // Real instr.: SPARC_TICCrr
931
  SPARC_INS_ALIAS_BG, // Real instr.: SPARC_BCOND
932
  SPARC_INS_ALIAS_BG_A, // Real instr.: SPARC_BCONDA
933
  SPARC_INS_ALIAS_BG_PT, // Real instr.: SPARC_BPICC
934
  SPARC_INS_ALIAS_BG_A_PT, // Real instr.: SPARC_BPICCA
935
  SPARC_INS_ALIAS_BG_PN, // Real instr.: SPARC_BPICCNT
936
  SPARC_INS_ALIAS_BG_A_PN, // Real instr.: SPARC_BPICCANT
937
  SPARC_INS_ALIAS_MOVG, // Real instr.: SPARC_MOVICCrr
938
  SPARC_INS_ALIAS_FMOVSG, // Real instr.: SPARC_FMOVS_ICC
939
  SPARC_INS_ALIAS_FMOVDG, // Real instr.: SPARC_FMOVD_ICC
940
  SPARC_INS_ALIAS_FMOVQG, // Real instr.: SPARC_FMOVQ_ICC
941
  SPARC_INS_ALIAS_TG, // Real instr.: SPARC_TICCrr
942
  SPARC_INS_ALIAS_BLE, // Real instr.: SPARC_BCOND
943
  SPARC_INS_ALIAS_BLE_A, // Real instr.: SPARC_BCONDA
944
  SPARC_INS_ALIAS_BLE_PT, // Real instr.: SPARC_BPICC
945
  SPARC_INS_ALIAS_BLE_A_PT, // Real instr.: SPARC_BPICCA
946
  SPARC_INS_ALIAS_BLE_PN, // Real instr.: SPARC_BPICCNT
947
  SPARC_INS_ALIAS_BLE_A_PN, // Real instr.: SPARC_BPICCANT
948
  SPARC_INS_ALIAS_MOVLE, // Real instr.: SPARC_MOVICCrr
949
  SPARC_INS_ALIAS_FMOVSLE, // Real instr.: SPARC_FMOVS_ICC
950
  SPARC_INS_ALIAS_FMOVDLE, // Real instr.: SPARC_FMOVD_ICC
951
  SPARC_INS_ALIAS_FMOVQLE, // Real instr.: SPARC_FMOVQ_ICC
952
  SPARC_INS_ALIAS_TLE, // Real instr.: SPARC_TICCrr
953
  SPARC_INS_ALIAS_BGE, // Real instr.: SPARC_BCOND
954
  SPARC_INS_ALIAS_BGE_A, // Real instr.: SPARC_BCONDA
955
  SPARC_INS_ALIAS_BGE_PT, // Real instr.: SPARC_BPICC
956
  SPARC_INS_ALIAS_BGE_A_PT, // Real instr.: SPARC_BPICCA
957
  SPARC_INS_ALIAS_BGE_PN, // Real instr.: SPARC_BPICCNT
958
  SPARC_INS_ALIAS_BGE_A_PN, // Real instr.: SPARC_BPICCANT
959
  SPARC_INS_ALIAS_MOVGE, // Real instr.: SPARC_MOVICCrr
960
  SPARC_INS_ALIAS_FMOVSGE, // Real instr.: SPARC_FMOVS_ICC
961
  SPARC_INS_ALIAS_FMOVDGE, // Real instr.: SPARC_FMOVD_ICC
962
  SPARC_INS_ALIAS_FMOVQGE, // Real instr.: SPARC_FMOVQ_ICC
963
  SPARC_INS_ALIAS_TGE, // Real instr.: SPARC_TICCrr
964
  SPARC_INS_ALIAS_BL, // Real instr.: SPARC_BCOND
965
  SPARC_INS_ALIAS_BL_A, // Real instr.: SPARC_BCONDA
966
  SPARC_INS_ALIAS_BL_PT, // Real instr.: SPARC_BPICC
967
  SPARC_INS_ALIAS_BL_A_PT, // Real instr.: SPARC_BPICCA
968
  SPARC_INS_ALIAS_BL_PN, // Real instr.: SPARC_BPICCNT
969
  SPARC_INS_ALIAS_BL_A_PN, // Real instr.: SPARC_BPICCANT
970
  SPARC_INS_ALIAS_MOVL, // Real instr.: SPARC_MOVICCrr
971
  SPARC_INS_ALIAS_FMOVSL, // Real instr.: SPARC_FMOVS_ICC
972
  SPARC_INS_ALIAS_FMOVDL, // Real instr.: SPARC_FMOVD_ICC
973
  SPARC_INS_ALIAS_FMOVQL, // Real instr.: SPARC_FMOVQ_ICC
974
  SPARC_INS_ALIAS_TL, // Real instr.: SPARC_TICCrr
975
  SPARC_INS_ALIAS_BGU, // Real instr.: SPARC_BCOND
976
  SPARC_INS_ALIAS_BGU_A, // Real instr.: SPARC_BCONDA
977
  SPARC_INS_ALIAS_BGU_PT, // Real instr.: SPARC_BPICC
978
  SPARC_INS_ALIAS_BGU_A_PT, // Real instr.: SPARC_BPICCA
979
  SPARC_INS_ALIAS_BGU_PN, // Real instr.: SPARC_BPICCNT
980
  SPARC_INS_ALIAS_BGU_A_PN, // Real instr.: SPARC_BPICCANT
981
  SPARC_INS_ALIAS_MOVGU, // Real instr.: SPARC_MOVICCrr
982
  SPARC_INS_ALIAS_FMOVSGU, // Real instr.: SPARC_FMOVS_ICC
983
  SPARC_INS_ALIAS_FMOVDGU, // Real instr.: SPARC_FMOVD_ICC
984
  SPARC_INS_ALIAS_FMOVQGU, // Real instr.: SPARC_FMOVQ_ICC
985
  SPARC_INS_ALIAS_TGU, // Real instr.: SPARC_TICCrr
986
  SPARC_INS_ALIAS_BLEU, // Real instr.: SPARC_BCOND
987
  SPARC_INS_ALIAS_BLEU_A, // Real instr.: SPARC_BCONDA
988
  SPARC_INS_ALIAS_BLEU_PT, // Real instr.: SPARC_BPICC
989
  SPARC_INS_ALIAS_BLEU_A_PT, // Real instr.: SPARC_BPICCA
990
  SPARC_INS_ALIAS_BLEU_PN, // Real instr.: SPARC_BPICCNT
991
  SPARC_INS_ALIAS_BLEU_A_PN, // Real instr.: SPARC_BPICCANT
992
  SPARC_INS_ALIAS_MOVLEU, // Real instr.: SPARC_MOVICCrr
993
  SPARC_INS_ALIAS_FMOVSLEU, // Real instr.: SPARC_FMOVS_ICC
994
  SPARC_INS_ALIAS_FMOVDLEU, // Real instr.: SPARC_FMOVD_ICC
995
  SPARC_INS_ALIAS_FMOVQLEU, // Real instr.: SPARC_FMOVQ_ICC
996
  SPARC_INS_ALIAS_TLEU, // Real instr.: SPARC_TICCrr
997
  SPARC_INS_ALIAS_BCC, // Real instr.: SPARC_BCOND
998
  SPARC_INS_ALIAS_BCC_A, // Real instr.: SPARC_BCONDA
999
  SPARC_INS_ALIAS_BCC_PT, // Real instr.: SPARC_BPICC
1000
  SPARC_INS_ALIAS_BCC_A_PT, // Real instr.: SPARC_BPICCA
1001
  SPARC_INS_ALIAS_BCC_PN, // Real instr.: SPARC_BPICCNT
1002
  SPARC_INS_ALIAS_BCC_A_PN, // Real instr.: SPARC_BPICCANT
1003
  SPARC_INS_ALIAS_MOVCC, // Real instr.: SPARC_MOVICCrr
1004
  SPARC_INS_ALIAS_FMOVSCC, // Real instr.: SPARC_FMOVS_ICC
1005
  SPARC_INS_ALIAS_FMOVDCC, // Real instr.: SPARC_FMOVD_ICC
1006
  SPARC_INS_ALIAS_FMOVQCC, // Real instr.: SPARC_FMOVQ_ICC
1007
  SPARC_INS_ALIAS_TCC, // Real instr.: SPARC_TICCrr
1008
  SPARC_INS_ALIAS_BCS, // Real instr.: SPARC_BCOND
1009
  SPARC_INS_ALIAS_BCS_A, // Real instr.: SPARC_BCONDA
1010
  SPARC_INS_ALIAS_BCS_PT, // Real instr.: SPARC_BPICC
1011
  SPARC_INS_ALIAS_BCS_A_PT, // Real instr.: SPARC_BPICCA
1012
  SPARC_INS_ALIAS_BCS_PN, // Real instr.: SPARC_BPICCNT
1013
  SPARC_INS_ALIAS_BCS_A_PN, // Real instr.: SPARC_BPICCANT
1014
  SPARC_INS_ALIAS_MOVCS, // Real instr.: SPARC_MOVICCrr
1015
  SPARC_INS_ALIAS_FMOVSCS, // Real instr.: SPARC_FMOVS_ICC
1016
  SPARC_INS_ALIAS_FMOVDCS, // Real instr.: SPARC_FMOVD_ICC
1017
  SPARC_INS_ALIAS_FMOVQCS, // Real instr.: SPARC_FMOVQ_ICC
1018
  SPARC_INS_ALIAS_TCS, // Real instr.: SPARC_TICCrr
1019
  SPARC_INS_ALIAS_BPOS, // Real instr.: SPARC_BCOND
1020
  SPARC_INS_ALIAS_BPOS_A, // Real instr.: SPARC_BCONDA
1021
  SPARC_INS_ALIAS_BPOS_PT, // Real instr.: SPARC_BPICC
1022
  SPARC_INS_ALIAS_BPOS_A_PT, // Real instr.: SPARC_BPICCA
1023
  SPARC_INS_ALIAS_BPOS_PN, // Real instr.: SPARC_BPICCNT
1024
  SPARC_INS_ALIAS_BPOS_A_PN, // Real instr.: SPARC_BPICCANT
1025
  SPARC_INS_ALIAS_MOVPOS, // Real instr.: SPARC_MOVICCrr
1026
  SPARC_INS_ALIAS_FMOVSPOS, // Real instr.: SPARC_FMOVS_ICC
1027
  SPARC_INS_ALIAS_FMOVDPOS, // Real instr.: SPARC_FMOVD_ICC
1028
  SPARC_INS_ALIAS_FMOVQPOS, // Real instr.: SPARC_FMOVQ_ICC
1029
  SPARC_INS_ALIAS_TPOS, // Real instr.: SPARC_TICCrr
1030
  SPARC_INS_ALIAS_BNEG, // Real instr.: SPARC_BCOND
1031
  SPARC_INS_ALIAS_BNEG_A, // Real instr.: SPARC_BCONDA
1032
  SPARC_INS_ALIAS_BNEG_PT, // Real instr.: SPARC_BPICC
1033
  SPARC_INS_ALIAS_BNEG_A_PT, // Real instr.: SPARC_BPICCA
1034
  SPARC_INS_ALIAS_BNEG_PN, // Real instr.: SPARC_BPICCNT
1035
  SPARC_INS_ALIAS_BNEG_A_PN, // Real instr.: SPARC_BPICCANT
1036
  SPARC_INS_ALIAS_MOVNEG, // Real instr.: SPARC_MOVICCrr
1037
  SPARC_INS_ALIAS_FMOVSNEG, // Real instr.: SPARC_FMOVS_ICC
1038
  SPARC_INS_ALIAS_FMOVDNEG, // Real instr.: SPARC_FMOVD_ICC
1039
  SPARC_INS_ALIAS_FMOVQNEG, // Real instr.: SPARC_FMOVQ_ICC
1040
  SPARC_INS_ALIAS_TNEG, // Real instr.: SPARC_TICCrr
1041
  SPARC_INS_ALIAS_BVC, // Real instr.: SPARC_BCOND
1042
  SPARC_INS_ALIAS_BVC_A, // Real instr.: SPARC_BCONDA
1043
  SPARC_INS_ALIAS_BVC_PT, // Real instr.: SPARC_BPICC
1044
  SPARC_INS_ALIAS_BVC_A_PT, // Real instr.: SPARC_BPICCA
1045
  SPARC_INS_ALIAS_BVC_PN, // Real instr.: SPARC_BPICCNT
1046
  SPARC_INS_ALIAS_BVC_A_PN, // Real instr.: SPARC_BPICCANT
1047
  SPARC_INS_ALIAS_MOVVC, // Real instr.: SPARC_MOVICCrr
1048
  SPARC_INS_ALIAS_FMOVSVC, // Real instr.: SPARC_FMOVS_ICC
1049
  SPARC_INS_ALIAS_FMOVDVC, // Real instr.: SPARC_FMOVD_ICC
1050
  SPARC_INS_ALIAS_FMOVQVC, // Real instr.: SPARC_FMOVQ_ICC
1051
  SPARC_INS_ALIAS_TVC, // Real instr.: SPARC_TICCrr
1052
  SPARC_INS_ALIAS_BVS, // Real instr.: SPARC_BCOND
1053
  SPARC_INS_ALIAS_BVS_A, // Real instr.: SPARC_BCONDA
1054
  SPARC_INS_ALIAS_BVS_PT, // Real instr.: SPARC_BPICC
1055
  SPARC_INS_ALIAS_BVS_A_PT, // Real instr.: SPARC_BPICCA
1056
  SPARC_INS_ALIAS_BVS_PN, // Real instr.: SPARC_BPICCNT
1057
  SPARC_INS_ALIAS_BVS_A_PN, // Real instr.: SPARC_BPICCANT
1058
  SPARC_INS_ALIAS_MOVVS, // Real instr.: SPARC_MOVICCrr
1059
  SPARC_INS_ALIAS_FMOVSVS, // Real instr.: SPARC_FMOVS_ICC
1060
  SPARC_INS_ALIAS_FMOVDVS, // Real instr.: SPARC_FMOVD_ICC
1061
  SPARC_INS_ALIAS_FMOVQVS, // Real instr.: SPARC_FMOVQ_ICC
1062
  SPARC_INS_ALIAS_TVS, // Real instr.: SPARC_TICCrr
1063
  SPARC_INS_ALIAS_FBN, // Real instr.: SPARC_BPFCC
1064
  SPARC_INS_ALIAS_FBN_PT, // Real instr.: SPARC_BPFCC
1065
  SPARC_INS_ALIAS_FBN_A, // Real instr.: SPARC_BPFCCA
1066
  SPARC_INS_ALIAS_FBN_A_PT, // Real instr.: SPARC_BPFCCA
1067
  SPARC_INS_ALIAS_FBN_PN, // Real instr.: SPARC_BPFCCNT
1068
  SPARC_INS_ALIAS_FBN_A_PN, // Real instr.: SPARC_BPFCCANT
1069
  SPARC_INS_ALIAS_FBU, // Real instr.: SPARC_BPFCC
1070
  SPARC_INS_ALIAS_FBU_PT, // Real instr.: SPARC_BPFCC
1071
  SPARC_INS_ALIAS_FBU_A, // Real instr.: SPARC_BPFCCA
1072
  SPARC_INS_ALIAS_FBU_A_PT, // Real instr.: SPARC_BPFCCA
1073
  SPARC_INS_ALIAS_FBU_PN, // Real instr.: SPARC_BPFCCNT
1074
  SPARC_INS_ALIAS_FBU_A_PN, // Real instr.: SPARC_BPFCCANT
1075
  SPARC_INS_ALIAS_MOVU, // Real instr.: SPARC_V9MOVFCCrr
1076
  SPARC_INS_ALIAS_FMOVSU, // Real instr.: SPARC_V9FMOVS_FCC
1077
  SPARC_INS_ALIAS_FMOVDU, // Real instr.: SPARC_V9FMOVD_FCC
1078
  SPARC_INS_ALIAS_FMOVQU, // Real instr.: SPARC_V9FMOVQ_FCC
1079
  SPARC_INS_ALIAS_FBG, // Real instr.: SPARC_BPFCC
1080
  SPARC_INS_ALIAS_FBG_PT, // Real instr.: SPARC_BPFCC
1081
  SPARC_INS_ALIAS_FBG_A, // Real instr.: SPARC_BPFCCA
1082
  SPARC_INS_ALIAS_FBG_A_PT, // Real instr.: SPARC_BPFCCA
1083
  SPARC_INS_ALIAS_FBG_PN, // Real instr.: SPARC_BPFCCNT
1084
  SPARC_INS_ALIAS_FBG_A_PN, // Real instr.: SPARC_BPFCCANT
1085
  SPARC_INS_ALIAS_FBUG, // Real instr.: SPARC_BPFCC
1086
  SPARC_INS_ALIAS_FBUG_PT, // Real instr.: SPARC_BPFCC
1087
  SPARC_INS_ALIAS_FBUG_A, // Real instr.: SPARC_BPFCCA
1088
  SPARC_INS_ALIAS_FBUG_A_PT, // Real instr.: SPARC_BPFCCA
1089
  SPARC_INS_ALIAS_FBUG_PN, // Real instr.: SPARC_BPFCCNT
1090
  SPARC_INS_ALIAS_FBUG_A_PN, // Real instr.: SPARC_BPFCCANT
1091
  SPARC_INS_ALIAS_MOVUG, // Real instr.: SPARC_V9MOVFCCrr
1092
  SPARC_INS_ALIAS_FMOVSUG, // Real instr.: SPARC_V9FMOVS_FCC
1093
  SPARC_INS_ALIAS_FMOVDUG, // Real instr.: SPARC_V9FMOVD_FCC
1094
  SPARC_INS_ALIAS_FMOVQUG, // Real instr.: SPARC_V9FMOVQ_FCC
1095
  SPARC_INS_ALIAS_FBL, // Real instr.: SPARC_BPFCC
1096
  SPARC_INS_ALIAS_FBL_PT, // Real instr.: SPARC_BPFCC
1097
  SPARC_INS_ALIAS_FBL_A, // Real instr.: SPARC_BPFCCA
1098
  SPARC_INS_ALIAS_FBL_A_PT, // Real instr.: SPARC_BPFCCA
1099
  SPARC_INS_ALIAS_FBL_PN, // Real instr.: SPARC_BPFCCNT
1100
  SPARC_INS_ALIAS_FBL_A_PN, // Real instr.: SPARC_BPFCCANT
1101
  SPARC_INS_ALIAS_FBUL, // Real instr.: SPARC_BPFCC
1102
  SPARC_INS_ALIAS_FBUL_PT, // Real instr.: SPARC_BPFCC
1103
  SPARC_INS_ALIAS_FBUL_A, // Real instr.: SPARC_BPFCCA
1104
  SPARC_INS_ALIAS_FBUL_A_PT, // Real instr.: SPARC_BPFCCA
1105
  SPARC_INS_ALIAS_FBUL_PN, // Real instr.: SPARC_BPFCCNT
1106
  SPARC_INS_ALIAS_FBUL_A_PN, // Real instr.: SPARC_BPFCCANT
1107
  SPARC_INS_ALIAS_MOVUL, // Real instr.: SPARC_V9MOVFCCrr
1108
  SPARC_INS_ALIAS_FMOVSUL, // Real instr.: SPARC_V9FMOVS_FCC
1109
  SPARC_INS_ALIAS_FMOVDUL, // Real instr.: SPARC_V9FMOVD_FCC
1110
  SPARC_INS_ALIAS_FMOVQUL, // Real instr.: SPARC_V9FMOVQ_FCC
1111
  SPARC_INS_ALIAS_FBLG, // Real instr.: SPARC_BPFCC
1112
  SPARC_INS_ALIAS_FBLG_PT, // Real instr.: SPARC_BPFCC
1113
  SPARC_INS_ALIAS_FBLG_A, // Real instr.: SPARC_BPFCCA
1114
  SPARC_INS_ALIAS_FBLG_A_PT, // Real instr.: SPARC_BPFCCA
1115
  SPARC_INS_ALIAS_FBLG_PN, // Real instr.: SPARC_BPFCCNT
1116
  SPARC_INS_ALIAS_FBLG_A_PN, // Real instr.: SPARC_BPFCCANT
1117
  SPARC_INS_ALIAS_MOVLG, // Real instr.: SPARC_V9MOVFCCrr
1118
  SPARC_INS_ALIAS_FMOVSLG, // Real instr.: SPARC_V9FMOVS_FCC
1119
  SPARC_INS_ALIAS_FMOVDLG, // Real instr.: SPARC_V9FMOVD_FCC
1120
  SPARC_INS_ALIAS_FMOVQLG, // Real instr.: SPARC_V9FMOVQ_FCC
1121
  SPARC_INS_ALIAS_FBNE, // Real instr.: SPARC_BPFCC
1122
  SPARC_INS_ALIAS_FBNE_PT, // Real instr.: SPARC_BPFCC
1123
  SPARC_INS_ALIAS_FBNE_A, // Real instr.: SPARC_BPFCCA
1124
  SPARC_INS_ALIAS_FBNE_A_PT, // Real instr.: SPARC_BPFCCA
1125
  SPARC_INS_ALIAS_FBNE_PN, // Real instr.: SPARC_BPFCCNT
1126
  SPARC_INS_ALIAS_FBNE_A_PN, // Real instr.: SPARC_BPFCCANT
1127
  SPARC_INS_ALIAS_FBE, // Real instr.: SPARC_BPFCC
1128
  SPARC_INS_ALIAS_FBE_PT, // Real instr.: SPARC_BPFCC
1129
  SPARC_INS_ALIAS_FBE_A, // Real instr.: SPARC_BPFCCA
1130
  SPARC_INS_ALIAS_FBE_A_PT, // Real instr.: SPARC_BPFCCA
1131
  SPARC_INS_ALIAS_FBE_PN, // Real instr.: SPARC_BPFCCNT
1132
  SPARC_INS_ALIAS_FBE_A_PN, // Real instr.: SPARC_BPFCCANT
1133
  SPARC_INS_ALIAS_FBUE, // Real instr.: SPARC_BPFCC
1134
  SPARC_INS_ALIAS_FBUE_PT, // Real instr.: SPARC_BPFCC
1135
  SPARC_INS_ALIAS_FBUE_A, // Real instr.: SPARC_BPFCCA
1136
  SPARC_INS_ALIAS_FBUE_A_PT, // Real instr.: SPARC_BPFCCA
1137
  SPARC_INS_ALIAS_FBUE_PN, // Real instr.: SPARC_BPFCCNT
1138
  SPARC_INS_ALIAS_FBUE_A_PN, // Real instr.: SPARC_BPFCCANT
1139
  SPARC_INS_ALIAS_MOVUE, // Real instr.: SPARC_V9MOVFCCrr
1140
  SPARC_INS_ALIAS_FMOVSUE, // Real instr.: SPARC_V9FMOVS_FCC
1141
  SPARC_INS_ALIAS_FMOVDUE, // Real instr.: SPARC_V9FMOVD_FCC
1142
  SPARC_INS_ALIAS_FMOVQUE, // Real instr.: SPARC_V9FMOVQ_FCC
1143
  SPARC_INS_ALIAS_FBGE, // Real instr.: SPARC_BPFCC
1144
  SPARC_INS_ALIAS_FBGE_PT, // Real instr.: SPARC_BPFCC
1145
  SPARC_INS_ALIAS_FBGE_A, // Real instr.: SPARC_BPFCCA
1146
  SPARC_INS_ALIAS_FBGE_A_PT, // Real instr.: SPARC_BPFCCA
1147
  SPARC_INS_ALIAS_FBGE_PN, // Real instr.: SPARC_BPFCCNT
1148
  SPARC_INS_ALIAS_FBGE_A_PN, // Real instr.: SPARC_BPFCCANT
1149
  SPARC_INS_ALIAS_FBUGE, // Real instr.: SPARC_BPFCC
1150
  SPARC_INS_ALIAS_FBUGE_PT, // Real instr.: SPARC_BPFCC
1151
  SPARC_INS_ALIAS_FBUGE_A, // Real instr.: SPARC_BPFCCA
1152
  SPARC_INS_ALIAS_FBUGE_A_PT, // Real instr.: SPARC_BPFCCA
1153
  SPARC_INS_ALIAS_FBUGE_PN, // Real instr.: SPARC_BPFCCNT
1154
  SPARC_INS_ALIAS_FBUGE_A_PN, // Real instr.: SPARC_BPFCCANT
1155
  SPARC_INS_ALIAS_MOVUGE, // Real instr.: SPARC_V9MOVFCCrr
1156
  SPARC_INS_ALIAS_FMOVSUGE, // Real instr.: SPARC_V9FMOVS_FCC
1157
  SPARC_INS_ALIAS_FMOVDUGE, // Real instr.: SPARC_V9FMOVD_FCC
1158
  SPARC_INS_ALIAS_FMOVQUGE, // Real instr.: SPARC_V9FMOVQ_FCC
1159
  SPARC_INS_ALIAS_FBLE, // Real instr.: SPARC_BPFCC
1160
  SPARC_INS_ALIAS_FBLE_PT, // Real instr.: SPARC_BPFCC
1161
  SPARC_INS_ALIAS_FBLE_A, // Real instr.: SPARC_BPFCCA
1162
  SPARC_INS_ALIAS_FBLE_A_PT, // Real instr.: SPARC_BPFCCA
1163
  SPARC_INS_ALIAS_FBLE_PN, // Real instr.: SPARC_BPFCCNT
1164
  SPARC_INS_ALIAS_FBLE_A_PN, // Real instr.: SPARC_BPFCCANT
1165
  SPARC_INS_ALIAS_FBULE, // Real instr.: SPARC_BPFCC
1166
  SPARC_INS_ALIAS_FBULE_PT, // Real instr.: SPARC_BPFCC
1167
  SPARC_INS_ALIAS_FBULE_A, // Real instr.: SPARC_BPFCCA
1168
  SPARC_INS_ALIAS_FBULE_A_PT, // Real instr.: SPARC_BPFCCA
1169
  SPARC_INS_ALIAS_FBULE_PN, // Real instr.: SPARC_BPFCCNT
1170
  SPARC_INS_ALIAS_FBULE_A_PN, // Real instr.: SPARC_BPFCCANT
1171
  SPARC_INS_ALIAS_MOVULE, // Real instr.: SPARC_V9MOVFCCrr
1172
  SPARC_INS_ALIAS_FMOVSULE, // Real instr.: SPARC_V9FMOVS_FCC
1173
  SPARC_INS_ALIAS_FMOVDULE, // Real instr.: SPARC_V9FMOVD_FCC
1174
  SPARC_INS_ALIAS_FMOVQULE, // Real instr.: SPARC_V9FMOVQ_FCC
1175
  SPARC_INS_ALIAS_FBO, // Real instr.: SPARC_BPFCC
1176
  SPARC_INS_ALIAS_FBO_PT, // Real instr.: SPARC_BPFCC
1177
  SPARC_INS_ALIAS_FBO_A, // Real instr.: SPARC_BPFCCA
1178
  SPARC_INS_ALIAS_FBO_A_PT, // Real instr.: SPARC_BPFCCA
1179
  SPARC_INS_ALIAS_FBO_PN, // Real instr.: SPARC_BPFCCNT
1180
  SPARC_INS_ALIAS_FBO_A_PN, // Real instr.: SPARC_BPFCCANT
1181
  SPARC_INS_ALIAS_MOVO, // Real instr.: SPARC_V9MOVFCCrr
1182
  SPARC_INS_ALIAS_FMOVSO, // Real instr.: SPARC_V9FMOVS_FCC
1183
  SPARC_INS_ALIAS_FMOVDO, // Real instr.: SPARC_V9FMOVD_FCC
1184
  SPARC_INS_ALIAS_FMOVQO, // Real instr.: SPARC_V9FMOVQ_FCC
1185
  SPARC_INS_ALIAS_BRLEZ, // Real instr.: SPARC_BPR
1186
  SPARC_INS_ALIAS_BRLEZ_PT, // Real instr.: SPARC_BPR
1187
  SPARC_INS_ALIAS_BRLEZ_PN, // Real instr.: SPARC_BPRNT
1188
  SPARC_INS_ALIAS_BRLEZ_A, // Real instr.: SPARC_BPRA
1189
  SPARC_INS_ALIAS_BRLEZ_A_PT, // Real instr.: SPARC_BPRA
1190
  SPARC_INS_ALIAS_BRLEZ_A_PN, // Real instr.: SPARC_BPRANT
1191
  SPARC_INS_ALIAS_MOVRLEZ, // Real instr.: SPARC_MOVRrr
1192
  SPARC_INS_ALIAS_FMOVRSLEZ, // Real instr.: SPARC_FMOVRS
1193
  SPARC_INS_ALIAS_FMOVRDLEZ, // Real instr.: SPARC_FMOVRD
1194
  SPARC_INS_ALIAS_FMOVRQLEZ, // Real instr.: SPARC_FMOVRQ
1195
  SPARC_INS_ALIAS_BRLZ, // Real instr.: SPARC_BPR
1196
  SPARC_INS_ALIAS_BRLZ_PT, // Real instr.: SPARC_BPR
1197
  SPARC_INS_ALIAS_BRLZ_PN, // Real instr.: SPARC_BPRNT
1198
  SPARC_INS_ALIAS_BRLZ_A, // Real instr.: SPARC_BPRA
1199
  SPARC_INS_ALIAS_BRLZ_A_PT, // Real instr.: SPARC_BPRA
1200
  SPARC_INS_ALIAS_BRLZ_A_PN, // Real instr.: SPARC_BPRANT
1201
  SPARC_INS_ALIAS_MOVRLZ, // Real instr.: SPARC_MOVRrr
1202
  SPARC_INS_ALIAS_FMOVRSLZ, // Real instr.: SPARC_FMOVRS
1203
  SPARC_INS_ALIAS_FMOVRDLZ, // Real instr.: SPARC_FMOVRD
1204
  SPARC_INS_ALIAS_FMOVRQLZ, // Real instr.: SPARC_FMOVRQ
1205
  SPARC_INS_ALIAS_BRNZ, // Real instr.: SPARC_BPR
1206
  SPARC_INS_ALIAS_BRNZ_PT, // Real instr.: SPARC_BPR
1207
  SPARC_INS_ALIAS_BRNZ_PN, // Real instr.: SPARC_BPRNT
1208
  SPARC_INS_ALIAS_BRNZ_A, // Real instr.: SPARC_BPRA
1209
  SPARC_INS_ALIAS_BRNZ_A_PT, // Real instr.: SPARC_BPRA
1210
  SPARC_INS_ALIAS_BRNZ_A_PN, // Real instr.: SPARC_BPRANT
1211
  SPARC_INS_ALIAS_MOVRNZ, // Real instr.: SPARC_MOVRrr
1212
  SPARC_INS_ALIAS_FMOVRSNZ, // Real instr.: SPARC_FMOVRS
1213
  SPARC_INS_ALIAS_FMOVRDNZ, // Real instr.: SPARC_FMOVRD
1214
  SPARC_INS_ALIAS_FMOVRQNZ, // Real instr.: SPARC_FMOVRQ
1215
  SPARC_INS_ALIAS_BRGZ, // Real instr.: SPARC_BPR
1216
  SPARC_INS_ALIAS_BRGZ_PT, // Real instr.: SPARC_BPR
1217
  SPARC_INS_ALIAS_BRGZ_PN, // Real instr.: SPARC_BPRNT
1218
  SPARC_INS_ALIAS_BRGZ_A, // Real instr.: SPARC_BPRA
1219
  SPARC_INS_ALIAS_BRGZ_A_PT, // Real instr.: SPARC_BPRA
1220
  SPARC_INS_ALIAS_BRGZ_A_PN, // Real instr.: SPARC_BPRANT
1221
  SPARC_INS_ALIAS_MOVRGZ, // Real instr.: SPARC_MOVRrr
1222
  SPARC_INS_ALIAS_FMOVRSGZ, // Real instr.: SPARC_FMOVRS
1223
  SPARC_INS_ALIAS_FMOVRDGZ, // Real instr.: SPARC_FMOVRD
1224
  SPARC_INS_ALIAS_FMOVRQGZ, // Real instr.: SPARC_FMOVRQ
1225
  SPARC_INS_ALIAS_BRGEZ, // Real instr.: SPARC_BPR
1226
  SPARC_INS_ALIAS_BRGEZ_PT, // Real instr.: SPARC_BPR
1227
  SPARC_INS_ALIAS_BRGEZ_PN, // Real instr.: SPARC_BPRNT
1228
  SPARC_INS_ALIAS_BRGEZ_A, // Real instr.: SPARC_BPRA
1229
  SPARC_INS_ALIAS_BRGEZ_A_PT, // Real instr.: SPARC_BPRA
1230
  SPARC_INS_ALIAS_BRGEZ_A_PN, // Real instr.: SPARC_BPRANT
1231
  SPARC_INS_ALIAS_MOVRGEZ, // Real instr.: SPARC_MOVRrr
1232
  SPARC_INS_ALIAS_FMOVRSGEZ, // Real instr.: SPARC_FMOVRS
1233
  SPARC_INS_ALIAS_FMOVRDGEZ, // Real instr.: SPARC_FMOVRD
1234
  SPARC_INS_ALIAS_FMOVRQGEZ, // Real instr.: SPARC_FMOVRQ
1235
  SPARC_INS_ALIAS_CMP, // Real instr.: SPARC_SUBCCrr
1236
  SPARC_INS_ALIAS_TST, // Real instr.: SPARC_ORCCrr
1237
  SPARC_INS_ALIAS_RET, // Real instr.: SPARC_RET
1238
  SPARC_INS_ALIAS_RETL, // Real instr.: SPARC_RETL
1239
  SPARC_INS_ALIAS_RESTORE, // Real instr.: SPARC_RESTORErr
1240
  SPARC_INS_ALIAS_SAVE, // Real instr.: SPARC_SAVErr
1241
  SPARC_INS_ALIAS_CAS, // Real instr.: SPARC_CASArr
1242
  SPARC_INS_ALIAS_CASL, // Real instr.: SPARC_CASArr
1243
  SPARC_INS_ALIAS_CASX, // Real instr.: SPARC_CASXArr
1244
  SPARC_INS_ALIAS_CASXL, // Real instr.: SPARC_CASXArr
1245
  SPARC_INS_ALIAS_MOV, // Real instr.: SPARC_ORrr
1246
  SPARC_INS_ALIAS_FCMPS, // Real instr.: SPARC_V9FCMPS
1247
  SPARC_INS_ALIAS_FCMPD, // Real instr.: SPARC_V9FCMPD
1248
  SPARC_INS_ALIAS_FCMPQ, // Real instr.: SPARC_V9FCMPQ
1249
  SPARC_INS_ALIAS_FCMPES, // Real instr.: SPARC_V9FCMPES
1250
  SPARC_INS_ALIAS_FCMPED, // Real instr.: SPARC_V9FCMPED
1251
  SPARC_INS_ALIAS_FCMPEQ, // Real instr.: SPARC_V9FCMPEQ
1252
1253
  // clang-format on
1254
  // generated content <SparcGenCSAliasEnum.inc> end
1255
1256
  SPARC_INS_ALIAS_CALL, // Real instr.: SPARC_INS_JMPL
1257
1258
  SPARC_INS_ALIAS_END,
1259
} sparc_insn;
1260
1261
/// Group of SPARC instructions
1262
typedef enum sparc_insn_group {
1263
  // Generic groups
1264
  // all jump instructions (conditional+direct+indirect jumps)
1265
  SPARC_GRP_INVALID = 0, ///< = CS_GRP_INVALID = 0
1266
  SPARC_GRP_JUMP, ///< = CS_GRP_JUMP
1267
  SPARC_GRP_CALL, ///< = CS_GRP_CALL
1268
  SPARC_GRP_RET, ///< = CS_GRP_RET
1269
  SPARC_GRP_INT, ///< = CS_GRP_INT
1270
  SPARC_GRP_IRET, ///< = CS_GRP_IRET
1271
  SPARC_GRP_PRIVILEGE, ///< = CS_GRP_PRIVILEGE
1272
  SPARC_GRP_BRANCH_RELATIVE, ///< = CS_GRP_BRANCH_RELATIVE
1273
1274
  // Architecture-specific groups
1275
  // generated content <SparcGenCSFeatureEnum.inc> begin
1276
  // clang-format off
1277
1278
  SPARC_FEATURE_IS64BIT = 128,
1279
  SPARC_FEATURE_USESOFTMULDIV,
1280
  SPARC_FEATURE_HASV9,
1281
  SPARC_FEATURE_HASVIS,
1282
  SPARC_FEATURE_HASVIS2,
1283
  SPARC_FEATURE_HASVIS3,
1284
  SPARC_FEATURE_HASCASA,
1285
  SPARC_FEATURE_HASPWRPSR,
1286
1287
  // clang-format on
1288
  // generated content <SparcGenCSFeatureEnum.inc> end
1289
1290
  SPARC_GRP_ENDING,   // <-- mark the end of the list of groups
1291
} sparc_insn_group;
1292
1293
#ifdef __cplusplus
1294
}
1295
#endif
1296
1297
#endif