1 module capstone.systemz;
2 
3 extern (C):
4 
5 /* Capstone Disassembly Engine */
6 /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2014-2015 */
7 
8 /// Enums corresponding to SystemZ condition codes
9 enum sysz_cc
10 {
11     SYSZ_CC_INVALID = 0, ///< invalid CC (default)
12 
13     SYSZ_CC_O = 1,
14     SYSZ_CC_H = 2,
15     SYSZ_CC_NLE = 3,
16     SYSZ_CC_L = 4,
17     SYSZ_CC_NHE = 5,
18     SYSZ_CC_LH = 6,
19     SYSZ_CC_NE = 7,
20     SYSZ_CC_E = 8,
21     SYSZ_CC_NLH = 9,
22     SYSZ_CC_HE = 10,
23     SYSZ_CC_NL = 11,
24     SYSZ_CC_LE = 12,
25     SYSZ_CC_NH = 13,
26     SYSZ_CC_NO = 14
27 }
28 
29 /// Operand type for instruction's operands
30 enum sysz_op_type
31 {
32     SYSZ_OP_INVALID = 0, ///< = CS_OP_INVALID (Uninitialized).
33     SYSZ_OP_REG = 1, ///< = CS_OP_REG (Register operand).
34     SYSZ_OP_IMM = 2, ///< = CS_OP_IMM (Immediate operand).
35     SYSZ_OP_MEM = 3, ///< = CS_OP_MEM (Memory operand).
36     SYSZ_OP_ACREG = 64 ///< Access register operand.
37 }
38 
39 /// SystemZ registers
40 enum sysz_reg
41 {
42     SYSZ_REG_INVALID = 0,
43 
44     SYSZ_REG_0 = 1,
45     SYSZ_REG_1 = 2,
46     SYSZ_REG_2 = 3,
47     SYSZ_REG_3 = 4,
48     SYSZ_REG_4 = 5,
49     SYSZ_REG_5 = 6,
50     SYSZ_REG_6 = 7,
51     SYSZ_REG_7 = 8,
52     SYSZ_REG_8 = 9,
53     SYSZ_REG_9 = 10,
54     SYSZ_REG_10 = 11,
55     SYSZ_REG_11 = 12,
56     SYSZ_REG_12 = 13,
57     SYSZ_REG_13 = 14,
58     SYSZ_REG_14 = 15,
59     SYSZ_REG_15 = 16,
60     SYSZ_REG_CC = 17,
61     SYSZ_REG_F0 = 18,
62     SYSZ_REG_F1 = 19,
63     SYSZ_REG_F2 = 20,
64     SYSZ_REG_F3 = 21,
65     SYSZ_REG_F4 = 22,
66     SYSZ_REG_F5 = 23,
67     SYSZ_REG_F6 = 24,
68     SYSZ_REG_F7 = 25,
69     SYSZ_REG_F8 = 26,
70     SYSZ_REG_F9 = 27,
71     SYSZ_REG_F10 = 28,
72     SYSZ_REG_F11 = 29,
73     SYSZ_REG_F12 = 30,
74     SYSZ_REG_F13 = 31,
75     SYSZ_REG_F14 = 32,
76     SYSZ_REG_F15 = 33,
77 
78     SYSZ_REG_R0L = 34,
79 
80     SYSZ_REG_ENDING = 35
81 }
82 
83 /// Instruction's operand referring to memory
84 /// This is associated with SYSZ_OP_MEM operand type above
85 struct sysz_op_mem
86 {
87     ubyte base; ///< base register, can be safely interpreted as
88     ///< a value of type `sysz_reg`, but it is only
89     ///< one byte wide
90     ubyte index; ///< index register, same conditions apply here
91     ulong length; ///< BDLAddr operand
92     long disp; ///< displacement/offset value
93 }
94 
95 /// Instruction operand
96 struct cs_sysz_op
97 {
98     sysz_op_type type; ///< operand type
99     union
100     {
101         sysz_reg reg; ///< register value for REG operand
102         long imm; ///< immediate value for IMM operand
103         sysz_op_mem mem; ///< base/disp value for MEM operand
104     }
105 }
106 
107 // Instruction structure
108 struct cs_sysz
109 {
110     sysz_cc cc; ///< Code condition
111     /// Number of operands of this instruction,
112     /// or 0 when instruction has no operand.
113     ubyte op_count;
114     cs_sysz_op[6] operands; ///< operands for this instruction.
115 }
116 
117 /// SystemZ instruction
118 enum sysz_insn
119 {
120     SYSZ_INS_INVALID = 0,
121 
122     SYSZ_INS_A = 1,
123     SYSZ_INS_ADB = 2,
124     SYSZ_INS_ADBR = 3,
125     SYSZ_INS_AEB = 4,
126     SYSZ_INS_AEBR = 5,
127     SYSZ_INS_AFI = 6,
128     SYSZ_INS_AG = 7,
129     SYSZ_INS_AGF = 8,
130     SYSZ_INS_AGFI = 9,
131     SYSZ_INS_AGFR = 10,
132     SYSZ_INS_AGHI = 11,
133     SYSZ_INS_AGHIK = 12,
134     SYSZ_INS_AGR = 13,
135     SYSZ_INS_AGRK = 14,
136     SYSZ_INS_AGSI = 15,
137     SYSZ_INS_AH = 16,
138     SYSZ_INS_AHI = 17,
139     SYSZ_INS_AHIK = 18,
140     SYSZ_INS_AHY = 19,
141     SYSZ_INS_AIH = 20,
142     SYSZ_INS_AL = 21,
143     SYSZ_INS_ALC = 22,
144     SYSZ_INS_ALCG = 23,
145     SYSZ_INS_ALCGR = 24,
146     SYSZ_INS_ALCR = 25,
147     SYSZ_INS_ALFI = 26,
148     SYSZ_INS_ALG = 27,
149     SYSZ_INS_ALGF = 28,
150     SYSZ_INS_ALGFI = 29,
151     SYSZ_INS_ALGFR = 30,
152     SYSZ_INS_ALGHSIK = 31,
153     SYSZ_INS_ALGR = 32,
154     SYSZ_INS_ALGRK = 33,
155     SYSZ_INS_ALHSIK = 34,
156     SYSZ_INS_ALR = 35,
157     SYSZ_INS_ALRK = 36,
158     SYSZ_INS_ALY = 37,
159     SYSZ_INS_AR = 38,
160     SYSZ_INS_ARK = 39,
161     SYSZ_INS_ASI = 40,
162     SYSZ_INS_AXBR = 41,
163     SYSZ_INS_AY = 42,
164     SYSZ_INS_BCR = 43,
165     SYSZ_INS_BRC = 44,
166     SYSZ_INS_BRCL = 45,
167     SYSZ_INS_CGIJ = 46,
168     SYSZ_INS_CGRJ = 47,
169     SYSZ_INS_CIJ = 48,
170     SYSZ_INS_CLGIJ = 49,
171     SYSZ_INS_CLGRJ = 50,
172     SYSZ_INS_CLIJ = 51,
173     SYSZ_INS_CLRJ = 52,
174     SYSZ_INS_CRJ = 53,
175     SYSZ_INS_BER = 54,
176     SYSZ_INS_JE = 55,
177     SYSZ_INS_JGE = 56,
178     SYSZ_INS_LOCE = 57,
179     SYSZ_INS_LOCGE = 58,
180     SYSZ_INS_LOCGRE = 59,
181     SYSZ_INS_LOCRE = 60,
182     SYSZ_INS_STOCE = 61,
183     SYSZ_INS_STOCGE = 62,
184     SYSZ_INS_BHR = 63,
185     SYSZ_INS_BHER = 64,
186     SYSZ_INS_JHE = 65,
187     SYSZ_INS_JGHE = 66,
188     SYSZ_INS_LOCHE = 67,
189     SYSZ_INS_LOCGHE = 68,
190     SYSZ_INS_LOCGRHE = 69,
191     SYSZ_INS_LOCRHE = 70,
192     SYSZ_INS_STOCHE = 71,
193     SYSZ_INS_STOCGHE = 72,
194     SYSZ_INS_JH = 73,
195     SYSZ_INS_JGH = 74,
196     SYSZ_INS_LOCH = 75,
197     SYSZ_INS_LOCGH = 76,
198     SYSZ_INS_LOCGRH = 77,
199     SYSZ_INS_LOCRH = 78,
200     SYSZ_INS_STOCH = 79,
201     SYSZ_INS_STOCGH = 80,
202     SYSZ_INS_CGIJNLH = 81,
203     SYSZ_INS_CGRJNLH = 82,
204     SYSZ_INS_CIJNLH = 83,
205     SYSZ_INS_CLGIJNLH = 84,
206     SYSZ_INS_CLGRJNLH = 85,
207     SYSZ_INS_CLIJNLH = 86,
208     SYSZ_INS_CLRJNLH = 87,
209     SYSZ_INS_CRJNLH = 88,
210     SYSZ_INS_CGIJE = 89,
211     SYSZ_INS_CGRJE = 90,
212     SYSZ_INS_CIJE = 91,
213     SYSZ_INS_CLGIJE = 92,
214     SYSZ_INS_CLGRJE = 93,
215     SYSZ_INS_CLIJE = 94,
216     SYSZ_INS_CLRJE = 95,
217     SYSZ_INS_CRJE = 96,
218     SYSZ_INS_CGIJNLE = 97,
219     SYSZ_INS_CGRJNLE = 98,
220     SYSZ_INS_CIJNLE = 99,
221     SYSZ_INS_CLGIJNLE = 100,
222     SYSZ_INS_CLGRJNLE = 101,
223     SYSZ_INS_CLIJNLE = 102,
224     SYSZ_INS_CLRJNLE = 103,
225     SYSZ_INS_CRJNLE = 104,
226     SYSZ_INS_CGIJH = 105,
227     SYSZ_INS_CGRJH = 106,
228     SYSZ_INS_CIJH = 107,
229     SYSZ_INS_CLGIJH = 108,
230     SYSZ_INS_CLGRJH = 109,
231     SYSZ_INS_CLIJH = 110,
232     SYSZ_INS_CLRJH = 111,
233     SYSZ_INS_CRJH = 112,
234     SYSZ_INS_CGIJNL = 113,
235     SYSZ_INS_CGRJNL = 114,
236     SYSZ_INS_CIJNL = 115,
237     SYSZ_INS_CLGIJNL = 116,
238     SYSZ_INS_CLGRJNL = 117,
239     SYSZ_INS_CLIJNL = 118,
240     SYSZ_INS_CLRJNL = 119,
241     SYSZ_INS_CRJNL = 120,
242     SYSZ_INS_CGIJHE = 121,
243     SYSZ_INS_CGRJHE = 122,
244     SYSZ_INS_CIJHE = 123,
245     SYSZ_INS_CLGIJHE = 124,
246     SYSZ_INS_CLGRJHE = 125,
247     SYSZ_INS_CLIJHE = 126,
248     SYSZ_INS_CLRJHE = 127,
249     SYSZ_INS_CRJHE = 128,
250     SYSZ_INS_CGIJNHE = 129,
251     SYSZ_INS_CGRJNHE = 130,
252     SYSZ_INS_CIJNHE = 131,
253     SYSZ_INS_CLGIJNHE = 132,
254     SYSZ_INS_CLGRJNHE = 133,
255     SYSZ_INS_CLIJNHE = 134,
256     SYSZ_INS_CLRJNHE = 135,
257     SYSZ_INS_CRJNHE = 136,
258     SYSZ_INS_CGIJL = 137,
259     SYSZ_INS_CGRJL = 138,
260     SYSZ_INS_CIJL = 139,
261     SYSZ_INS_CLGIJL = 140,
262     SYSZ_INS_CLGRJL = 141,
263     SYSZ_INS_CLIJL = 142,
264     SYSZ_INS_CLRJL = 143,
265     SYSZ_INS_CRJL = 144,
266     SYSZ_INS_CGIJNH = 145,
267     SYSZ_INS_CGRJNH = 146,
268     SYSZ_INS_CIJNH = 147,
269     SYSZ_INS_CLGIJNH = 148,
270     SYSZ_INS_CLGRJNH = 149,
271     SYSZ_INS_CLIJNH = 150,
272     SYSZ_INS_CLRJNH = 151,
273     SYSZ_INS_CRJNH = 152,
274     SYSZ_INS_CGIJLE = 153,
275     SYSZ_INS_CGRJLE = 154,
276     SYSZ_INS_CIJLE = 155,
277     SYSZ_INS_CLGIJLE = 156,
278     SYSZ_INS_CLGRJLE = 157,
279     SYSZ_INS_CLIJLE = 158,
280     SYSZ_INS_CLRJLE = 159,
281     SYSZ_INS_CRJLE = 160,
282     SYSZ_INS_CGIJNE = 161,
283     SYSZ_INS_CGRJNE = 162,
284     SYSZ_INS_CIJNE = 163,
285     SYSZ_INS_CLGIJNE = 164,
286     SYSZ_INS_CLGRJNE = 165,
287     SYSZ_INS_CLIJNE = 166,
288     SYSZ_INS_CLRJNE = 167,
289     SYSZ_INS_CRJNE = 168,
290     SYSZ_INS_CGIJLH = 169,
291     SYSZ_INS_CGRJLH = 170,
292     SYSZ_INS_CIJLH = 171,
293     SYSZ_INS_CLGIJLH = 172,
294     SYSZ_INS_CLGRJLH = 173,
295     SYSZ_INS_CLIJLH = 174,
296     SYSZ_INS_CLRJLH = 175,
297     SYSZ_INS_CRJLH = 176,
298     SYSZ_INS_BLR = 177,
299     SYSZ_INS_BLER = 178,
300     SYSZ_INS_JLE = 179,
301     SYSZ_INS_JGLE = 180,
302     SYSZ_INS_LOCLE = 181,
303     SYSZ_INS_LOCGLE = 182,
304     SYSZ_INS_LOCGRLE = 183,
305     SYSZ_INS_LOCRLE = 184,
306     SYSZ_INS_STOCLE = 185,
307     SYSZ_INS_STOCGLE = 186,
308     SYSZ_INS_BLHR = 187,
309     SYSZ_INS_JLH = 188,
310     SYSZ_INS_JGLH = 189,
311     SYSZ_INS_LOCLH = 190,
312     SYSZ_INS_LOCGLH = 191,
313     SYSZ_INS_LOCGRLH = 192,
314     SYSZ_INS_LOCRLH = 193,
315     SYSZ_INS_STOCLH = 194,
316     SYSZ_INS_STOCGLH = 195,
317     SYSZ_INS_JL = 196,
318     SYSZ_INS_JGL = 197,
319     SYSZ_INS_LOCL = 198,
320     SYSZ_INS_LOCGL = 199,
321     SYSZ_INS_LOCGRL = 200,
322     SYSZ_INS_LOCRL = 201,
323     SYSZ_INS_LOC = 202,
324     SYSZ_INS_LOCG = 203,
325     SYSZ_INS_LOCGR = 204,
326     SYSZ_INS_LOCR = 205,
327     SYSZ_INS_STOCL = 206,
328     SYSZ_INS_STOCGL = 207,
329     SYSZ_INS_BNER = 208,
330     SYSZ_INS_JNE = 209,
331     SYSZ_INS_JGNE = 210,
332     SYSZ_INS_LOCNE = 211,
333     SYSZ_INS_LOCGNE = 212,
334     SYSZ_INS_LOCGRNE = 213,
335     SYSZ_INS_LOCRNE = 214,
336     SYSZ_INS_STOCNE = 215,
337     SYSZ_INS_STOCGNE = 216,
338     SYSZ_INS_BNHR = 217,
339     SYSZ_INS_BNHER = 218,
340     SYSZ_INS_JNHE = 219,
341     SYSZ_INS_JGNHE = 220,
342     SYSZ_INS_LOCNHE = 221,
343     SYSZ_INS_LOCGNHE = 222,
344     SYSZ_INS_LOCGRNHE = 223,
345     SYSZ_INS_LOCRNHE = 224,
346     SYSZ_INS_STOCNHE = 225,
347     SYSZ_INS_STOCGNHE = 226,
348     SYSZ_INS_JNH = 227,
349     SYSZ_INS_JGNH = 228,
350     SYSZ_INS_LOCNH = 229,
351     SYSZ_INS_LOCGNH = 230,
352     SYSZ_INS_LOCGRNH = 231,
353     SYSZ_INS_LOCRNH = 232,
354     SYSZ_INS_STOCNH = 233,
355     SYSZ_INS_STOCGNH = 234,
356     SYSZ_INS_BNLR = 235,
357     SYSZ_INS_BNLER = 236,
358     SYSZ_INS_JNLE = 237,
359     SYSZ_INS_JGNLE = 238,
360     SYSZ_INS_LOCNLE = 239,
361     SYSZ_INS_LOCGNLE = 240,
362     SYSZ_INS_LOCGRNLE = 241,
363     SYSZ_INS_LOCRNLE = 242,
364     SYSZ_INS_STOCNLE = 243,
365     SYSZ_INS_STOCGNLE = 244,
366     SYSZ_INS_BNLHR = 245,
367     SYSZ_INS_JNLH = 246,
368     SYSZ_INS_JGNLH = 247,
369     SYSZ_INS_LOCNLH = 248,
370     SYSZ_INS_LOCGNLH = 249,
371     SYSZ_INS_LOCGRNLH = 250,
372     SYSZ_INS_LOCRNLH = 251,
373     SYSZ_INS_STOCNLH = 252,
374     SYSZ_INS_STOCGNLH = 253,
375     SYSZ_INS_JNL = 254,
376     SYSZ_INS_JGNL = 255,
377     SYSZ_INS_LOCNL = 256,
378     SYSZ_INS_LOCGNL = 257,
379     SYSZ_INS_LOCGRNL = 258,
380     SYSZ_INS_LOCRNL = 259,
381     SYSZ_INS_STOCNL = 260,
382     SYSZ_INS_STOCGNL = 261,
383     SYSZ_INS_BNOR = 262,
384     SYSZ_INS_JNO = 263,
385     SYSZ_INS_JGNO = 264,
386     SYSZ_INS_LOCNO = 265,
387     SYSZ_INS_LOCGNO = 266,
388     SYSZ_INS_LOCGRNO = 267,
389     SYSZ_INS_LOCRNO = 268,
390     SYSZ_INS_STOCNO = 269,
391     SYSZ_INS_STOCGNO = 270,
392     SYSZ_INS_BOR = 271,
393     SYSZ_INS_JO = 272,
394     SYSZ_INS_JGO = 273,
395     SYSZ_INS_LOCO = 274,
396     SYSZ_INS_LOCGO = 275,
397     SYSZ_INS_LOCGRO = 276,
398     SYSZ_INS_LOCRO = 277,
399     SYSZ_INS_STOCO = 278,
400     SYSZ_INS_STOCGO = 279,
401     SYSZ_INS_STOC = 280,
402     SYSZ_INS_STOCG = 281,
403     SYSZ_INS_BASR = 282,
404     SYSZ_INS_BR = 283,
405     SYSZ_INS_BRAS = 284,
406     SYSZ_INS_BRASL = 285,
407     SYSZ_INS_J = 286,
408     SYSZ_INS_JG = 287,
409     SYSZ_INS_BRCT = 288,
410     SYSZ_INS_BRCTG = 289,
411     SYSZ_INS_C = 290,
412     SYSZ_INS_CDB = 291,
413     SYSZ_INS_CDBR = 292,
414     SYSZ_INS_CDFBR = 293,
415     SYSZ_INS_CDGBR = 294,
416     SYSZ_INS_CDLFBR = 295,
417     SYSZ_INS_CDLGBR = 296,
418     SYSZ_INS_CEB = 297,
419     SYSZ_INS_CEBR = 298,
420     SYSZ_INS_CEFBR = 299,
421     SYSZ_INS_CEGBR = 300,
422     SYSZ_INS_CELFBR = 301,
423     SYSZ_INS_CELGBR = 302,
424     SYSZ_INS_CFDBR = 303,
425     SYSZ_INS_CFEBR = 304,
426     SYSZ_INS_CFI = 305,
427     SYSZ_INS_CFXBR = 306,
428     SYSZ_INS_CG = 307,
429     SYSZ_INS_CGDBR = 308,
430     SYSZ_INS_CGEBR = 309,
431     SYSZ_INS_CGF = 310,
432     SYSZ_INS_CGFI = 311,
433     SYSZ_INS_CGFR = 312,
434     SYSZ_INS_CGFRL = 313,
435     SYSZ_INS_CGH = 314,
436     SYSZ_INS_CGHI = 315,
437     SYSZ_INS_CGHRL = 316,
438     SYSZ_INS_CGHSI = 317,
439     SYSZ_INS_CGR = 318,
440     SYSZ_INS_CGRL = 319,
441     SYSZ_INS_CGXBR = 320,
442     SYSZ_INS_CH = 321,
443     SYSZ_INS_CHF = 322,
444     SYSZ_INS_CHHSI = 323,
445     SYSZ_INS_CHI = 324,
446     SYSZ_INS_CHRL = 325,
447     SYSZ_INS_CHSI = 326,
448     SYSZ_INS_CHY = 327,
449     SYSZ_INS_CIH = 328,
450     SYSZ_INS_CL = 329,
451     SYSZ_INS_CLC = 330,
452     SYSZ_INS_CLFDBR = 331,
453     SYSZ_INS_CLFEBR = 332,
454     SYSZ_INS_CLFHSI = 333,
455     SYSZ_INS_CLFI = 334,
456     SYSZ_INS_CLFXBR = 335,
457     SYSZ_INS_CLG = 336,
458     SYSZ_INS_CLGDBR = 337,
459     SYSZ_INS_CLGEBR = 338,
460     SYSZ_INS_CLGF = 339,
461     SYSZ_INS_CLGFI = 340,
462     SYSZ_INS_CLGFR = 341,
463     SYSZ_INS_CLGFRL = 342,
464     SYSZ_INS_CLGHRL = 343,
465     SYSZ_INS_CLGHSI = 344,
466     SYSZ_INS_CLGR = 345,
467     SYSZ_INS_CLGRL = 346,
468     SYSZ_INS_CLGXBR = 347,
469     SYSZ_INS_CLHF = 348,
470     SYSZ_INS_CLHHSI = 349,
471     SYSZ_INS_CLHRL = 350,
472     SYSZ_INS_CLI = 351,
473     SYSZ_INS_CLIH = 352,
474     SYSZ_INS_CLIY = 353,
475     SYSZ_INS_CLR = 354,
476     SYSZ_INS_CLRL = 355,
477     SYSZ_INS_CLST = 356,
478     SYSZ_INS_CLY = 357,
479     SYSZ_INS_CPSDR = 358,
480     SYSZ_INS_CR = 359,
481     SYSZ_INS_CRL = 360,
482     SYSZ_INS_CS = 361,
483     SYSZ_INS_CSG = 362,
484     SYSZ_INS_CSY = 363,
485     SYSZ_INS_CXBR = 364,
486     SYSZ_INS_CXFBR = 365,
487     SYSZ_INS_CXGBR = 366,
488     SYSZ_INS_CXLFBR = 367,
489     SYSZ_INS_CXLGBR = 368,
490     SYSZ_INS_CY = 369,
491     SYSZ_INS_DDB = 370,
492     SYSZ_INS_DDBR = 371,
493     SYSZ_INS_DEB = 372,
494     SYSZ_INS_DEBR = 373,
495     SYSZ_INS_DL = 374,
496     SYSZ_INS_DLG = 375,
497     SYSZ_INS_DLGR = 376,
498     SYSZ_INS_DLR = 377,
499     SYSZ_INS_DSG = 378,
500     SYSZ_INS_DSGF = 379,
501     SYSZ_INS_DSGFR = 380,
502     SYSZ_INS_DSGR = 381,
503     SYSZ_INS_DXBR = 382,
504     SYSZ_INS_EAR = 383,
505     SYSZ_INS_FIDBR = 384,
506     SYSZ_INS_FIDBRA = 385,
507     SYSZ_INS_FIEBR = 386,
508     SYSZ_INS_FIEBRA = 387,
509     SYSZ_INS_FIXBR = 388,
510     SYSZ_INS_FIXBRA = 389,
511     SYSZ_INS_FLOGR = 390,
512     SYSZ_INS_IC = 391,
513     SYSZ_INS_ICY = 392,
514     SYSZ_INS_IIHF = 393,
515     SYSZ_INS_IIHH = 394,
516     SYSZ_INS_IIHL = 395,
517     SYSZ_INS_IILF = 396,
518     SYSZ_INS_IILH = 397,
519     SYSZ_INS_IILL = 398,
520     SYSZ_INS_IPM = 399,
521     SYSZ_INS_L = 400,
522     SYSZ_INS_LA = 401,
523     SYSZ_INS_LAA = 402,
524     SYSZ_INS_LAAG = 403,
525     SYSZ_INS_LAAL = 404,
526     SYSZ_INS_LAALG = 405,
527     SYSZ_INS_LAN = 406,
528     SYSZ_INS_LANG = 407,
529     SYSZ_INS_LAO = 408,
530     SYSZ_INS_LAOG = 409,
531     SYSZ_INS_LARL = 410,
532     SYSZ_INS_LAX = 411,
533     SYSZ_INS_LAXG = 412,
534     SYSZ_INS_LAY = 413,
535     SYSZ_INS_LB = 414,
536     SYSZ_INS_LBH = 415,
537     SYSZ_INS_LBR = 416,
538     SYSZ_INS_LCDBR = 417,
539     SYSZ_INS_LCEBR = 418,
540     SYSZ_INS_LCGFR = 419,
541     SYSZ_INS_LCGR = 420,
542     SYSZ_INS_LCR = 421,
543     SYSZ_INS_LCXBR = 422,
544     SYSZ_INS_LD = 423,
545     SYSZ_INS_LDEB = 424,
546     SYSZ_INS_LDEBR = 425,
547     SYSZ_INS_LDGR = 426,
548     SYSZ_INS_LDR = 427,
549     SYSZ_INS_LDXBR = 428,
550     SYSZ_INS_LDXBRA = 429,
551     SYSZ_INS_LDY = 430,
552     SYSZ_INS_LE = 431,
553     SYSZ_INS_LEDBR = 432,
554     SYSZ_INS_LEDBRA = 433,
555     SYSZ_INS_LER = 434,
556     SYSZ_INS_LEXBR = 435,
557     SYSZ_INS_LEXBRA = 436,
558     SYSZ_INS_LEY = 437,
559     SYSZ_INS_LFH = 438,
560     SYSZ_INS_LG = 439,
561     SYSZ_INS_LGB = 440,
562     SYSZ_INS_LGBR = 441,
563     SYSZ_INS_LGDR = 442,
564     SYSZ_INS_LGF = 443,
565     SYSZ_INS_LGFI = 444,
566     SYSZ_INS_LGFR = 445,
567     SYSZ_INS_LGFRL = 446,
568     SYSZ_INS_LGH = 447,
569     SYSZ_INS_LGHI = 448,
570     SYSZ_INS_LGHR = 449,
571     SYSZ_INS_LGHRL = 450,
572     SYSZ_INS_LGR = 451,
573     SYSZ_INS_LGRL = 452,
574     SYSZ_INS_LH = 453,
575     SYSZ_INS_LHH = 454,
576     SYSZ_INS_LHI = 455,
577     SYSZ_INS_LHR = 456,
578     SYSZ_INS_LHRL = 457,
579     SYSZ_INS_LHY = 458,
580     SYSZ_INS_LLC = 459,
581     SYSZ_INS_LLCH = 460,
582     SYSZ_INS_LLCR = 461,
583     SYSZ_INS_LLGC = 462,
584     SYSZ_INS_LLGCR = 463,
585     SYSZ_INS_LLGF = 464,
586     SYSZ_INS_LLGFR = 465,
587     SYSZ_INS_LLGFRL = 466,
588     SYSZ_INS_LLGH = 467,
589     SYSZ_INS_LLGHR = 468,
590     SYSZ_INS_LLGHRL = 469,
591     SYSZ_INS_LLH = 470,
592     SYSZ_INS_LLHH = 471,
593     SYSZ_INS_LLHR = 472,
594     SYSZ_INS_LLHRL = 473,
595     SYSZ_INS_LLIHF = 474,
596     SYSZ_INS_LLIHH = 475,
597     SYSZ_INS_LLIHL = 476,
598     SYSZ_INS_LLILF = 477,
599     SYSZ_INS_LLILH = 478,
600     SYSZ_INS_LLILL = 479,
601     SYSZ_INS_LMG = 480,
602     SYSZ_INS_LNDBR = 481,
603     SYSZ_INS_LNEBR = 482,
604     SYSZ_INS_LNGFR = 483,
605     SYSZ_INS_LNGR = 484,
606     SYSZ_INS_LNR = 485,
607     SYSZ_INS_LNXBR = 486,
608     SYSZ_INS_LPDBR = 487,
609     SYSZ_INS_LPEBR = 488,
610     SYSZ_INS_LPGFR = 489,
611     SYSZ_INS_LPGR = 490,
612     SYSZ_INS_LPR = 491,
613     SYSZ_INS_LPXBR = 492,
614     SYSZ_INS_LR = 493,
615     SYSZ_INS_LRL = 494,
616     SYSZ_INS_LRV = 495,
617     SYSZ_INS_LRVG = 496,
618     SYSZ_INS_LRVGR = 497,
619     SYSZ_INS_LRVR = 498,
620     SYSZ_INS_LT = 499,
621     SYSZ_INS_LTDBR = 500,
622     SYSZ_INS_LTEBR = 501,
623     SYSZ_INS_LTG = 502,
624     SYSZ_INS_LTGF = 503,
625     SYSZ_INS_LTGFR = 504,
626     SYSZ_INS_LTGR = 505,
627     SYSZ_INS_LTR = 506,
628     SYSZ_INS_LTXBR = 507,
629     SYSZ_INS_LXDB = 508,
630     SYSZ_INS_LXDBR = 509,
631     SYSZ_INS_LXEB = 510,
632     SYSZ_INS_LXEBR = 511,
633     SYSZ_INS_LXR = 512,
634     SYSZ_INS_LY = 513,
635     SYSZ_INS_LZDR = 514,
636     SYSZ_INS_LZER = 515,
637     SYSZ_INS_LZXR = 516,
638     SYSZ_INS_MADB = 517,
639     SYSZ_INS_MADBR = 518,
640     SYSZ_INS_MAEB = 519,
641     SYSZ_INS_MAEBR = 520,
642     SYSZ_INS_MDB = 521,
643     SYSZ_INS_MDBR = 522,
644     SYSZ_INS_MDEB = 523,
645     SYSZ_INS_MDEBR = 524,
646     SYSZ_INS_MEEB = 525,
647     SYSZ_INS_MEEBR = 526,
648     SYSZ_INS_MGHI = 527,
649     SYSZ_INS_MH = 528,
650     SYSZ_INS_MHI = 529,
651     SYSZ_INS_MHY = 530,
652     SYSZ_INS_MLG = 531,
653     SYSZ_INS_MLGR = 532,
654     SYSZ_INS_MS = 533,
655     SYSZ_INS_MSDB = 534,
656     SYSZ_INS_MSDBR = 535,
657     SYSZ_INS_MSEB = 536,
658     SYSZ_INS_MSEBR = 537,
659     SYSZ_INS_MSFI = 538,
660     SYSZ_INS_MSG = 539,
661     SYSZ_INS_MSGF = 540,
662     SYSZ_INS_MSGFI = 541,
663     SYSZ_INS_MSGFR = 542,
664     SYSZ_INS_MSGR = 543,
665     SYSZ_INS_MSR = 544,
666     SYSZ_INS_MSY = 545,
667     SYSZ_INS_MVC = 546,
668     SYSZ_INS_MVGHI = 547,
669     SYSZ_INS_MVHHI = 548,
670     SYSZ_INS_MVHI = 549,
671     SYSZ_INS_MVI = 550,
672     SYSZ_INS_MVIY = 551,
673     SYSZ_INS_MVST = 552,
674     SYSZ_INS_MXBR = 553,
675     SYSZ_INS_MXDB = 554,
676     SYSZ_INS_MXDBR = 555,
677     SYSZ_INS_N = 556,
678     SYSZ_INS_NC = 557,
679     SYSZ_INS_NG = 558,
680     SYSZ_INS_NGR = 559,
681     SYSZ_INS_NGRK = 560,
682     SYSZ_INS_NI = 561,
683     SYSZ_INS_NIHF = 562,
684     SYSZ_INS_NIHH = 563,
685     SYSZ_INS_NIHL = 564,
686     SYSZ_INS_NILF = 565,
687     SYSZ_INS_NILH = 566,
688     SYSZ_INS_NILL = 567,
689     SYSZ_INS_NIY = 568,
690     SYSZ_INS_NR = 569,
691     SYSZ_INS_NRK = 570,
692     SYSZ_INS_NY = 571,
693     SYSZ_INS_O = 572,
694     SYSZ_INS_OC = 573,
695     SYSZ_INS_OG = 574,
696     SYSZ_INS_OGR = 575,
697     SYSZ_INS_OGRK = 576,
698     SYSZ_INS_OI = 577,
699     SYSZ_INS_OIHF = 578,
700     SYSZ_INS_OIHH = 579,
701     SYSZ_INS_OIHL = 580,
702     SYSZ_INS_OILF = 581,
703     SYSZ_INS_OILH = 582,
704     SYSZ_INS_OILL = 583,
705     SYSZ_INS_OIY = 584,
706     SYSZ_INS_OR = 585,
707     SYSZ_INS_ORK = 586,
708     SYSZ_INS_OY = 587,
709     SYSZ_INS_PFD = 588,
710     SYSZ_INS_PFDRL = 589,
711     SYSZ_INS_RISBG = 590,
712     SYSZ_INS_RISBHG = 591,
713     SYSZ_INS_RISBLG = 592,
714     SYSZ_INS_RLL = 593,
715     SYSZ_INS_RLLG = 594,
716     SYSZ_INS_RNSBG = 595,
717     SYSZ_INS_ROSBG = 596,
718     SYSZ_INS_RXSBG = 597,
719     SYSZ_INS_S = 598,
720     SYSZ_INS_SDB = 599,
721     SYSZ_INS_SDBR = 600,
722     SYSZ_INS_SEB = 601,
723     SYSZ_INS_SEBR = 602,
724     SYSZ_INS_SG = 603,
725     SYSZ_INS_SGF = 604,
726     SYSZ_INS_SGFR = 605,
727     SYSZ_INS_SGR = 606,
728     SYSZ_INS_SGRK = 607,
729     SYSZ_INS_SH = 608,
730     SYSZ_INS_SHY = 609,
731     SYSZ_INS_SL = 610,
732     SYSZ_INS_SLB = 611,
733     SYSZ_INS_SLBG = 612,
734     SYSZ_INS_SLBR = 613,
735     SYSZ_INS_SLFI = 614,
736     SYSZ_INS_SLG = 615,
737     SYSZ_INS_SLBGR = 616,
738     SYSZ_INS_SLGF = 617,
739     SYSZ_INS_SLGFI = 618,
740     SYSZ_INS_SLGFR = 619,
741     SYSZ_INS_SLGR = 620,
742     SYSZ_INS_SLGRK = 621,
743     SYSZ_INS_SLL = 622,
744     SYSZ_INS_SLLG = 623,
745     SYSZ_INS_SLLK = 624,
746     SYSZ_INS_SLR = 625,
747     SYSZ_INS_SLRK = 626,
748     SYSZ_INS_SLY = 627,
749     SYSZ_INS_SQDB = 628,
750     SYSZ_INS_SQDBR = 629,
751     SYSZ_INS_SQEB = 630,
752     SYSZ_INS_SQEBR = 631,
753     SYSZ_INS_SQXBR = 632,
754     SYSZ_INS_SR = 633,
755     SYSZ_INS_SRA = 634,
756     SYSZ_INS_SRAG = 635,
757     SYSZ_INS_SRAK = 636,
758     SYSZ_INS_SRK = 637,
759     SYSZ_INS_SRL = 638,
760     SYSZ_INS_SRLG = 639,
761     SYSZ_INS_SRLK = 640,
762     SYSZ_INS_SRST = 641,
763     SYSZ_INS_ST = 642,
764     SYSZ_INS_STC = 643,
765     SYSZ_INS_STCH = 644,
766     SYSZ_INS_STCY = 645,
767     SYSZ_INS_STD = 646,
768     SYSZ_INS_STDY = 647,
769     SYSZ_INS_STE = 648,
770     SYSZ_INS_STEY = 649,
771     SYSZ_INS_STFH = 650,
772     SYSZ_INS_STG = 651,
773     SYSZ_INS_STGRL = 652,
774     SYSZ_INS_STH = 653,
775     SYSZ_INS_STHH = 654,
776     SYSZ_INS_STHRL = 655,
777     SYSZ_INS_STHY = 656,
778     SYSZ_INS_STMG = 657,
779     SYSZ_INS_STRL = 658,
780     SYSZ_INS_STRV = 659,
781     SYSZ_INS_STRVG = 660,
782     SYSZ_INS_STY = 661,
783     SYSZ_INS_SXBR = 662,
784     SYSZ_INS_SY = 663,
785     SYSZ_INS_TM = 664,
786     SYSZ_INS_TMHH = 665,
787     SYSZ_INS_TMHL = 666,
788     SYSZ_INS_TMLH = 667,
789     SYSZ_INS_TMLL = 668,
790     SYSZ_INS_TMY = 669,
791     SYSZ_INS_X = 670,
792     SYSZ_INS_XC = 671,
793     SYSZ_INS_XG = 672,
794     SYSZ_INS_XGR = 673,
795     SYSZ_INS_XGRK = 674,
796     SYSZ_INS_XI = 675,
797     SYSZ_INS_XIHF = 676,
798     SYSZ_INS_XILF = 677,
799     SYSZ_INS_XIY = 678,
800     SYSZ_INS_XR = 679,
801     SYSZ_INS_XRK = 680,
802     SYSZ_INS_XY = 681,
803 
804     SYSZ_INS_ENDING = 682 // <-- mark the end of the list of instructions
805 }
806 
807 /// Group of SystemZ instructions
808 enum sysz_insn_group
809 {
810     SYSZ_GRP_INVALID = 0, ///< = CS_GRP_INVALID
811 
812     // Generic groups
813     // all jump instructions (conditional+direct+indirect jumps)
814     SYSZ_GRP_JUMP = 1, ///< = CS_GRP_JUMP
815 
816     // Architecture-specific groups
817     SYSZ_GRP_DISTINCTOPS = 128,
818     SYSZ_GRP_FPEXTENSION = 129,
819     SYSZ_GRP_HIGHWORD = 130,
820     SYSZ_GRP_INTERLOCKEDACCESS1 = 131,
821     SYSZ_GRP_LOADSTOREONCOND = 132,
822 
823     SYSZ_GRP_ENDING = 133 // <-- mark the end of the list of groups
824 }