Module: Crabstone::PPC
- Defined in:
- lib/arch/ppc.rb,
lib/arch/ppc_const.rb,
lib/arch/ppc_registers.rb
Defined Under Namespace
Classes: CrxOperand, Instruction, MemoryOperand, Operand, OperandValue
Constant Summary collapse
- BC_INVALID =
PPC branch codes for some branch instructions
0- BC_LT =
(0<<5)|12
- BC_LE =
(1<<5)|4
- BC_EQ =
(2<<5)|12
- BC_GE =
(0<<5)|4
- BC_GT =
(1<<5)|12
- BC_NE =
(2<<5)|4
- BC_UN =
(3<<5)|12
- BC_NU =
(3<<5)|4
- BC_SO =
(4<<5)|12
- BC_NS =
(4<<5)|4
- BH_INVALID =
PPC branch hint for some branch instructions
0- BH_PLUS =
1- BH_MINUS =
2- OP_INVALID =
Operand type for instruction’s operands
0- OP_REG =
1- OP_IMM =
2- OP_MEM =
3- OP_CRX =
64- REG_INVALID =
PPC registers
0- REG_CARRY =
1- REG_CC =
2- REG_CR0 =
3- REG_CR1 =
4- REG_CR2 =
5- REG_CR3 =
6- REG_CR4 =
7- REG_CR5 =
8- REG_CR6 =
9- REG_CR7 =
10- REG_CTR =
11- REG_F0 =
12- REG_F1 =
13- REG_F2 =
14- REG_F3 =
15- REG_F4 =
16- REG_F5 =
17- REG_F6 =
18- REG_F7 =
19- REG_F8 =
20- REG_F9 =
21- REG_F10 =
22- REG_F11 =
23- REG_F12 =
24- REG_F13 =
25- REG_F14 =
26- REG_F15 =
27- REG_F16 =
28- REG_F17 =
29- REG_F18 =
30- REG_F19 =
31- REG_F20 =
32- REG_F21 =
33- REG_F22 =
34- REG_F23 =
35- REG_F24 =
36- REG_F25 =
37- REG_F26 =
38- REG_F27 =
39- REG_F28 =
40- REG_F29 =
41- REG_F30 =
42- REG_F31 =
43- REG_LR =
44- REG_R0 =
45- REG_R1 =
46- REG_R2 =
47- REG_R3 =
48- REG_R4 =
49- REG_R5 =
50- REG_R6 =
51- REG_R7 =
52- REG_R8 =
53- REG_R9 =
54- REG_R10 =
55- REG_R11 =
56- REG_R12 =
57- REG_R13 =
58- REG_R14 =
59- REG_R15 =
60- REG_R16 =
61- REG_R17 =
62- REG_R18 =
63- REG_R19 =
64- REG_R20 =
65- REG_R21 =
66- REG_R22 =
67- REG_R23 =
68- REG_R24 =
69- REG_R25 =
70- REG_R26 =
71- REG_R27 =
72- REG_R28 =
73- REG_R29 =
74- REG_R30 =
75- REG_R31 =
76- REG_V0 =
77- REG_V1 =
78- REG_V2 =
79- REG_V3 =
80- REG_V4 =
81- REG_V5 =
82- REG_V6 =
83- REG_V7 =
84- REG_V8 =
85- REG_V9 =
86- REG_V10 =
87- REG_V11 =
88- REG_V12 =
89- REG_V13 =
90- REG_V14 =
91- REG_V15 =
92- REG_V16 =
93- REG_V17 =
94- REG_V18 =
95- REG_V19 =
96- REG_V20 =
97- REG_V21 =
98- REG_V22 =
99- REG_V23 =
100- REG_V24 =
101- REG_V25 =
102- REG_V26 =
103- REG_V27 =
104- REG_V28 =
105- REG_V29 =
106- REG_V30 =
107- REG_V31 =
108- REG_VRSAVE =
109- REG_VS0 =
110- REG_VS1 =
111- REG_VS2 =
112- REG_VS3 =
113- REG_VS4 =
114- REG_VS5 =
115- REG_VS6 =
116- REG_VS7 =
117- REG_VS8 =
118- REG_VS9 =
119- REG_VS10 =
120- REG_VS11 =
121- REG_VS12 =
122- REG_VS13 =
123- REG_VS14 =
124- REG_VS15 =
125- REG_VS16 =
126- REG_VS17 =
127- REG_VS18 =
128- REG_VS19 =
129- REG_VS20 =
130- REG_VS21 =
131- REG_VS22 =
132- REG_VS23 =
133- REG_VS24 =
134- REG_VS25 =
135- REG_VS26 =
136- REG_VS27 =
137- REG_VS28 =
138- REG_VS29 =
139- REG_VS30 =
140- REG_VS31 =
141- REG_VS32 =
142- REG_VS33 =
143- REG_VS34 =
144- REG_VS35 =
145- REG_VS36 =
146- REG_VS37 =
147- REG_VS38 =
148- REG_VS39 =
149- REG_VS40 =
150- REG_VS41 =
151- REG_VS42 =
152- REG_VS43 =
153- REG_VS44 =
154- REG_VS45 =
155- REG_VS46 =
156- REG_VS47 =
157- REG_VS48 =
158- REG_VS49 =
159- REG_VS50 =
160- REG_VS51 =
161- REG_VS52 =
162- REG_VS53 =
163- REG_VS54 =
164- REG_VS55 =
165- REG_VS56 =
166- REG_VS57 =
167- REG_VS58 =
168- REG_VS59 =
169- REG_VS60 =
170- REG_VS61 =
171- REG_VS62 =
172- REG_VS63 =
173- REG_RM =
174- REG_CTR8 =
175- REG_LR8 =
176- REG_CR1EQ =
177- REG_ENDING =
178- INS_INVALID =
PPC instruction
0- INS_ADD =
1- INS_ADDC =
2- INS_ADDE =
3- INS_ADDI =
4- INS_ADDIC =
5- INS_ADDIS =
6- INS_ADDME =
7- INS_ADDZE =
8- INS_AND =
9- INS_ANDC =
10- INS_ANDIS =
11- INS_ANDI =
12- INS_B =
13- INS_BA =
14- INS_BC =
15- INS_BCCTR =
16- INS_BCCTRL =
17- INS_BCL =
18- INS_BCLR =
19- INS_BCLRL =
20- INS_BCTR =
21- INS_BCTRL =
22- INS_BDNZ =
23- INS_BDNZA =
24- INS_BDNZL =
25- INS_BDNZLA =
26- INS_BDNZLR =
27- INS_BDNZLRL =
28- INS_BDZ =
29- INS_BDZA =
30- INS_BDZL =
31- INS_BDZLA =
32- INS_BDZLR =
33- INS_BDZLRL =
34- INS_BL =
35- INS_BLA =
36- INS_BLR =
37- INS_BLRL =
38- INS_BRINC =
39- INS_CMPD =
40- INS_CMPDI =
41- INS_CMPLD =
42- INS_CMPLDI =
43- INS_CMPLW =
44- INS_CMPLWI =
45- INS_CMPW =
46- INS_CMPWI =
47- INS_CNTLZD =
48- INS_CNTLZW =
49- INS_CREQV =
50- INS_CRXOR =
51- INS_CRAND =
52- INS_CRANDC =
53- INS_CRNAND =
54- INS_CRNOR =
55- INS_CROR =
56- INS_CRORC =
57- INS_DCBA =
58- INS_DCBF =
59- INS_DCBI =
60- INS_DCBST =
61- INS_DCBT =
62- INS_DCBTST =
63- INS_DCBZ =
64- INS_DCBZL =
65- INS_DCCCI =
66- INS_DIVD =
67- INS_DIVDU =
68- INS_DIVW =
69- INS_DIVWU =
70- INS_DSS =
71- INS_DSSALL =
72- INS_DST =
73- INS_DSTST =
74- INS_DSTSTT =
75- INS_DSTT =
76- INS_EIEIO =
77- INS_EQV =
78- INS_EVABS =
79- INS_EVADDIW =
80- INS_EVADDSMIAAW =
81- INS_EVADDSSIAAW =
82- INS_EVADDUMIAAW =
83- INS_EVADDUSIAAW =
84- INS_EVADDW =
85- INS_EVAND =
86- INS_EVANDC =
87- INS_EVCMPEQ =
88- INS_EVCMPGTS =
89- INS_EVCMPGTU =
90- INS_EVCMPLTS =
91- INS_EVCMPLTU =
92- INS_EVCNTLSW =
93- INS_EVCNTLZW =
94- INS_EVDIVWS =
95- INS_EVDIVWU =
96- INS_EVEQV =
97- INS_EVEXTSB =
98- INS_EVEXTSH =
99- INS_EVLDD =
100- INS_EVLDDX =
101- INS_EVLDH =
102- INS_EVLDHX =
103- INS_EVLDW =
104- INS_EVLDWX =
105- INS_EVLHHESPLAT =
106- INS_EVLHHESPLATX =
107- INS_EVLHHOSSPLAT =
108- INS_EVLHHOSSPLATX =
109- INS_EVLHHOUSPLAT =
110- INS_EVLHHOUSPLATX =
111- INS_EVLWHE =
112- INS_EVLWHEX =
113- INS_EVLWHOS =
114- INS_EVLWHOSX =
115- INS_EVLWHOU =
116- INS_EVLWHOUX =
117- INS_EVLWHSPLAT =
118- INS_EVLWHSPLATX =
119- INS_EVLWWSPLAT =
120- INS_EVLWWSPLATX =
121- INS_EVMERGEHI =
122- INS_EVMERGEHILO =
123- INS_EVMERGELO =
124- INS_EVMERGELOHI =
125- INS_EVMHEGSMFAA =
126- INS_EVMHEGSMFAN =
127- INS_EVMHEGSMIAA =
128- INS_EVMHEGSMIAN =
129- INS_EVMHEGUMIAA =
130- INS_EVMHEGUMIAN =
131- INS_EVMHESMF =
132- INS_EVMHESMFA =
133- INS_EVMHESMFAAW =
134- INS_EVMHESMFANW =
135- INS_EVMHESMI =
136- INS_EVMHESMIA =
137- INS_EVMHESMIAAW =
138- INS_EVMHESMIANW =
139- INS_EVMHESSF =
140- INS_EVMHESSFA =
141- INS_EVMHESSFAAW =
142- INS_EVMHESSFANW =
143- INS_EVMHESSIAAW =
144- INS_EVMHESSIANW =
145- INS_EVMHEUMI =
146- INS_EVMHEUMIA =
147- INS_EVMHEUMIAAW =
148- INS_EVMHEUMIANW =
149- INS_EVMHEUSIAAW =
150- INS_EVMHEUSIANW =
151- INS_EVMHOGSMFAA =
152- INS_EVMHOGSMFAN =
153- INS_EVMHOGSMIAA =
154- INS_EVMHOGSMIAN =
155- INS_EVMHOGUMIAA =
156- INS_EVMHOGUMIAN =
157- INS_EVMHOSMF =
158- INS_EVMHOSMFA =
159- INS_EVMHOSMFAAW =
160- INS_EVMHOSMFANW =
161- INS_EVMHOSMI =
162- INS_EVMHOSMIA =
163- INS_EVMHOSMIAAW =
164- INS_EVMHOSMIANW =
165- INS_EVMHOSSF =
166- INS_EVMHOSSFA =
167- INS_EVMHOSSFAAW =
168- INS_EVMHOSSFANW =
169- INS_EVMHOSSIAAW =
170- INS_EVMHOSSIANW =
171- INS_EVMHOUMI =
172- INS_EVMHOUMIA =
173- INS_EVMHOUMIAAW =
174- INS_EVMHOUMIANW =
175- INS_EVMHOUSIAAW =
176- INS_EVMHOUSIANW =
177- INS_EVMRA =
178- INS_EVMWHSMF =
179- INS_EVMWHSMFA =
180- INS_EVMWHSMI =
181- INS_EVMWHSMIA =
182- INS_EVMWHSSF =
183- INS_EVMWHSSFA =
184- INS_EVMWHUMI =
185- INS_EVMWHUMIA =
186- INS_EVMWLSMIAAW =
187- INS_EVMWLSMIANW =
188- INS_EVMWLSSIAAW =
189- INS_EVMWLSSIANW =
190- INS_EVMWLUMI =
191- INS_EVMWLUMIA =
192- INS_EVMWLUMIAAW =
193- INS_EVMWLUMIANW =
194- INS_EVMWLUSIAAW =
195- INS_EVMWLUSIANW =
196- INS_EVMWSMF =
197- INS_EVMWSMFA =
198- INS_EVMWSMFAA =
199- INS_EVMWSMFAN =
200- INS_EVMWSMI =
201- INS_EVMWSMIA =
202- INS_EVMWSMIAA =
203- INS_EVMWSMIAN =
204- INS_EVMWSSF =
205- INS_EVMWSSFA =
206- INS_EVMWSSFAA =
207- INS_EVMWSSFAN =
208- INS_EVMWUMI =
209- INS_EVMWUMIA =
210- INS_EVMWUMIAA =
211- INS_EVMWUMIAN =
212- INS_EVNAND =
213- INS_EVNEG =
214- INS_EVNOR =
215- INS_EVOR =
216- INS_EVORC =
217- INS_EVRLW =
218- INS_EVRLWI =
219- INS_EVRNDW =
220- INS_EVSLW =
221- INS_EVSLWI =
222- INS_EVSPLATFI =
223- INS_EVSPLATI =
224- INS_EVSRWIS =
225- INS_EVSRWIU =
226- INS_EVSRWS =
227- INS_EVSRWU =
228- INS_EVSTDD =
229- INS_EVSTDDX =
230- INS_EVSTDH =
231- INS_EVSTDHX =
232- INS_EVSTDW =
233- INS_EVSTDWX =
234- INS_EVSTWHE =
235- INS_EVSTWHEX =
236- INS_EVSTWHO =
237- INS_EVSTWHOX =
238- INS_EVSTWWE =
239- INS_EVSTWWEX =
240- INS_EVSTWWO =
241- INS_EVSTWWOX =
242- INS_EVSUBFSMIAAW =
243- INS_EVSUBFSSIAAW =
244- INS_EVSUBFUMIAAW =
245- INS_EVSUBFUSIAAW =
246- INS_EVSUBFW =
247- INS_EVSUBIFW =
248- INS_EVXOR =
249- INS_EXTSB =
250- INS_EXTSH =
251- INS_EXTSW =
252- INS_FABS =
253- INS_FADD =
254- INS_FADDS =
255- INS_FCFID =
256- INS_FCFIDS =
257- INS_FCFIDU =
258- INS_FCFIDUS =
259- INS_FCMPU =
260- INS_FCPSGN =
261- INS_FCTID =
262- INS_FCTIDUZ =
263- INS_FCTIDZ =
264- INS_FCTIW =
265- INS_FCTIWUZ =
266- INS_FCTIWZ =
267- INS_FDIV =
268- INS_FDIVS =
269- INS_FMADD =
270- INS_FMADDS =
271- INS_FMR =
272- INS_FMSUB =
273- INS_FMSUBS =
274- INS_FMUL =
275- INS_FMULS =
276- INS_FNABS =
277- INS_FNEG =
278- INS_FNMADD =
279- INS_FNMADDS =
280- INS_FNMSUB =
281- INS_FNMSUBS =
282- INS_FRE =
283- INS_FRES =
284- INS_FRIM =
285- INS_FRIN =
286- INS_FRIP =
287- INS_FRIZ =
288- INS_FRSP =
289- INS_FRSQRTE =
290- INS_FRSQRTES =
291- INS_FSEL =
292- INS_FSQRT =
293- INS_FSQRTS =
294- INS_FSUB =
295- INS_FSUBS =
296- INS_ICBI =
297- INS_ICCCI =
298- INS_ISEL =
299- INS_ISYNC =
300- INS_LA =
301- INS_LBZ =
302- INS_LBZU =
303- INS_LBZUX =
304- INS_LBZX =
305- INS_LD =
306- INS_LDARX =
307- INS_LDBRX =
308- INS_LDU =
309- INS_LDUX =
310- INS_LDX =
311- INS_LFD =
312- INS_LFDU =
313- INS_LFDUX =
314- INS_LFDX =
315- INS_LFIWAX =
316- INS_LFIWZX =
317- INS_LFS =
318- INS_LFSU =
319- INS_LFSUX =
320- INS_LFSX =
321- INS_LHA =
322- INS_LHAU =
323- INS_LHAUX =
324- INS_LHAX =
325- INS_LHBRX =
326- INS_LHZ =
327- INS_LHZU =
328- INS_LHZUX =
329- INS_LHZX =
330- INS_LI =
331- INS_LIS =
332- INS_LMW =
333- INS_LSWI =
334- INS_LVEBX =
335- INS_LVEHX =
336- INS_LVEWX =
337- INS_LVSL =
338- INS_LVSR =
339- INS_LVX =
340- INS_LVXL =
341- INS_LWA =
342- INS_LWARX =
343- INS_LWAUX =
344- INS_LWAX =
345- INS_LWBRX =
346- INS_LWZ =
347- INS_LWZU =
348- INS_LWZUX =
349- INS_LWZX =
350- INS_LXSDX =
351- INS_LXVD2X =
352- INS_LXVDSX =
353- INS_LXVW4X =
354- INS_MBAR =
355- INS_MCRF =
356- INS_MFCR =
357- INS_MFCTR =
358- INS_MFDCR =
359- INS_MFFS =
360- INS_MFLR =
361- INS_MFMSR =
362- INS_MFOCRF =
363- INS_MFSPR =
364- INS_MFSR =
365- INS_MFSRIN =
366- INS_MFTB =
367- INS_MFVSCR =
368- INS_MSYNC =
369- INS_MTCRF =
370- INS_MTCTR =
371- INS_MTDCR =
372- INS_MTFSB0 =
373- INS_MTFSB1 =
374- INS_MTFSF =
375- INS_MTLR =
376- INS_MTMSR =
377- INS_MTMSRD =
378- INS_MTOCRF =
379- INS_MTSPR =
380- INS_MTSR =
381- INS_MTSRIN =
382- INS_MTVSCR =
383- INS_MULHD =
384- INS_MULHDU =
385- INS_MULHW =
386- INS_MULHWU =
387- INS_MULLD =
388- INS_MULLI =
389- INS_MULLW =
390- INS_NAND =
391- INS_NEG =
392- INS_NOP =
393- INS_ORI =
394- INS_NOR =
395- INS_OR =
396- INS_ORC =
397- INS_ORIS =
398- INS_POPCNTD =
399- INS_POPCNTW =
400- INS_RFCI =
401- INS_RFDI =
402- INS_RFI =
403- INS_RFID =
404- INS_RFMCI =
405- INS_RLDCL =
406- INS_RLDCR =
407- INS_RLDIC =
408- INS_RLDICL =
409- INS_RLDICR =
410- INS_RLDIMI =
411- INS_RLWIMI =
412- INS_RLWINM =
413- INS_RLWNM =
414- INS_SC =
415- INS_SLBIA =
416- INS_SLBIE =
417- INS_SLBMFEE =
418- INS_SLBMTE =
419- INS_SLD =
420- INS_SLW =
421- INS_SRAD =
422- INS_SRADI =
423- INS_SRAW =
424- INS_SRAWI =
425- INS_SRD =
426- INS_SRW =
427- INS_STB =
428- INS_STBU =
429- INS_STBUX =
430- INS_STBX =
431- INS_STD =
432- INS_STDBRX =
433- INS_STDCX =
434- INS_STDU =
435- INS_STDUX =
436- INS_STDX =
437- INS_STFD =
438- INS_STFDU =
439- INS_STFDUX =
440- INS_STFDX =
441- INS_STFIWX =
442- INS_STFS =
443- INS_STFSU =
444- INS_STFSUX =
445- INS_STFSX =
446- INS_STH =
447- INS_STHBRX =
448- INS_STHU =
449- INS_STHUX =
450- INS_STHX =
451- INS_STMW =
452- INS_STSWI =
453- INS_STVEBX =
454- INS_STVEHX =
455- INS_STVEWX =
456- INS_STVX =
457- INS_STVXL =
458- INS_STW =
459- INS_STWBRX =
460- INS_STWCX =
461- INS_STWU =
462- INS_STWUX =
463- INS_STWX =
464- INS_STXSDX =
465- INS_STXVD2X =
466- INS_STXVW4X =
467- INS_SUBF =
468- INS_SUBFC =
469- INS_SUBFE =
470- INS_SUBFIC =
471- INS_SUBFME =
472- INS_SUBFZE =
473- INS_SYNC =
474- INS_TD =
475- INS_TDI =
476- INS_TLBIA =
477- INS_TLBIE =
478- INS_TLBIEL =
479- INS_TLBIVAX =
480- INS_TLBLD =
481- INS_TLBLI =
482- INS_TLBRE =
483- INS_TLBSX =
484- INS_TLBSYNC =
485- INS_TLBWE =
486- INS_TRAP =
487- INS_TW =
488- INS_TWI =
489- INS_VADDCUW =
490- INS_VADDFP =
491- INS_VADDSBS =
492- INS_VADDSHS =
493- INS_VADDSWS =
494- INS_VADDUBM =
495- INS_VADDUBS =
496- INS_VADDUHM =
497- INS_VADDUHS =
498- INS_VADDUWM =
499- INS_VADDUWS =
500- INS_VAND =
501- INS_VANDC =
502- INS_VAVGSB =
503- INS_VAVGSH =
504- INS_VAVGSW =
505- INS_VAVGUB =
506- INS_VAVGUH =
507- INS_VAVGUW =
508- INS_VCFSX =
509- INS_VCFUX =
510- INS_VCMPBFP =
511- INS_VCMPEQFP =
512- INS_VCMPEQUB =
513- INS_VCMPEQUH =
514- INS_VCMPEQUW =
515- INS_VCMPGEFP =
516- INS_VCMPGTFP =
517- INS_VCMPGTSB =
518- INS_VCMPGTSH =
519- INS_VCMPGTSW =
520- INS_VCMPGTUB =
521- INS_VCMPGTUH =
522- INS_VCMPGTUW =
523- INS_VCTSXS =
524- INS_VCTUXS =
525- INS_VEXPTEFP =
526- INS_VLOGEFP =
527- INS_VMADDFP =
528- INS_VMAXFP =
529- INS_VMAXSB =
530- INS_VMAXSH =
531- INS_VMAXSW =
532- INS_VMAXUB =
533- INS_VMAXUH =
534- INS_VMAXUW =
535- INS_VMHADDSHS =
536- INS_VMHRADDSHS =
537- INS_VMINFP =
538- INS_VMINSB =
539- INS_VMINSH =
540- INS_VMINSW =
541- INS_VMINUB =
542- INS_VMINUH =
543- INS_VMINUW =
544- INS_VMLADDUHM =
545- INS_VMRGHB =
546- INS_VMRGHH =
547- INS_VMRGHW =
548- INS_VMRGLB =
549- INS_VMRGLH =
550- INS_VMRGLW =
551- INS_VMSUMMBM =
552- INS_VMSUMSHM =
553- INS_VMSUMSHS =
554- INS_VMSUMUBM =
555- INS_VMSUMUHM =
556- INS_VMSUMUHS =
557- INS_VMULESB =
558- INS_VMULESH =
559- INS_VMULEUB =
560- INS_VMULEUH =
561- INS_VMULOSB =
562- INS_VMULOSH =
563- INS_VMULOUB =
564- INS_VMULOUH =
565- INS_VNMSUBFP =
566- INS_VNOR =
567- INS_VOR =
568- INS_VPERM =
569- INS_VPKPX =
570- INS_VPKSHSS =
571- INS_VPKSHUS =
572- INS_VPKSWSS =
573- INS_VPKSWUS =
574- INS_VPKUHUM =
575- INS_VPKUHUS =
576- INS_VPKUWUM =
577- INS_VPKUWUS =
578- INS_VREFP =
579- INS_VRFIM =
580- INS_VRFIN =
581- INS_VRFIP =
582- INS_VRFIZ =
583- INS_VRLB =
584- INS_VRLH =
585- INS_VRLW =
586- INS_VRSQRTEFP =
587- INS_VSEL =
588- INS_VSL =
589- INS_VSLB =
590- INS_VSLDOI =
591- INS_VSLH =
592- INS_VSLO =
593- INS_VSLW =
594- INS_VSPLTB =
595- INS_VSPLTH =
596- INS_VSPLTISB =
597- INS_VSPLTISH =
598- INS_VSPLTISW =
599- INS_VSPLTW =
600- INS_VSR =
601- INS_VSRAB =
602- INS_VSRAH =
603- INS_VSRAW =
604- INS_VSRB =
605- INS_VSRH =
606- INS_VSRO =
607- INS_VSRW =
608- INS_VSUBCUW =
609- INS_VSUBFP =
610- INS_VSUBSBS =
611- INS_VSUBSHS =
612- INS_VSUBSWS =
613- INS_VSUBUBM =
614- INS_VSUBUBS =
615- INS_VSUBUHM =
616- INS_VSUBUHS =
617- INS_VSUBUWM =
618- INS_VSUBUWS =
619- INS_VSUM2SWS =
620- INS_VSUM4SBS =
621- INS_VSUM4SHS =
622- INS_VSUM4UBS =
623- INS_VSUMSWS =
624- INS_VUPKHPX =
625- INS_VUPKHSB =
626- INS_VUPKHSH =
627- INS_VUPKLPX =
628- INS_VUPKLSB =
629- INS_VUPKLSH =
630- INS_VXOR =
631- INS_WAIT =
632- INS_WRTEE =
633- INS_WRTEEI =
634- INS_XOR =
635- INS_XORI =
636- INS_XORIS =
637- INS_XSABSDP =
638- INS_XSADDDP =
639- INS_XSCMPODP =
640- INS_XSCMPUDP =
641- INS_XSCPSGNDP =
642- INS_XSCVDPSP =
643- INS_XSCVDPSXDS =
644- INS_XSCVDPSXWS =
645- INS_XSCVDPUXDS =
646- INS_XSCVDPUXWS =
647- INS_XSCVSPDP =
648- INS_XSCVSXDDP =
649- INS_XSCVUXDDP =
650- INS_XSDIVDP =
651- INS_XSMADDADP =
652- INS_XSMADDMDP =
653- INS_XSMAXDP =
654- INS_XSMINDP =
655- INS_XSMSUBADP =
656- INS_XSMSUBMDP =
657- INS_XSMULDP =
658- INS_XSNABSDP =
659- INS_XSNEGDP =
660- INS_XSNMADDADP =
661- INS_XSNMADDMDP =
662- INS_XSNMSUBADP =
663- INS_XSNMSUBMDP =
664- INS_XSRDPI =
665- INS_XSRDPIC =
666- INS_XSRDPIM =
667- INS_XSRDPIP =
668- INS_XSRDPIZ =
669- INS_XSREDP =
670- INS_XSRSQRTEDP =
671- INS_XSSQRTDP =
672- INS_XSSUBDP =
673- INS_XSTDIVDP =
674- INS_XSTSQRTDP =
675- INS_XVABSDP =
676- INS_XVABSSP =
677- INS_XVADDDP =
678- INS_XVADDSP =
679- INS_XVCMPEQDP =
680- INS_XVCMPEQSP =
681- INS_XVCMPGEDP =
682- INS_XVCMPGESP =
683- INS_XVCMPGTDP =
684- INS_XVCMPGTSP =
685- INS_XVCPSGNDP =
686- INS_XVCPSGNSP =
687- INS_XVCVDPSP =
688- INS_XVCVDPSXDS =
689- INS_XVCVDPSXWS =
690- INS_XVCVDPUXDS =
691- INS_XVCVDPUXWS =
692- INS_XVCVSPDP =
693- INS_XVCVSPSXDS =
694- INS_XVCVSPSXWS =
695- INS_XVCVSPUXDS =
696- INS_XVCVSPUXWS =
697- INS_XVCVSXDDP =
698- INS_XVCVSXDSP =
699- INS_XVCVSXWDP =
700- INS_XVCVSXWSP =
701- INS_XVCVUXDDP =
702- INS_XVCVUXDSP =
703- INS_XVCVUXWDP =
704- INS_XVCVUXWSP =
705- INS_XVDIVDP =
706- INS_XVDIVSP =
707- INS_XVMADDADP =
708- INS_XVMADDASP =
709- INS_XVMADDMDP =
710- INS_XVMADDMSP =
711- INS_XVMAXDP =
712- INS_XVMAXSP =
713- INS_XVMINDP =
714- INS_XVMINSP =
715- INS_XVMSUBADP =
716- INS_XVMSUBASP =
717- INS_XVMSUBMDP =
718- INS_XVMSUBMSP =
719- INS_XVMULDP =
720- INS_XVMULSP =
721- INS_XVNABSDP =
722- INS_XVNABSSP =
723- INS_XVNEGDP =
724- INS_XVNEGSP =
725- INS_XVNMADDADP =
726- INS_XVNMADDASP =
727- INS_XVNMADDMDP =
728- INS_XVNMADDMSP =
729- INS_XVNMSUBADP =
730- INS_XVNMSUBASP =
731- INS_XVNMSUBMDP =
732- INS_XVNMSUBMSP =
733- INS_XVRDPI =
734- INS_XVRDPIC =
735- INS_XVRDPIM =
736- INS_XVRDPIP =
737- INS_XVRDPIZ =
738- INS_XVREDP =
739- INS_XVRESP =
740- INS_XVRSPI =
741- INS_XVRSPIC =
742- INS_XVRSPIM =
743- INS_XVRSPIP =
744- INS_XVRSPIZ =
745- INS_XVRSQRTEDP =
746- INS_XVRSQRTESP =
747- INS_XVSQRTDP =
748- INS_XVSQRTSP =
749- INS_XVSUBDP =
750- INS_XVSUBSP =
751- INS_XVTDIVDP =
752- INS_XVTDIVSP =
753- INS_XVTSQRTDP =
754- INS_XVTSQRTSP =
755- INS_XXLAND =
756- INS_XXLANDC =
757- INS_XXLNOR =
758- INS_XXLOR =
759- INS_XXLXOR =
760- INS_XXMRGHW =
761- INS_XXMRGLW =
762- INS_XXPERMDI =
763- INS_XXSEL =
764- INS_XXSLDWI =
765- INS_XXSPLTW =
766- INS_BCA =
767- INS_BCLA =
768- INS_SLWI =
769- INS_SRWI =
770- INS_SLDI =
771- INS_BTA =
772- INS_CRSET =
773- INS_CRNOT =
774- INS_CRMOVE =
775- INS_CRCLR =
776- INS_MFBR0 =
777- INS_MFBR1 =
778- INS_MFBR2 =
779- INS_MFBR3 =
780- INS_MFBR4 =
781- INS_MFBR5 =
782- INS_MFBR6 =
783- INS_MFBR7 =
784- INS_MFXER =
785- INS_MFRTCU =
786- INS_MFRTCL =
787- INS_MFDSCR =
788- INS_MFDSISR =
789- INS_MFDAR =
790- INS_MFSRR2 =
791- INS_MFSRR3 =
792- INS_MFCFAR =
793- INS_MFAMR =
794- INS_MFPID =
795- INS_MFTBLO =
796- INS_MFTBHI =
797- INS_MFDBATU =
798- INS_MFDBATL =
799- INS_MFIBATU =
800- INS_MFIBATL =
801- INS_MFDCCR =
802- INS_MFICCR =
803- INS_MFDEAR =
804- INS_MFESR =
805- INS_MFSPEFSCR =
806- INS_MFTCR =
807- INS_MFASR =
808- INS_MFPVR =
809- INS_MFTBU =
810- INS_MTCR =
811- INS_MTBR0 =
812- INS_MTBR1 =
813- INS_MTBR2 =
814- INS_MTBR3 =
815- INS_MTBR4 =
816- INS_MTBR5 =
817- INS_MTBR6 =
818- INS_MTBR7 =
819- INS_MTXER =
820- INS_MTDSCR =
821- INS_MTDSISR =
822- INS_MTDAR =
823- INS_MTSRR2 =
824- INS_MTSRR3 =
825- INS_MTCFAR =
826- INS_MTAMR =
827- INS_MTPID =
828- INS_MTTBL =
829- INS_MTTBU =
830- INS_MTTBLO =
831- INS_MTTBHI =
832- INS_MTDBATU =
833- INS_MTDBATL =
834- INS_MTIBATU =
835- INS_MTIBATL =
836- INS_MTDCCR =
837- INS_MTICCR =
838- INS_MTDEAR =
839- INS_MTESR =
840- INS_MTSPEFSCR =
841- INS_MTTCR =
842- INS_NOT =
843- INS_MR =
844- INS_ROTLD =
845- INS_ROTLDI =
846- INS_CLRLDI =
847- INS_ROTLWI =
848- INS_CLRLWI =
849- INS_ROTLW =
850- INS_SUB =
851- INS_SUBC =
852- INS_LWSYNC =
853- INS_PTESYNC =
854- INS_TDLT =
855- INS_TDEQ =
856- INS_TDGT =
857- INS_TDNE =
858- INS_TDLLT =
859- INS_TDLGT =
860- INS_TDU =
861- INS_TDLTI =
862- INS_TDEQI =
863- INS_TDGTI =
864- INS_TDNEI =
865- INS_TDLLTI =
866- INS_TDLGTI =
867- INS_TDUI =
868- INS_TLBREHI =
869- INS_TLBRELO =
870- INS_TLBWEHI =
871- INS_TLBWELO =
872- INS_TWLT =
873- INS_TWEQ =
874- INS_TWGT =
875- INS_TWNE =
876- INS_TWLLT =
877- INS_TWLGT =
878- INS_TWU =
879- INS_TWLTI =
880- INS_TWEQI =
881- INS_TWGTI =
882- INS_TWNEI =
883- INS_TWLLTI =
884- INS_TWLGTI =
885- INS_TWUI =
886- INS_WAITRSV =
887- INS_WAITIMPL =
888- INS_XNOP =
889- INS_XVMOVDP =
890- INS_XVMOVSP =
891- INS_XXSPLTD =
892- INS_XXMRGHD =
893- INS_XXMRGLD =
894- INS_XXSWAPD =
895- INS_BT =
896- INS_BF =
897- INS_BDNZT =
898- INS_BDNZF =
899- INS_BDZF =
900- INS_BDZT =
901- INS_BFA =
902- INS_BDNZTA =
903- INS_BDNZFA =
904- INS_BDZTA =
905- INS_BDZFA =
906- INS_BTCTR =
907- INS_BFCTR =
908- INS_BTCTRL =
909- INS_BFCTRL =
910- INS_BTL =
911- INS_BFL =
912- INS_BDNZTL =
913- INS_BDNZFL =
914- INS_BDZTL =
915- INS_BDZFL =
916- INS_BTLA =
917- INS_BFLA =
918- INS_BDNZTLA =
919- INS_BDNZFLA =
920- INS_BDZTLA =
921- INS_BDZFLA =
922- INS_BTLR =
923- INS_BFLR =
924- INS_BDNZTLR =
925- INS_BDZTLR =
926- INS_BDZFLR =
927- INS_BTLRL =
928- INS_BFLRL =
929- INS_BDNZTLRL =
930- INS_BDNZFLRL =
931- INS_BDZTLRL =
932- INS_BDZFLRL =
933- INS_ENDING =
934- GRP_INVALID =
Group of PPC instructions
0- GRP_JUMP =
Generic groups
1- GRP_ALTIVEC =
Architecture-specific groups
128- GRP_MODE32 =
129- GRP_MODE64 =
130- GRP_BOOKE =
131- GRP_NOTBOOKE =
132- GRP_SPE =
133- GRP_VSX =
134- GRP_E500 =
135- GRP_PPC4XX =
136- GRP_PPC6XX =
137- GRP_ENDING =
138- REG_LOOKUP =
{ 'INVALID' => 0, 'CARRY' => 1, 'CC' => 2, 'CR0' => 3, 'CR1' => 4, 'CR2' => 5, 'CR3' => 6, 'CR4' => 7, 'CR5' => 8, 'CR6' => 9, 'CR7' => 10, 'CTR' => 11, 'F0' => 12, 'F1' => 13, 'F2' => 14, 'F3' => 15, 'F4' => 16, 'F5' => 17, 'F6' => 18, 'F7' => 19, 'F8' => 20, 'F9' => 21, 'F10' => 22, 'F11' => 23, 'F12' => 24, 'F13' => 25, 'F14' => 26, 'F15' => 27, 'F16' => 28, 'F17' => 29, 'F18' => 30, 'F19' => 31, 'F20' => 32, 'F21' => 33, 'F22' => 34, 'F23' => 35, 'F24' => 36, 'F25' => 37, 'F26' => 38, 'F27' => 39, 'F28' => 40, 'F29' => 41, 'F30' => 42, 'F31' => 43, 'LR' => 44, 'R0' => 45, 'R1' => 46, 'R2' => 47, 'R3' => 48, 'R4' => 49, 'R5' => 50, 'R6' => 51, 'R7' => 52, 'R8' => 53, 'R9' => 54, 'R10' => 55, 'R11' => 56, 'R12' => 57, 'R13' => 58, 'R14' => 59, 'R15' => 60, 'R16' => 61, 'R17' => 62, 'R18' => 63, 'R19' => 64, 'R20' => 65, 'R21' => 66, 'R22' => 67, 'R23' => 68, 'R24' => 69, 'R25' => 70, 'R26' => 71, 'R27' => 72, 'R28' => 73, 'R29' => 74, 'R30' => 75, 'R31' => 76, 'V0' => 77, 'V1' => 78, 'V2' => 79, 'V3' => 80, 'V4' => 81, 'V5' => 82, 'V6' => 83, 'V7' => 84, 'V8' => 85, 'V9' => 86, 'V10' => 87, 'V11' => 88, 'V12' => 89, 'V13' => 90, 'V14' => 91, 'V15' => 92, 'V16' => 93, 'V17' => 94, 'V18' => 95, 'V19' => 96, 'V20' => 97, 'V21' => 98, 'V22' => 99, 'V23' => 100, 'V24' => 101, 'V25' => 102, 'V26' => 103, 'V27' => 104, 'V28' => 105, 'V29' => 106, 'V30' => 107, 'V31' => 108, 'VRSAVE' => 109, 'VS0' => 110, 'VS1' => 111, 'VS2' => 112, 'VS3' => 113, 'VS4' => 114, 'VS5' => 115, 'VS6' => 116, 'VS7' => 117, 'VS8' => 118, 'VS9' => 119, 'VS10' => 120, 'VS11' => 121, 'VS12' => 122, 'VS13' => 123, 'VS14' => 124, 'VS15' => 125, 'VS16' => 126, 'VS17' => 127, 'VS18' => 128, 'VS19' => 129, 'VS20' => 130, 'VS21' => 131, 'VS22' => 132, 'VS23' => 133, 'VS24' => 134, 'VS25' => 135, 'VS26' => 136, 'VS27' => 137, 'VS28' => 138, 'VS29' => 139, 'VS30' => 140, 'VS31' => 141, 'VS32' => 142, 'VS33' => 143, 'VS34' => 144, 'VS35' => 145, 'VS36' => 146, 'VS37' => 147, 'VS38' => 148, 'VS39' => 149, 'VS40' => 150, 'VS41' => 151, 'VS42' => 152, 'VS43' => 153, 'VS44' => 154, 'VS45' => 155, 'VS46' => 156, 'VS47' => 157, 'VS48' => 158, 'VS49' => 159, 'VS50' => 160, 'VS51' => 161, 'VS52' => 162, 'VS53' => 163, 'VS54' => 164, 'VS55' => 165, 'VS56' => 166, 'VS57' => 167, 'VS58' => 168, 'VS59' => 169, 'VS60' => 170, 'VS61' => 171, 'VS62' => 172, 'VS63' => 173, 'RM' => 174, 'CTR8' => 175, 'LR8' => 176, 'CR1EQ' => 177 }
- 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
199 200 201 202 203 204 205 206 |
# File 'lib/arch/ppc_registers.rb', line 199 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 |