systemz.h revision 650f96ce431dc38f702641b3f1cf4320e9c9bf94
1#ifndef CAPSTONE_SYSTEMZ_H
2#define CAPSTONE_SYSTEMZ_H
3
4/* Capstone Disassembly Engine */
5/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2014 */
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11#include <stdint.h>
12#include "platform.h"
13
14#ifdef _MSC_VER
15#pragma warning(disable:4201)
16#endif
17
18//> Enums corresponding to SystemZ condition codes
19typedef 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.
42	SYSZ_OP_ACREG,	// Access register operand.
43	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
51	uint8_t index;	// index register
52	uint64_t length;	// BDLAddr operand
53	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
61		int64_t imm;		// immediate value for IMM operand
62		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;
72	cs_sysz_op operands[6]; // operands for this instruction.
73} 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,
806	SYSZ_GRP_DISTINCTOPS,
807	SYSZ_GRP_FPEXTENSION,
808	SYSZ_GRP_HIGHWORD,
809	SYSZ_GRP_INTERLOCKEDACCESS1,
810	SYSZ_GRP_LOADSTOREONCOND,
811
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
822