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