Coverage Report

Created: 2023-12-08 06:05

/src/capstonenext/arch/SystemZ/SystemZMapping.c
Line
Count
Source (jump to first uncovered line)
1
/* Capstone Disassembly Engine */
2
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */
3
4
#ifdef CAPSTONE_HAS_SYSZ
5
6
#include <stdio.h>  // debug
7
#include <string.h>
8
9
#include "../../Mapping.h"
10
#include "../../utils.h"
11
12
#include "SystemZMapping.h"
13
14
#define GET_INSTRINFO_ENUM
15
#include "SystemZGenInstrInfo.inc"
16
17
#ifndef CAPSTONE_DIET
18
static const name_map reg_name_maps[] = {
19
  { SYSZ_REG_INVALID, NULL },
20
21
  { SYSZ_REG_0, "0" },
22
  { SYSZ_REG_1, "1" },
23
  { SYSZ_REG_2, "2" },
24
  { SYSZ_REG_3, "3" },
25
  { SYSZ_REG_4, "4" },
26
  { SYSZ_REG_5, "5" },
27
  { SYSZ_REG_6, "6" },
28
  { SYSZ_REG_7, "7" },
29
  { SYSZ_REG_8, "8" },
30
  { SYSZ_REG_9, "9" },
31
  { SYSZ_REG_10, "10" },
32
  { SYSZ_REG_11, "11" },
33
  { SYSZ_REG_12, "12" },
34
  { SYSZ_REG_13, "13" },
35
  { SYSZ_REG_14, "14" },
36
  { SYSZ_REG_15, "15" },
37
  { SYSZ_REG_CC, "cc"},
38
  { SYSZ_REG_F0, "f0" },
39
  { SYSZ_REG_F1, "f1" },
40
  { SYSZ_REG_F2, "f2" },
41
  { SYSZ_REG_F3, "f3" },
42
  { SYSZ_REG_F4, "f4" },
43
  { SYSZ_REG_F5, "f5" },
44
  { SYSZ_REG_F6, "f6" },
45
  { SYSZ_REG_F7, "f7" },
46
  { SYSZ_REG_F8, "f8" },
47
  { SYSZ_REG_F9, "f9" },
48
  { SYSZ_REG_F10, "f10" },
49
  { SYSZ_REG_F11, "f11" },
50
  { SYSZ_REG_F12, "f12" },
51
  { SYSZ_REG_F13, "f13" },
52
  { SYSZ_REG_F14, "f14" },
53
  { SYSZ_REG_F15, "f15" },
54
  { SYSZ_REG_R0L, "r0l" },
55
  { SYSZ_REG_A0, "a0" },
56
  { SYSZ_REG_A1, "a1" },
57
  { SYSZ_REG_A2, "a2" },
58
  { SYSZ_REG_A3, "a3" },
59
  { SYSZ_REG_A4, "a4" },
60
  { SYSZ_REG_A5, "a5" },
61
  { SYSZ_REG_A6, "a6" },
62
  { SYSZ_REG_A7, "a7" },
63
  { SYSZ_REG_A8, "a8" },
64
  { SYSZ_REG_A9, "a9" },
65
  { SYSZ_REG_A10, "a10" },
66
  { SYSZ_REG_A11, "a11" },
67
  { SYSZ_REG_A12, "a12" },
68
  { SYSZ_REG_A13, "a13" },
69
  { SYSZ_REG_A14, "a14" },
70
  { SYSZ_REG_A15, "a15" },
71
  { SYSZ_REG_C0, "c0" },
72
  { SYSZ_REG_C1, "c1" },
73
  { SYSZ_REG_C2, "c2" },
74
  { SYSZ_REG_C3, "c3" },
75
  { SYSZ_REG_C4, "c4" },
76
  { SYSZ_REG_C5, "c5" },
77
  { SYSZ_REG_C6, "c6" },
78
  { SYSZ_REG_C7, "c7" },
79
  { SYSZ_REG_C8, "c8" },
80
  { SYSZ_REG_C9, "c9" },
81
  { SYSZ_REG_C10, "c10" },
82
  { SYSZ_REG_C11, "c11" },
83
  { SYSZ_REG_C12, "c12" },
84
  { SYSZ_REG_C13, "c13" },
85
  { SYSZ_REG_C14, "c14" },
86
  { SYSZ_REG_C15, "c15" },
87
  { SYSZ_REG_V0, "v0" },
88
  { SYSZ_REG_V1, "v1" },
89
  { SYSZ_REG_V2, "v2" },
90
  { SYSZ_REG_V3, "v3" },
91
  { SYSZ_REG_V4, "v4" },
92
  { SYSZ_REG_V5, "v5" },
93
  { SYSZ_REG_V6, "v6" },
94
  { SYSZ_REG_V7, "v7" },
95
  { SYSZ_REG_V8, "v8" },
96
  { SYSZ_REG_V9, "v9" },
97
  { SYSZ_REG_V10, "v10" },
98
  { SYSZ_REG_V11, "v11" },
99
  { SYSZ_REG_V12, "v12" },
100
  { SYSZ_REG_V13, "v13" },
101
  { SYSZ_REG_V14, "v14" },
102
  { SYSZ_REG_V15, "v15" },
103
  { SYSZ_REG_V16, "v16" },
104
  { SYSZ_REG_V17, "v17" },
105
  { SYSZ_REG_V18, "v18" },
106
  { SYSZ_REG_V19, "v19" },
107
  { SYSZ_REG_V20, "v20" },
108
  { SYSZ_REG_V21, "v21" },
109
  { SYSZ_REG_V22, "v22" },
110
  { SYSZ_REG_V23, "v23" },
111
  { SYSZ_REG_V24, "v24" },
112
  { SYSZ_REG_V25, "v25" },
113
  { SYSZ_REG_V26, "v26" },
114
  { SYSZ_REG_V27, "v27" },
115
  { SYSZ_REG_V28, "v28" },
116
  { SYSZ_REG_V29, "v29" },
117
  { SYSZ_REG_V30, "v30" },
118
  { SYSZ_REG_V31, "v31" },
119
  { SYSZ_REG_F16, "f16" },
120
  { SYSZ_REG_F17, "f17" },
121
  { SYSZ_REG_F18, "f18" },
122
  { SYSZ_REG_F19, "f19" },
123
  { SYSZ_REG_F20, "f20" },
124
  { SYSZ_REG_F21, "f21" },
125
  { SYSZ_REG_F22, "f22" },
126
  { SYSZ_REG_F23, "f23" },
127
  { SYSZ_REG_F24, "f24" },
128
  { SYSZ_REG_F25, "f25" },
129
  { SYSZ_REG_F26, "f26" },
130
  { SYSZ_REG_F27, "f27" },
131
  { SYSZ_REG_F28, "f28" },
132
  { SYSZ_REG_F29, "f29" },
133
  { SYSZ_REG_F30, "f30" },
134
  { SYSZ_REG_F31, "f31" },
135
  { SYSZ_REG_F0Q, "f0q" },
136
  { SYSZ_REG_F4Q, "f4q" },
137
};
138
#endif
139
140
const char *SystemZ_reg_name(csh handle, unsigned int reg)
141
27.5k
{
142
27.5k
#ifndef CAPSTONE_DIET
143
27.5k
  if (reg >= ARR_SIZE(reg_name_maps))
144
0
    return NULL;
145
146
27.5k
  return reg_name_maps[reg].name;
147
#else
148
  return NULL;
149
#endif
150
27.5k
}
151
152
static const insn_map insns[] = {
153
  // dummy item
154
  {
155
    0, 0,
156
#ifndef CAPSTONE_DIET
157
    { 0 }, { 0 }, { 0 }, 0, 0
158
#endif
159
  },
160
161
#include "SystemZMappingInsn.inc"
162
};
163
164
// given internal insn id, return public instruction info
165
void SystemZ_get_insn_id(cs_struct *h, cs_insn *insn, unsigned int id)
166
45.9k
{
167
45.9k
  unsigned short i;
168
169
45.9k
  i = insn_find(insns, ARR_SIZE(insns), id, &h->insn_cache);
170
45.9k
  if (i != 0) {
171
45.9k
    insn->id = insns[i].mapid;
172
173
45.9k
    if (h->detail_opt) {
174
45.9k
#ifndef CAPSTONE_DIET
175
45.9k
      memcpy(insn->detail->regs_read, insns[i].regs_use, sizeof(insns[i].regs_use));
176
45.9k
      insn->detail->regs_read_count = (uint8_t)count_positive(insns[i].regs_use);
177
178
45.9k
      memcpy(insn->detail->regs_write, insns[i].regs_mod, sizeof(insns[i].regs_mod));
179
45.9k
      insn->detail->regs_write_count = (uint8_t)count_positive(insns[i].regs_mod);
180
181
45.9k
      memcpy(insn->detail->groups, insns[i].groups, sizeof(insns[i].groups));
182
45.9k
      insn->detail->groups_count = (uint8_t)count_positive8(insns[i].groups);
183
184
45.9k
      if (insns[i].branch || insns[i].indirect_branch) {
185
        // this insn also belongs to JUMP group. add JUMP group
186
2.71k
        insn->detail->groups[insn->detail->groups_count] = SYSZ_GRP_JUMP;
187
2.71k
        insn->detail->groups_count++;
188
2.71k
      }
189
45.9k
#endif
190
45.9k
    }
191
45.9k
  }
192
45.9k
}
193
194
#ifndef CAPSTONE_DIET
195
static const name_map insn_name_maps[] = {
196
  { SYSZ_INS_INVALID, NULL },
197
198
#include "SystemZGenInsnNameMaps.inc"
199
};
200
201
// special alias insn
202
static const name_map alias_insn_names[] = {
203
  { 0, NULL }
204
};
205
#endif
206
207
const char *SystemZ_insn_name(csh handle, unsigned int id)
208
45.9k
{
209
45.9k
#ifndef CAPSTONE_DIET
210
45.9k
  unsigned int i;
211
212
45.9k
  if (id >= SYSZ_INS_ENDING)
213
0
    return NULL;
214
215
  // handle special alias first
216
91.8k
  for (i = 0; i < ARR_SIZE(alias_insn_names); i++) {
217
45.9k
    if (alias_insn_names[i].id == id)
218
0
      return alias_insn_names[i].name;
219
45.9k
  }
220
221
45.9k
  return insn_name_maps[id].name;
222
#else
223
  return NULL;
224
#endif
225
45.9k
}
226
227
#ifndef CAPSTONE_DIET
228
static const name_map group_name_maps[] = {
229
  // generic groups
230
  { SYSZ_GRP_INVALID, NULL },
231
  { SYSZ_GRP_JUMP, "jump" },
232
233
  // architecture-specific groups
234
  { SYSZ_GRP_DFPPACKEDCONVERSION, "dfppackedconversion" },
235
  { SYSZ_GRP_DFPZONEDCONVERSION, "dfpzonedconversion" },
236
  { SYSZ_GRP_DISTINCTOPS, "distinctops" },
237
  { SYSZ_GRP_ENHANCEDDAT2, "enhanceddat2" },
238
  { SYSZ_GRP_EXECUTIONHINT, "executionhint" },
239
  { SYSZ_GRP_FPEXTENSION, "fpextension" },
240
  { SYSZ_GRP_GUARDEDSTORAGE, "guardedstorage" },
241
  { SYSZ_GRP_HIGHWORD, "highword" },
242
  { SYSZ_GRP_INSERTREFERENCEBITSMULTIPLE, "insertreferencebitsmultiple" },
243
  { SYSZ_GRP_INTERLOCKEDACCESS1, "interlockedaccess1" },
244
  { SYSZ_GRP_LOADANDTRAP, "loadandtrap" },
245
  { SYSZ_GRP_LOADANDZERORIGHTMOSTBYTE, "loadandzerorightmostbyte" },
246
  { SYSZ_GRP_LOADSTOREONCOND, "loadstoreoncond" },
247
  { SYSZ_GRP_LOADSTOREONCOND2, "loadstoreoncond2" },
248
  { SYSZ_GRP_MESSAGESECURITYASSIST3, "messagesecurityassist3" },
249
  { SYSZ_GRP_MESSAGESECURITYASSIST4, "messagesecurityassist4" },
250
  { SYSZ_GRP_MESSAGESECURITYASSIST5, "messagesecurityassist5" },
251
  { SYSZ_GRP_MESSAGESECURITYASSIST7, "messagesecurityassist7" },
252
  { SYSZ_GRP_MESSAGESECURITYASSIST8, "messagesecurityassist8" },
253
  { SYSZ_GRP_MISCELLANEOUSEXTENSIONS, "miscellaneousextensions" },
254
  { SYSZ_GRP_MISCELLANEOUSEXTENSIONS2, "miscellaneousextensions2" },
255
  { SYSZ_GRP_POPULATIONCOUNT, "populationcount" },
256
  { SYSZ_GRP_PROCESSORASSIST, "processorassist" },
257
  { SYSZ_GRP_RESETREFERENCEBITSMULTIPLE, "resetreferencebitsmultiple" },
258
  { SYSZ_GRP_TRANSACTIONALEXECUTION, "transactionalexecution" },
259
  { SYSZ_GRP_VECTOR, "vector" },
260
  { SYSZ_GRP_VECTORENHANCEMENTS1, "vectorenhancements1" },
261
  { SYSZ_GRP_VECTORPACKEDDECIMAL, "vectorpackeddecimal" },
262
};
263
#endif
264
265
const char *SystemZ_group_name(csh handle, unsigned int id)
266
9.85k
{
267
9.85k
#ifndef CAPSTONE_DIET
268
9.85k
  return id2name(group_name_maps, ARR_SIZE(group_name_maps), id);
269
#else
270
  return NULL;
271
#endif
272
9.85k
}
273
274
// map internal raw register to 'public' register
275
sysz_reg SystemZ_map_register(unsigned int r)
276
105k
{
277
105k
  static const unsigned int map[] = { 0,
278
105k
    /* SystemZ_CC = 1 */ SYSZ_REG_CC,
279
105k
    /* SystemZ_A0 = 2 */ SYSZ_REG_A0,
280
105k
    /* SystemZ_A1 = 3 */ SYSZ_REG_A1,
281
105k
    /* SystemZ_A2 = 4 */ SYSZ_REG_A2,
282
105k
    /* SystemZ_A3 = 5 */ SYSZ_REG_A3,
283
105k
    /* SystemZ_A4 = 6 */ SYSZ_REG_A4,
284
105k
    /* SystemZ_A5 = 7 */ SYSZ_REG_A5,
285
105k
    /* SystemZ_A6 = 8 */ SYSZ_REG_A6,
286
105k
    /* SystemZ_A7 = 9 */ SYSZ_REG_A7,
287
105k
    /* SystemZ_A8 = 10 */ SYSZ_REG_A8,
288
105k
    /* SystemZ_A9 = 11 */ SYSZ_REG_A9,
289
105k
    /* SystemZ_A10 = 12 */ SYSZ_REG_A10,
290
105k
    /* SystemZ_A11 = 13 */ SYSZ_REG_A11,
291
105k
    /* SystemZ_A12 = 14 */ SYSZ_REG_A12,
292
105k
    /* SystemZ_A13 = 15 */ SYSZ_REG_A13,
293
105k
    /* SystemZ_A14 = 16 */ SYSZ_REG_A14,
294
105k
    /* SystemZ_A15 = 17 */ SYSZ_REG_A15,
295
105k
    /* SystemZ_C0 = 18 */ SYSZ_REG_C0,
296
105k
    /* SystemZ_C1 = 19 */ SYSZ_REG_C1,
297
105k
    /* SystemZ_C2 = 20 */ SYSZ_REG_C2,
298
105k
    /* SystemZ_C3 = 21 */ SYSZ_REG_C3,
299
105k
    /* SystemZ_C4 = 22 */ SYSZ_REG_C4,
300
105k
    /* SystemZ_C5 = 23 */ SYSZ_REG_C5,
301
105k
    /* SystemZ_C6 = 24 */ SYSZ_REG_C6,
302
105k
    /* SystemZ_C7 = 25 */ SYSZ_REG_C7,
303
105k
    /* SystemZ_C8 = 26 */ SYSZ_REG_C8,
304
105k
    /* SystemZ_C9 = 27 */ SYSZ_REG_C9,
305
105k
    /* SystemZ_C10 = 28 */ SYSZ_REG_C10,
306
105k
    /* SystemZ_C11 = 29 */ SYSZ_REG_C11,
307
105k
    /* SystemZ_C12 = 30 */ SYSZ_REG_C12,
308
105k
    /* SystemZ_C13 = 31 */ SYSZ_REG_C13,
309
105k
    /* SystemZ_C14 = 32 */ SYSZ_REG_C14,
310
105k
    /* SystemZ_C15 = 33 */ SYSZ_REG_C15,
311
105k
    /* SystemZ_V0 = 34 */ SYSZ_REG_V0,
312
105k
    /* SystemZ_V1 = 35 */ SYSZ_REG_V1,
313
105k
    /* SystemZ_V2 = 36 */ SYSZ_REG_V2,
314
105k
    /* SystemZ_V3 = 37 */ SYSZ_REG_V3,
315
105k
    /* SystemZ_V4 = 38 */ SYSZ_REG_V4,
316
105k
    /* SystemZ_V5 = 39 */ SYSZ_REG_V5,
317
105k
    /* SystemZ_V6 = 40 */ SYSZ_REG_V6,
318
105k
    /* SystemZ_V7 = 41 */ SYSZ_REG_V7,
319
105k
    /* SystemZ_V8 = 42 */ SYSZ_REG_V8,
320
105k
    /* SystemZ_V9 = 43 */ SYSZ_REG_V9,
321
105k
    /* SystemZ_V10 = 44 */ SYSZ_REG_V10,
322
105k
    /* SystemZ_V11 = 45 */ SYSZ_REG_V11,
323
105k
    /* SystemZ_V12 = 46 */ SYSZ_REG_V12,
324
105k
    /* SystemZ_V13 = 47 */ SYSZ_REG_V13,
325
105k
    /* SystemZ_V14 = 48 */ SYSZ_REG_V14,
326
105k
    /* SystemZ_V15 = 49 */ SYSZ_REG_V15,
327
105k
    /* SystemZ_V16 = 50 */ SYSZ_REG_V16,
328
105k
    /* SystemZ_V17 = 51 */ SYSZ_REG_V17,
329
105k
    /* SystemZ_V18 = 52 */ SYSZ_REG_V18,
330
105k
    /* SystemZ_V19 = 53 */ SYSZ_REG_V19,
331
105k
    /* SystemZ_V20 = 54 */ SYSZ_REG_V20,
332
105k
    /* SystemZ_V21 = 55 */ SYSZ_REG_V21,
333
105k
    /* SystemZ_V22 = 56 */ SYSZ_REG_V22,
334
105k
    /* SystemZ_V23 = 57 */ SYSZ_REG_V23,
335
105k
    /* SystemZ_V24 = 58 */ SYSZ_REG_V24,
336
105k
    /* SystemZ_V25 = 59 */ SYSZ_REG_V25,
337
105k
    /* SystemZ_V26 = 60 */ SYSZ_REG_V26,
338
105k
    /* SystemZ_V27 = 61 */ SYSZ_REG_V27,
339
105k
    /* SystemZ_V28 = 62 */ SYSZ_REG_V28,
340
105k
    /* SystemZ_V29 = 63 */ SYSZ_REG_V29,
341
105k
    /* SystemZ_V30 = 64 */ SYSZ_REG_V30,
342
105k
    /* SystemZ_V31 = 65 */ SYSZ_REG_V31,
343
105k
    /* SystemZ_F0D = 66 */ SYSZ_REG_F0,
344
105k
    /* SystemZ_F1D = 67 */ SYSZ_REG_F1,
345
105k
    /* SystemZ_F2D = 68 */ SYSZ_REG_F2,
346
105k
    /* SystemZ_F3D = 69 */ SYSZ_REG_F3,
347
105k
    /* SystemZ_F4D = 70 */ SYSZ_REG_F4,
348
105k
    /* SystemZ_F5D = 71 */ SYSZ_REG_F5,
349
105k
    /* SystemZ_F6D = 72 */ SYSZ_REG_F6,
350
105k
    /* SystemZ_F7D = 73 */ SYSZ_REG_F7,
351
105k
    /* SystemZ_F8D = 74 */ SYSZ_REG_F8,
352
105k
    /* SystemZ_F9D = 75 */ SYSZ_REG_F9,
353
105k
    /* SystemZ_F10D = 76 */ SYSZ_REG_F10,
354
105k
    /* SystemZ_F11D = 77 */ SYSZ_REG_F11,
355
105k
    /* SystemZ_F12D = 78 */ SYSZ_REG_F12,
356
105k
    /* SystemZ_F13D = 79 */ SYSZ_REG_F13,
357
105k
    /* SystemZ_F14D = 80 */ SYSZ_REG_F14,
358
105k
    /* SystemZ_F15D = 81 */ SYSZ_REG_F15,
359
105k
    /* SystemZ_F16D = 82 */ SYSZ_REG_F16,
360
105k
    /* SystemZ_F17D = 83 */ SYSZ_REG_F17,
361
105k
    /* SystemZ_F18D = 84 */ SYSZ_REG_F18,
362
105k
    /* SystemZ_F19D = 85 */ SYSZ_REG_F19,
363
105k
    /* SystemZ_F20D = 86 */ SYSZ_REG_F20,
364
105k
    /* SystemZ_F21D = 87 */ SYSZ_REG_F21,
365
105k
    /* SystemZ_F22D = 88 */ SYSZ_REG_F22,
366
105k
    /* SystemZ_F23D = 89 */ SYSZ_REG_F23,
367
105k
    /* SystemZ_F24D = 90 */ SYSZ_REG_F24,
368
105k
    /* SystemZ_F25D = 91 */ SYSZ_REG_F25,
369
105k
    /* SystemZ_F26D = 92 */ SYSZ_REG_F26,
370
105k
    /* SystemZ_F27D = 93 */ SYSZ_REG_F27,
371
105k
    /* SystemZ_F28D = 94 */ SYSZ_REG_F28,
372
105k
    /* SystemZ_F29D = 95 */ SYSZ_REG_F29,
373
105k
    /* SystemZ_F30D = 96 */ SYSZ_REG_F30,
374
105k
    /* SystemZ_F31D = 97 */ SYSZ_REG_F31,
375
105k
    /* SystemZ_F0Q = 98 */ SYSZ_REG_F0,
376
105k
    /* SystemZ_F1Q = 99 */ SYSZ_REG_F1,
377
105k
    /* SystemZ_F4Q = 100 */ SYSZ_REG_F4,
378
105k
    /* SystemZ_F5Q = 101 */ SYSZ_REG_F5,
379
105k
    /* SystemZ_F8Q = 102 */ SYSZ_REG_F8,
380
105k
    /* SystemZ_F9Q = 103 */ SYSZ_REG_F9,
381
105k
    /* SystemZ_F12Q = 104 */ SYSZ_REG_F12,
382
105k
    /* SystemZ_F13Q = 105 */ SYSZ_REG_F13,
383
105k
    /* SystemZ_F0S = 106 */ SYSZ_REG_F0,
384
105k
    /* SystemZ_F1S = 107 */ SYSZ_REG_F1,
385
105k
    /* SystemZ_F2S = 108 */ SYSZ_REG_F2,
386
105k
    /* SystemZ_F3S = 109 */ SYSZ_REG_F3,
387
105k
    /* SystemZ_F4S = 110 */ SYSZ_REG_F4,
388
105k
    /* SystemZ_F5S = 111 */ SYSZ_REG_F5,
389
105k
    /* SystemZ_F6S = 112 */ SYSZ_REG_F6,
390
105k
    /* SystemZ_F7S = 113 */ SYSZ_REG_F7,
391
105k
    /* SystemZ_F8S = 114 */ SYSZ_REG_F8,
392
105k
    /* SystemZ_F9S = 115 */ SYSZ_REG_F9,
393
105k
    /* SystemZ_F10S = 116 */ SYSZ_REG_F10,
394
105k
    /* SystemZ_F11S = 117 */ SYSZ_REG_F11,
395
105k
    /* SystemZ_F12S = 118 */ SYSZ_REG_F12,
396
105k
    /* SystemZ_F13S = 119 */ SYSZ_REG_F13,
397
105k
    /* SystemZ_F14S = 120 */ SYSZ_REG_F14,
398
105k
    /* SystemZ_F15S = 121 */ SYSZ_REG_F15,
399
105k
    /* SystemZ_F16S = 122 */ SYSZ_REG_F16,
400
105k
    /* SystemZ_F17S = 123 */ SYSZ_REG_F17,
401
105k
    /* SystemZ_F18S = 124 */ SYSZ_REG_F18,
402
105k
    /* SystemZ_F19S = 125 */ SYSZ_REG_F19,
403
105k
    /* SystemZ_F20S = 126 */ SYSZ_REG_F20,
404
105k
    /* SystemZ_F21S = 127 */ SYSZ_REG_F21,
405
105k
    /* SystemZ_F22S = 128 */ SYSZ_REG_F22,
406
105k
    /* SystemZ_F23S = 129 */ SYSZ_REG_F23,
407
105k
    /* SystemZ_F24S = 130 */ SYSZ_REG_F24,
408
105k
    /* SystemZ_F25S = 131 */ SYSZ_REG_F25,
409
105k
    /* SystemZ_F26S = 132 */ SYSZ_REG_F26,
410
105k
    /* SystemZ_F27S = 133 */ SYSZ_REG_F27,
411
105k
    /* SystemZ_F28S = 134 */ SYSZ_REG_F28,
412
105k
    /* SystemZ_F29S = 135 */ SYSZ_REG_F29,
413
105k
    /* SystemZ_F30S = 136 */ SYSZ_REG_F30,
414
105k
    /* SystemZ_F31S = 137 */ SYSZ_REG_F31,
415
105k
    /* SystemZ_R0D = 138 */ SYSZ_REG_0,
416
105k
    /* SystemZ_R1D = 139 */ SYSZ_REG_1,
417
105k
    /* SystemZ_R2D = 140 */ SYSZ_REG_2,
418
105k
    /* SystemZ_R3D = 141 */ SYSZ_REG_3,
419
105k
    /* SystemZ_R4D = 142 */ SYSZ_REG_4,
420
105k
    /* SystemZ_R5D = 143 */ SYSZ_REG_5,
421
105k
    /* SystemZ_R6D = 144 */ SYSZ_REG_6,
422
105k
    /* SystemZ_R7D = 145 */ SYSZ_REG_7,
423
105k
    /* SystemZ_R8D = 146 */ SYSZ_REG_8,
424
105k
    /* SystemZ_R9D = 147 */ SYSZ_REG_9,
425
105k
    /* SystemZ_R10D = 148 */ SYSZ_REG_10,
426
105k
    /* SystemZ_R11D = 149 */ SYSZ_REG_11,
427
105k
    /* SystemZ_R12D = 150 */ SYSZ_REG_12,
428
105k
    /* SystemZ_R13D = 151 */ SYSZ_REG_13,
429
105k
    /* SystemZ_R14D = 152 */ SYSZ_REG_14,
430
105k
    /* SystemZ_R15D = 153 */ SYSZ_REG_15,
431
105k
    /* SystemZ_R0H = 154 */ SYSZ_REG_0,
432
105k
    /* SystemZ_R1H = 155 */ SYSZ_REG_1,
433
105k
    /* SystemZ_R2H = 156 */ SYSZ_REG_2,
434
105k
    /* SystemZ_R3H = 157 */ SYSZ_REG_3,
435
105k
    /* SystemZ_R4H = 158 */ SYSZ_REG_4,
436
105k
    /* SystemZ_R5H = 159 */ SYSZ_REG_5,
437
105k
    /* SystemZ_R6H = 160 */ SYSZ_REG_6,
438
105k
    /* SystemZ_R7H = 161 */ SYSZ_REG_7,
439
105k
    /* SystemZ_R8H = 162 */ SYSZ_REG_8,
440
105k
    /* SystemZ_R9H = 163 */ SYSZ_REG_9,
441
105k
    /* SystemZ_R10H = 164 */ SYSZ_REG_10,
442
105k
    /* SystemZ_R11H = 165 */ SYSZ_REG_11,
443
105k
    /* SystemZ_R12H = 166 */ SYSZ_REG_12,
444
105k
    /* SystemZ_R13H = 167 */ SYSZ_REG_13,
445
105k
    /* SystemZ_R14H = 168 */ SYSZ_REG_14,
446
105k
    /* SystemZ_R15H = 169 */ SYSZ_REG_15,
447
105k
    /* SystemZ_R0L = 170 */ SYSZ_REG_0,
448
105k
    /* SystemZ_R1L = 171 */ SYSZ_REG_1,
449
105k
    /* SystemZ_R2L = 172 */ SYSZ_REG_2,
450
105k
    /* SystemZ_R3L = 173 */ SYSZ_REG_3,
451
105k
    /* SystemZ_R4L = 174 */ SYSZ_REG_4,
452
105k
    /* SystemZ_R5L = 175 */ SYSZ_REG_5,
453
105k
    /* SystemZ_R6L = 176 */ SYSZ_REG_6,
454
105k
    /* SystemZ_R7L = 177 */ SYSZ_REG_7,
455
105k
    /* SystemZ_R8L = 178 */ SYSZ_REG_8,
456
105k
    /* SystemZ_R9L = 179 */ SYSZ_REG_9,
457
105k
    /* SystemZ_R10L = 180 */ SYSZ_REG_10,
458
105k
    /* SystemZ_R11L = 181 */ SYSZ_REG_11,
459
105k
    /* SystemZ_R12L = 182 */ SYSZ_REG_12,
460
105k
    /* SystemZ_R13L = 183 */ SYSZ_REG_13,
461
105k
    /* SystemZ_R14L = 184 */ SYSZ_REG_14,
462
105k
    /* SystemZ_R15L = 185 */ SYSZ_REG_15,
463
105k
    /* SystemZ_R0Q = 186 */ SYSZ_REG_0,
464
105k
    /* SystemZ_R2Q = 187 */ SYSZ_REG_2,
465
105k
    /* SystemZ_R4Q = 188 */ SYSZ_REG_4,
466
105k
    /* SystemZ_R6Q = 189 */ SYSZ_REG_6,
467
105k
    /* SystemZ_R8Q = 190 */ SYSZ_REG_8,
468
105k
    /* SystemZ_R10Q = 191 */ SYSZ_REG_10,
469
105k
    /* SystemZ_R12Q = 192 */ SYSZ_REG_12,
470
105k
    /* SystemZ_R14Q = 193 */ SYSZ_REG_14,
471
105k
  };
472
473
105k
  if (r < ARR_SIZE(map))
474
105k
    return map[r];
475
476
  // cannot find this register
477
0
  return 0;
478
105k
}
479
480
#endif