Module: Crabstone::SysZ
- Defined in:
- lib/arch/systemz.rb,
lib/arch/sysz_const.rb,
lib/arch/sysz_registers.rb
Defined Under Namespace
Classes: Instruction, MemoryOperand, Operand, OperandValue
Constant Summary collapse
- CC_INVALID =
Enums corresponding to SystemZ condition codes
0- CC_O =
1- CC_H =
2- CC_NLE =
3- CC_L =
4- CC_NHE =
5- CC_LH =
6- CC_NE =
7- CC_E =
8- CC_NLH =
9- CC_HE =
10- CC_NL =
11- CC_LE =
12- CC_NH =
13- CC_NO =
14- OP_INVALID =
Operand type for instruction’s operands
0- OP_REG =
1- OP_IMM =
2- OP_MEM =
3- OP_ACREG =
64- REG_INVALID =
SystemZ registers
0- REG_0 =
1- REG_1 =
2- REG_2 =
3- REG_3 =
4- REG_4 =
5- REG_5 =
6- REG_6 =
7- REG_7 =
8- REG_8 =
9- REG_9 =
10- REG_10 =
11- REG_11 =
12- REG_12 =
13- REG_13 =
14- REG_14 =
15- REG_15 =
16- REG_CC =
17- REG_F0 =
18- REG_F1 =
19- REG_F2 =
20- REG_F3 =
21- REG_F4 =
22- REG_F5 =
23- REG_F6 =
24- REG_F7 =
25- REG_F8 =
26- REG_F9 =
27- REG_F10 =
28- REG_F11 =
29- REG_F12 =
30- REG_F13 =
31- REG_F14 =
32- REG_F15 =
33- REG_R0L =
34- REG_ENDING =
35- INS_INVALID =
SystemZ instruction
0- INS_A =
1- INS_ADB =
2- INS_ADBR =
3- INS_AEB =
4- INS_AEBR =
5- INS_AFI =
6- INS_AG =
7- INS_AGF =
8- INS_AGFI =
9- INS_AGFR =
10- INS_AGHI =
11- INS_AGHIK =
12- INS_AGR =
13- INS_AGRK =
14- INS_AGSI =
15- INS_AH =
16- INS_AHI =
17- INS_AHIK =
18- INS_AHY =
19- INS_AIH =
20- INS_AL =
21- INS_ALC =
22- INS_ALCG =
23- INS_ALCGR =
24- INS_ALCR =
25- INS_ALFI =
26- INS_ALG =
27- INS_ALGF =
28- INS_ALGFI =
29- INS_ALGFR =
30- INS_ALGHSIK =
31- INS_ALGR =
32- INS_ALGRK =
33- INS_ALHSIK =
34- INS_ALR =
35- INS_ALRK =
36- INS_ALY =
37- INS_AR =
38- INS_ARK =
39- INS_ASI =
40- INS_AXBR =
41- INS_AY =
42- INS_BCR =
43- INS_BRC =
44- INS_BRCL =
45- INS_CGIJ =
46- INS_CGRJ =
47- INS_CIJ =
48- INS_CLGIJ =
49- INS_CLGRJ =
50- INS_CLIJ =
51- INS_CLRJ =
52- INS_CRJ =
53- INS_BER =
54- INS_JE =
55- INS_JGE =
56- INS_LOCE =
57- INS_LOCGE =
58- INS_LOCGRE =
59- INS_LOCRE =
60- INS_STOCE =
61- INS_STOCGE =
62- INS_BHR =
63- INS_BHER =
64- INS_JHE =
65- INS_JGHE =
66- INS_LOCHE =
67- INS_LOCGHE =
68- INS_LOCGRHE =
69- INS_LOCRHE =
70- INS_STOCHE =
71- INS_STOCGHE =
72- INS_JH =
73- INS_JGH =
74- INS_LOCH =
75- INS_LOCGH =
76- INS_LOCGRH =
77- INS_LOCRH =
78- INS_STOCH =
79- INS_STOCGH =
80- INS_CGIJNLH =
81- INS_CGRJNLH =
82- INS_CIJNLH =
83- INS_CLGIJNLH =
84- INS_CLGRJNLH =
85- INS_CLIJNLH =
86- INS_CLRJNLH =
87- INS_CRJNLH =
88- INS_CGIJE =
89- INS_CGRJE =
90- INS_CIJE =
91- INS_CLGIJE =
92- INS_CLGRJE =
93- INS_CLIJE =
94- INS_CLRJE =
95- INS_CRJE =
96- INS_CGIJNLE =
97- INS_CGRJNLE =
98- INS_CIJNLE =
99- INS_CLGIJNLE =
100- INS_CLGRJNLE =
101- INS_CLIJNLE =
102- INS_CLRJNLE =
103- INS_CRJNLE =
104- INS_CGIJH =
105- INS_CGRJH =
106- INS_CIJH =
107- INS_CLGIJH =
108- INS_CLGRJH =
109- INS_CLIJH =
110- INS_CLRJH =
111- INS_CRJH =
112- INS_CGIJNL =
113- INS_CGRJNL =
114- INS_CIJNL =
115- INS_CLGIJNL =
116- INS_CLGRJNL =
117- INS_CLIJNL =
118- INS_CLRJNL =
119- INS_CRJNL =
120- INS_CGIJHE =
121- INS_CGRJHE =
122- INS_CIJHE =
123- INS_CLGIJHE =
124- INS_CLGRJHE =
125- INS_CLIJHE =
126- INS_CLRJHE =
127- INS_CRJHE =
128- INS_CGIJNHE =
129- INS_CGRJNHE =
130- INS_CIJNHE =
131- INS_CLGIJNHE =
132- INS_CLGRJNHE =
133- INS_CLIJNHE =
134- INS_CLRJNHE =
135- INS_CRJNHE =
136- INS_CGIJL =
137- INS_CGRJL =
138- INS_CIJL =
139- INS_CLGIJL =
140- INS_CLGRJL =
141- INS_CLIJL =
142- INS_CLRJL =
143- INS_CRJL =
144- INS_CGIJNH =
145- INS_CGRJNH =
146- INS_CIJNH =
147- INS_CLGIJNH =
148- INS_CLGRJNH =
149- INS_CLIJNH =
150- INS_CLRJNH =
151- INS_CRJNH =
152- INS_CGIJLE =
153- INS_CGRJLE =
154- INS_CIJLE =
155- INS_CLGIJLE =
156- INS_CLGRJLE =
157- INS_CLIJLE =
158- INS_CLRJLE =
159- INS_CRJLE =
160- INS_CGIJNE =
161- INS_CGRJNE =
162- INS_CIJNE =
163- INS_CLGIJNE =
164- INS_CLGRJNE =
165- INS_CLIJNE =
166- INS_CLRJNE =
167- INS_CRJNE =
168- INS_CGIJLH =
169- INS_CGRJLH =
170- INS_CIJLH =
171- INS_CLGIJLH =
172- INS_CLGRJLH =
173- INS_CLIJLH =
174- INS_CLRJLH =
175- INS_CRJLH =
176- INS_BLR =
177- INS_BLER =
178- INS_JLE =
179- INS_JGLE =
180- INS_LOCLE =
181- INS_LOCGLE =
182- INS_LOCGRLE =
183- INS_LOCRLE =
184- INS_STOCLE =
185- INS_STOCGLE =
186- INS_BLHR =
187- INS_JLH =
188- INS_JGLH =
189- INS_LOCLH =
190- INS_LOCGLH =
191- INS_LOCGRLH =
192- INS_LOCRLH =
193- INS_STOCLH =
194- INS_STOCGLH =
195- INS_JL =
196- INS_JGL =
197- INS_LOCL =
198- INS_LOCGL =
199- INS_LOCGRL =
200- INS_LOCRL =
201- INS_LOC =
202- INS_LOCG =
203- INS_LOCGR =
204- INS_LOCR =
205- INS_STOCL =
206- INS_STOCGL =
207- INS_BNER =
208- INS_JNE =
209- INS_JGNE =
210- INS_LOCNE =
211- INS_LOCGNE =
212- INS_LOCGRNE =
213- INS_LOCRNE =
214- INS_STOCNE =
215- INS_STOCGNE =
216- INS_BNHR =
217- INS_BNHER =
218- INS_JNHE =
219- INS_JGNHE =
220- INS_LOCNHE =
221- INS_LOCGNHE =
222- INS_LOCGRNHE =
223- INS_LOCRNHE =
224- INS_STOCNHE =
225- INS_STOCGNHE =
226- INS_JNH =
227- INS_JGNH =
228- INS_LOCNH =
229- INS_LOCGNH =
230- INS_LOCGRNH =
231- INS_LOCRNH =
232- INS_STOCNH =
233- INS_STOCGNH =
234- INS_BNLR =
235- INS_BNLER =
236- INS_JNLE =
237- INS_JGNLE =
238- INS_LOCNLE =
239- INS_LOCGNLE =
240- INS_LOCGRNLE =
241- INS_LOCRNLE =
242- INS_STOCNLE =
243- INS_STOCGNLE =
244- INS_BNLHR =
245- INS_JNLH =
246- INS_JGNLH =
247- INS_LOCNLH =
248- INS_LOCGNLH =
249- INS_LOCGRNLH =
250- INS_LOCRNLH =
251- INS_STOCNLH =
252- INS_STOCGNLH =
253- INS_JNL =
254- INS_JGNL =
255- INS_LOCNL =
256- INS_LOCGNL =
257- INS_LOCGRNL =
258- INS_LOCRNL =
259- INS_STOCNL =
260- INS_STOCGNL =
261- INS_BNOR =
262- INS_JNO =
263- INS_JGNO =
264- INS_LOCNO =
265- INS_LOCGNO =
266- INS_LOCGRNO =
267- INS_LOCRNO =
268- INS_STOCNO =
269- INS_STOCGNO =
270- INS_BOR =
271- INS_JO =
272- INS_JGO =
273- INS_LOCO =
274- INS_LOCGO =
275- INS_LOCGRO =
276- INS_LOCRO =
277- INS_STOCO =
278- INS_STOCGO =
279- INS_STOC =
280- INS_STOCG =
281- INS_BASR =
282- INS_BR =
283- INS_BRAS =
284- INS_BRASL =
285- INS_J =
286- INS_JG =
287- INS_BRCT =
288- INS_BRCTG =
289- INS_C =
290- INS_CDB =
291- INS_CDBR =
292- INS_CDFBR =
293- INS_CDGBR =
294- INS_CDLFBR =
295- INS_CDLGBR =
296- INS_CEB =
297- INS_CEBR =
298- INS_CEFBR =
299- INS_CEGBR =
300- INS_CELFBR =
301- INS_CELGBR =
302- INS_CFDBR =
303- INS_CFEBR =
304- INS_CFI =
305- INS_CFXBR =
306- INS_CG =
307- INS_CGDBR =
308- INS_CGEBR =
309- INS_CGF =
310- INS_CGFI =
311- INS_CGFR =
312- INS_CGFRL =
313- INS_CGH =
314- INS_CGHI =
315- INS_CGHRL =
316- INS_CGHSI =
317- INS_CGR =
318- INS_CGRL =
319- INS_CGXBR =
320- INS_CH =
321- INS_CHF =
322- INS_CHHSI =
323- INS_CHI =
324- INS_CHRL =
325- INS_CHSI =
326- INS_CHY =
327- INS_CIH =
328- INS_CL =
329- INS_CLC =
330- INS_CLFDBR =
331- INS_CLFEBR =
332- INS_CLFHSI =
333- INS_CLFI =
334- INS_CLFXBR =
335- INS_CLG =
336- INS_CLGDBR =
337- INS_CLGEBR =
338- INS_CLGF =
339- INS_CLGFI =
340- INS_CLGFR =
341- INS_CLGFRL =
342- INS_CLGHRL =
343- INS_CLGHSI =
344- INS_CLGR =
345- INS_CLGRL =
346- INS_CLGXBR =
347- INS_CLHF =
348- INS_CLHHSI =
349- INS_CLHRL =
350- INS_CLI =
351- INS_CLIH =
352- INS_CLIY =
353- INS_CLR =
354- INS_CLRL =
355- INS_CLST =
356- INS_CLY =
357- INS_CPSDR =
358- INS_CR =
359- INS_CRL =
360- INS_CS =
361- INS_CSG =
362- INS_CSY =
363- INS_CXBR =
364- INS_CXFBR =
365- INS_CXGBR =
366- INS_CXLFBR =
367- INS_CXLGBR =
368- INS_CY =
369- INS_DDB =
370- INS_DDBR =
371- INS_DEB =
372- INS_DEBR =
373- INS_DL =
374- INS_DLG =
375- INS_DLGR =
376- INS_DLR =
377- INS_DSG =
378- INS_DSGF =
379- INS_DSGFR =
380- INS_DSGR =
381- INS_DXBR =
382- INS_EAR =
383- INS_FIDBR =
384- INS_FIDBRA =
385- INS_FIEBR =
386- INS_FIEBRA =
387- INS_FIXBR =
388- INS_FIXBRA =
389- INS_FLOGR =
390- INS_IC =
391- INS_ICY =
392- INS_IIHF =
393- INS_IIHH =
394- INS_IIHL =
395- INS_IILF =
396- INS_IILH =
397- INS_IILL =
398- INS_IPM =
399- INS_L =
400- INS_LA =
401- INS_LAA =
402- INS_LAAG =
403- INS_LAAL =
404- INS_LAALG =
405- INS_LAN =
406- INS_LANG =
407- INS_LAO =
408- INS_LAOG =
409- INS_LARL =
410- INS_LAX =
411- INS_LAXG =
412- INS_LAY =
413- INS_LB =
414- INS_LBH =
415- INS_LBR =
416- INS_LCDBR =
417- INS_LCEBR =
418- INS_LCGFR =
419- INS_LCGR =
420- INS_LCR =
421- INS_LCXBR =
422- INS_LD =
423- INS_LDEB =
424- INS_LDEBR =
425- INS_LDGR =
426- INS_LDR =
427- INS_LDXBR =
428- INS_LDXBRA =
429- INS_LDY =
430- INS_LE =
431- INS_LEDBR =
432- INS_LEDBRA =
433- INS_LER =
434- INS_LEXBR =
435- INS_LEXBRA =
436- INS_LEY =
437- INS_LFH =
438- INS_LG =
439- INS_LGB =
440- INS_LGBR =
441- INS_LGDR =
442- INS_LGF =
443- INS_LGFI =
444- INS_LGFR =
445- INS_LGFRL =
446- INS_LGH =
447- INS_LGHI =
448- INS_LGHR =
449- INS_LGHRL =
450- INS_LGR =
451- INS_LGRL =
452- INS_LH =
453- INS_LHH =
454- INS_LHI =
455- INS_LHR =
456- INS_LHRL =
457- INS_LHY =
458- INS_LLC =
459- INS_LLCH =
460- INS_LLCR =
461- INS_LLGC =
462- INS_LLGCR =
463- INS_LLGF =
464- INS_LLGFR =
465- INS_LLGFRL =
466- INS_LLGH =
467- INS_LLGHR =
468- INS_LLGHRL =
469- INS_LLH =
470- INS_LLHH =
471- INS_LLHR =
472- INS_LLHRL =
473- INS_LLIHF =
474- INS_LLIHH =
475- INS_LLIHL =
476- INS_LLILF =
477- INS_LLILH =
478- INS_LLILL =
479- INS_LMG =
480- INS_LNDBR =
481- INS_LNEBR =
482- INS_LNGFR =
483- INS_LNGR =
484- INS_LNR =
485- INS_LNXBR =
486- INS_LPDBR =
487- INS_LPEBR =
488- INS_LPGFR =
489- INS_LPGR =
490- INS_LPR =
491- INS_LPXBR =
492- INS_LR =
493- INS_LRL =
494- INS_LRV =
495- INS_LRVG =
496- INS_LRVGR =
497- INS_LRVR =
498- INS_LT =
499- INS_LTDBR =
500- INS_LTEBR =
501- INS_LTG =
502- INS_LTGF =
503- INS_LTGFR =
504- INS_LTGR =
505- INS_LTR =
506- INS_LTXBR =
507- INS_LXDB =
508- INS_LXDBR =
509- INS_LXEB =
510- INS_LXEBR =
511- INS_LXR =
512- INS_LY =
513- INS_LZDR =
514- INS_LZER =
515- INS_LZXR =
516- INS_MADB =
517- INS_MADBR =
518- INS_MAEB =
519- INS_MAEBR =
520- INS_MDB =
521- INS_MDBR =
522- INS_MDEB =
523- INS_MDEBR =
524- INS_MEEB =
525- INS_MEEBR =
526- INS_MGHI =
527- INS_MH =
528- INS_MHI =
529- INS_MHY =
530- INS_MLG =
531- INS_MLGR =
532- INS_MS =
533- INS_MSDB =
534- INS_MSDBR =
535- INS_MSEB =
536- INS_MSEBR =
537- INS_MSFI =
538- INS_MSG =
539- INS_MSGF =
540- INS_MSGFI =
541- INS_MSGFR =
542- INS_MSGR =
543- INS_MSR =
544- INS_MSY =
545- INS_MVC =
546- INS_MVGHI =
547- INS_MVHHI =
548- INS_MVHI =
549- INS_MVI =
550- INS_MVIY =
551- INS_MVST =
552- INS_MXBR =
553- INS_MXDB =
554- INS_MXDBR =
555- INS_N =
556- INS_NC =
557- INS_NG =
558- INS_NGR =
559- INS_NGRK =
560- INS_NI =
561- INS_NIHF =
562- INS_NIHH =
563- INS_NIHL =
564- INS_NILF =
565- INS_NILH =
566- INS_NILL =
567- INS_NIY =
568- INS_NR =
569- INS_NRK =
570- INS_NY =
571- INS_O =
572- INS_OC =
573- INS_OG =
574- INS_OGR =
575- INS_OGRK =
576- INS_OI =
577- INS_OIHF =
578- INS_OIHH =
579- INS_OIHL =
580- INS_OILF =
581- INS_OILH =
582- INS_OILL =
583- INS_OIY =
584- INS_OR =
585- INS_ORK =
586- INS_OY =
587- INS_PFD =
588- INS_PFDRL =
589- INS_RISBG =
590- INS_RISBHG =
591- INS_RISBLG =
592- INS_RLL =
593- INS_RLLG =
594- INS_RNSBG =
595- INS_ROSBG =
596- INS_RXSBG =
597- INS_S =
598- INS_SDB =
599- INS_SDBR =
600- INS_SEB =
601- INS_SEBR =
602- INS_SG =
603- INS_SGF =
604- INS_SGFR =
605- INS_SGR =
606- INS_SGRK =
607- INS_SH =
608- INS_SHY =
609- INS_SL =
610- INS_SLB =
611- INS_SLBG =
612- INS_SLBR =
613- INS_SLFI =
614- INS_SLG =
615- INS_SLBGR =
616- INS_SLGF =
617- INS_SLGFI =
618- INS_SLGFR =
619- INS_SLGR =
620- INS_SLGRK =
621- INS_SLL =
622- INS_SLLG =
623- INS_SLLK =
624- INS_SLR =
625- INS_SLRK =
626- INS_SLY =
627- INS_SQDB =
628- INS_SQDBR =
629- INS_SQEB =
630- INS_SQEBR =
631- INS_SQXBR =
632- INS_SR =
633- INS_SRA =
634- INS_SRAG =
635- INS_SRAK =
636- INS_SRK =
637- INS_SRL =
638- INS_SRLG =
639- INS_SRLK =
640- INS_SRST =
641- INS_ST =
642- INS_STC =
643- INS_STCH =
644- INS_STCY =
645- INS_STD =
646- INS_STDY =
647- INS_STE =
648- INS_STEY =
649- INS_STFH =
650- INS_STG =
651- INS_STGRL =
652- INS_STH =
653- INS_STHH =
654- INS_STHRL =
655- INS_STHY =
656- INS_STMG =
657- INS_STRL =
658- INS_STRV =
659- INS_STRVG =
660- INS_STY =
661- INS_SXBR =
662- INS_SY =
663- INS_TM =
664- INS_TMHH =
665- INS_TMHL =
666- INS_TMLH =
667- INS_TMLL =
668- INS_TMY =
669- INS_X =
670- INS_XC =
671- INS_XG =
672- INS_XGR =
673- INS_XGRK =
674- INS_XI =
675- INS_XIHF =
676- INS_XILF =
677- INS_XIY =
678- INS_XR =
679- INS_XRK =
680- INS_XY =
681- INS_ENDING =
682- GRP_INVALID =
Group of SystemZ instructions
0- GRP_JUMP =
Generic groups
1- GRP_DISTINCTOPS =
Architecture-specific groups
128- GRP_FPEXTENSION =
129- GRP_HIGHWORD =
130- GRP_INTERLOCKEDACCESS1 =
131- GRP_LOADSTOREONCOND =
132- GRP_ENDING =
133- REG_LOOKUP =
{ 'INVALID' => 0, '0' => 1, '1' => 2, '2' => 3, '3' => 4, '4' => 5, '5' => 6, '6' => 7, '7' => 8, '8' => 9, '9' => 10, '10' => 11, '11' => 12, '12' => 13, '13' => 14, '14' => 15, '15' => 16, 'CC' => 17, 'F0' => 18, 'F1' => 19, 'F2' => 20, 'F3' => 21, 'F4' => 22, 'F5' => 23, 'F6' => 24, 'F7' => 25, 'F8' => 26, 'F9' => 27, 'F10' => 28, 'F11' => 29, 'F12' => 30, 'F13' => 31, 'F14' => 32, 'F15' => 33, 'R0L' => 34 }
- ID_LOOKUP =
REG_LOOKUP.invert
- SYM_LOOKUP =
alias registers
Hash[REG_LOOKUP.map {|k,v| [k.downcase.to_sym,v]
Class Method Summary collapse
Class Method Details
.register(reg) ⇒ Object
56 57 58 59 60 61 62 63 |
# File 'lib/arch/sysz_registers.rb', line 56 def self.register reg return reg if ID_LOOKUP[reg] return SYM_LOOKUP[reg] if SYM_LOOKUP[reg] if reg.respond_to? :upcase return REG_LOOKUP[reg.upcase] || REG_LOOKUP['INVALID'] end REG_LOOKUP['INVALID'] end |