1*9a0e4156SSadaf Ebrahimi /* Capstone Disassembly Engine */
2*9a0e4156SSadaf Ebrahimi /* By Nguyen Anh Quynh <[email protected]>, 2013-2015 */
3*9a0e4156SSadaf Ebrahimi
4*9a0e4156SSadaf Ebrahimi #ifdef CAPSTONE_HAS_POWERPC
5*9a0e4156SSadaf Ebrahimi
6*9a0e4156SSadaf Ebrahimi #include <stdio.h> // debug
7*9a0e4156SSadaf Ebrahimi #include <string.h>
8*9a0e4156SSadaf Ebrahimi
9*9a0e4156SSadaf Ebrahimi #include "../../utils.h"
10*9a0e4156SSadaf Ebrahimi
11*9a0e4156SSadaf Ebrahimi #include "PPCMapping.h"
12*9a0e4156SSadaf Ebrahimi
13*9a0e4156SSadaf Ebrahimi #define GET_INSTRINFO_ENUM
14*9a0e4156SSadaf Ebrahimi #include "PPCGenInstrInfo.inc"
15*9a0e4156SSadaf Ebrahimi
16*9a0e4156SSadaf Ebrahimi #ifndef CAPSTONE_DIET
17*9a0e4156SSadaf Ebrahimi static const name_map reg_name_maps[] = {
18*9a0e4156SSadaf Ebrahimi { PPC_REG_INVALID, NULL },
19*9a0e4156SSadaf Ebrahimi
20*9a0e4156SSadaf Ebrahimi { PPC_REG_CARRY, "ca" },
21*9a0e4156SSadaf Ebrahimi { PPC_REG_CR0, "cr0" },
22*9a0e4156SSadaf Ebrahimi { PPC_REG_CR1, "cr1" },
23*9a0e4156SSadaf Ebrahimi { PPC_REG_CR2, "cr2" },
24*9a0e4156SSadaf Ebrahimi { PPC_REG_CR3, "cr3" },
25*9a0e4156SSadaf Ebrahimi { PPC_REG_CR4, "cr4" },
26*9a0e4156SSadaf Ebrahimi { PPC_REG_CR5, "cr5" },
27*9a0e4156SSadaf Ebrahimi { PPC_REG_CR6, "cr6" },
28*9a0e4156SSadaf Ebrahimi { PPC_REG_CR7, "cr7" },
29*9a0e4156SSadaf Ebrahimi { PPC_REG_CTR, "ctr" },
30*9a0e4156SSadaf Ebrahimi { PPC_REG_F0, "f0" },
31*9a0e4156SSadaf Ebrahimi { PPC_REG_F1, "f1" },
32*9a0e4156SSadaf Ebrahimi { PPC_REG_F2, "f2" },
33*9a0e4156SSadaf Ebrahimi { PPC_REG_F3, "f3" },
34*9a0e4156SSadaf Ebrahimi { PPC_REG_F4, "f4" },
35*9a0e4156SSadaf Ebrahimi { PPC_REG_F5, "f5" },
36*9a0e4156SSadaf Ebrahimi { PPC_REG_F6, "f6" },
37*9a0e4156SSadaf Ebrahimi { PPC_REG_F7, "f7" },
38*9a0e4156SSadaf Ebrahimi { PPC_REG_F8, "f8" },
39*9a0e4156SSadaf Ebrahimi { PPC_REG_F9, "f9" },
40*9a0e4156SSadaf Ebrahimi { PPC_REG_F10, "f10" },
41*9a0e4156SSadaf Ebrahimi { PPC_REG_F11, "f11" },
42*9a0e4156SSadaf Ebrahimi { PPC_REG_F12, "f12" },
43*9a0e4156SSadaf Ebrahimi { PPC_REG_F13, "f13" },
44*9a0e4156SSadaf Ebrahimi { PPC_REG_F14, "f14" },
45*9a0e4156SSadaf Ebrahimi { PPC_REG_F15, "f15" },
46*9a0e4156SSadaf Ebrahimi { PPC_REG_F16, "f16" },
47*9a0e4156SSadaf Ebrahimi { PPC_REG_F17, "f17" },
48*9a0e4156SSadaf Ebrahimi { PPC_REG_F18, "f18" },
49*9a0e4156SSadaf Ebrahimi { PPC_REG_F19, "f19" },
50*9a0e4156SSadaf Ebrahimi { PPC_REG_F20, "f20" },
51*9a0e4156SSadaf Ebrahimi { PPC_REG_F21, "f21" },
52*9a0e4156SSadaf Ebrahimi { PPC_REG_F22, "f22" },
53*9a0e4156SSadaf Ebrahimi { PPC_REG_F23, "f23" },
54*9a0e4156SSadaf Ebrahimi { PPC_REG_F24, "f24" },
55*9a0e4156SSadaf Ebrahimi { PPC_REG_F25, "f25" },
56*9a0e4156SSadaf Ebrahimi { PPC_REG_F26, "f26" },
57*9a0e4156SSadaf Ebrahimi { PPC_REG_F27, "f27" },
58*9a0e4156SSadaf Ebrahimi { PPC_REG_F28, "f28" },
59*9a0e4156SSadaf Ebrahimi { PPC_REG_F29, "f29" },
60*9a0e4156SSadaf Ebrahimi { PPC_REG_F30, "f30" },
61*9a0e4156SSadaf Ebrahimi { PPC_REG_F31, "f31" },
62*9a0e4156SSadaf Ebrahimi { PPC_REG_LR, "lr" },
63*9a0e4156SSadaf Ebrahimi { PPC_REG_R0, "r0" },
64*9a0e4156SSadaf Ebrahimi { PPC_REG_R1, "r1" },
65*9a0e4156SSadaf Ebrahimi { PPC_REG_R2, "r2" },
66*9a0e4156SSadaf Ebrahimi { PPC_REG_R3, "r3" },
67*9a0e4156SSadaf Ebrahimi { PPC_REG_R4, "r4" },
68*9a0e4156SSadaf Ebrahimi { PPC_REG_R5, "r5" },
69*9a0e4156SSadaf Ebrahimi { PPC_REG_R6, "r6" },
70*9a0e4156SSadaf Ebrahimi { PPC_REG_R7, "r7" },
71*9a0e4156SSadaf Ebrahimi { PPC_REG_R8, "r8" },
72*9a0e4156SSadaf Ebrahimi { PPC_REG_R9, "r9" },
73*9a0e4156SSadaf Ebrahimi { PPC_REG_R10, "r10" },
74*9a0e4156SSadaf Ebrahimi { PPC_REG_R11, "r11" },
75*9a0e4156SSadaf Ebrahimi { PPC_REG_R12, "r12" },
76*9a0e4156SSadaf Ebrahimi { PPC_REG_R13, "r13" },
77*9a0e4156SSadaf Ebrahimi { PPC_REG_R14, "r14" },
78*9a0e4156SSadaf Ebrahimi { PPC_REG_R15, "r15" },
79*9a0e4156SSadaf Ebrahimi { PPC_REG_R16, "r16" },
80*9a0e4156SSadaf Ebrahimi { PPC_REG_R17, "r17" },
81*9a0e4156SSadaf Ebrahimi { PPC_REG_R18, "r18" },
82*9a0e4156SSadaf Ebrahimi { PPC_REG_R19, "r19" },
83*9a0e4156SSadaf Ebrahimi { PPC_REG_R20, "r20" },
84*9a0e4156SSadaf Ebrahimi { PPC_REG_R21, "r21" },
85*9a0e4156SSadaf Ebrahimi { PPC_REG_R22, "r22" },
86*9a0e4156SSadaf Ebrahimi { PPC_REG_R23, "r23" },
87*9a0e4156SSadaf Ebrahimi { PPC_REG_R24, "r24" },
88*9a0e4156SSadaf Ebrahimi { PPC_REG_R25, "r25" },
89*9a0e4156SSadaf Ebrahimi { PPC_REG_R26, "r26" },
90*9a0e4156SSadaf Ebrahimi { PPC_REG_R27, "r27" },
91*9a0e4156SSadaf Ebrahimi { PPC_REG_R28, "r28" },
92*9a0e4156SSadaf Ebrahimi { PPC_REG_R29, "r29" },
93*9a0e4156SSadaf Ebrahimi { PPC_REG_R30, "r30" },
94*9a0e4156SSadaf Ebrahimi { PPC_REG_R31, "r31" },
95*9a0e4156SSadaf Ebrahimi { PPC_REG_V0, "v0" },
96*9a0e4156SSadaf Ebrahimi { PPC_REG_V1, "v1" },
97*9a0e4156SSadaf Ebrahimi { PPC_REG_V2, "v2" },
98*9a0e4156SSadaf Ebrahimi { PPC_REG_V3, "v3" },
99*9a0e4156SSadaf Ebrahimi { PPC_REG_V4, "v4" },
100*9a0e4156SSadaf Ebrahimi { PPC_REG_V5, "v5" },
101*9a0e4156SSadaf Ebrahimi { PPC_REG_V6, "v6" },
102*9a0e4156SSadaf Ebrahimi { PPC_REG_V7, "v7" },
103*9a0e4156SSadaf Ebrahimi { PPC_REG_V8, "v8" },
104*9a0e4156SSadaf Ebrahimi { PPC_REG_V9, "v9" },
105*9a0e4156SSadaf Ebrahimi { PPC_REG_V10, "v10" },
106*9a0e4156SSadaf Ebrahimi { PPC_REG_V11, "v11" },
107*9a0e4156SSadaf Ebrahimi { PPC_REG_V12, "v12" },
108*9a0e4156SSadaf Ebrahimi { PPC_REG_V13, "v13" },
109*9a0e4156SSadaf Ebrahimi { PPC_REG_V14, "v14" },
110*9a0e4156SSadaf Ebrahimi { PPC_REG_V15, "v15" },
111*9a0e4156SSadaf Ebrahimi { PPC_REG_V16, "v16" },
112*9a0e4156SSadaf Ebrahimi { PPC_REG_V17, "v17" },
113*9a0e4156SSadaf Ebrahimi { PPC_REG_V18, "v18" },
114*9a0e4156SSadaf Ebrahimi { PPC_REG_V19, "v19" },
115*9a0e4156SSadaf Ebrahimi { PPC_REG_V20, "v20" },
116*9a0e4156SSadaf Ebrahimi { PPC_REG_V21, "v21" },
117*9a0e4156SSadaf Ebrahimi { PPC_REG_V22, "v22" },
118*9a0e4156SSadaf Ebrahimi { PPC_REG_V23, "v23" },
119*9a0e4156SSadaf Ebrahimi { PPC_REG_V24, "v24" },
120*9a0e4156SSadaf Ebrahimi { PPC_REG_V25, "v25" },
121*9a0e4156SSadaf Ebrahimi { PPC_REG_V26, "v26" },
122*9a0e4156SSadaf Ebrahimi { PPC_REG_V27, "v27" },
123*9a0e4156SSadaf Ebrahimi { PPC_REG_V28, "v28" },
124*9a0e4156SSadaf Ebrahimi { PPC_REG_V29, "v29" },
125*9a0e4156SSadaf Ebrahimi { PPC_REG_V30, "v30" },
126*9a0e4156SSadaf Ebrahimi { PPC_REG_V31, "v31" },
127*9a0e4156SSadaf Ebrahimi { PPC_REG_VRSAVE, "vrsave" },
128*9a0e4156SSadaf Ebrahimi { PPC_REG_VS0, "vs0"},
129*9a0e4156SSadaf Ebrahimi { PPC_REG_VS1, "vs1"},
130*9a0e4156SSadaf Ebrahimi { PPC_REG_VS2, "vs2"},
131*9a0e4156SSadaf Ebrahimi { PPC_REG_VS3, "vs3"},
132*9a0e4156SSadaf Ebrahimi { PPC_REG_VS4, "vs4"},
133*9a0e4156SSadaf Ebrahimi { PPC_REG_VS5, "vs5"},
134*9a0e4156SSadaf Ebrahimi { PPC_REG_VS6, "vs6"},
135*9a0e4156SSadaf Ebrahimi { PPC_REG_VS7, "vs7"},
136*9a0e4156SSadaf Ebrahimi { PPC_REG_VS8, "vs8"},
137*9a0e4156SSadaf Ebrahimi { PPC_REG_VS9, "vs9"},
138*9a0e4156SSadaf Ebrahimi { PPC_REG_VS10, "vs10"},
139*9a0e4156SSadaf Ebrahimi { PPC_REG_VS11, "vs11"},
140*9a0e4156SSadaf Ebrahimi { PPC_REG_VS12, "vs12"},
141*9a0e4156SSadaf Ebrahimi { PPC_REG_VS13, "vs13"},
142*9a0e4156SSadaf Ebrahimi { PPC_REG_VS14, "vs14"},
143*9a0e4156SSadaf Ebrahimi { PPC_REG_VS15, "vs15"},
144*9a0e4156SSadaf Ebrahimi { PPC_REG_VS16, "vs16"},
145*9a0e4156SSadaf Ebrahimi { PPC_REG_VS17, "vs17"},
146*9a0e4156SSadaf Ebrahimi { PPC_REG_VS18, "vs18"},
147*9a0e4156SSadaf Ebrahimi { PPC_REG_VS19, "vs19"},
148*9a0e4156SSadaf Ebrahimi { PPC_REG_VS20, "vs20"},
149*9a0e4156SSadaf Ebrahimi { PPC_REG_VS21, "vs21"},
150*9a0e4156SSadaf Ebrahimi { PPC_REG_VS22, "vs22"},
151*9a0e4156SSadaf Ebrahimi { PPC_REG_VS23, "vs23"},
152*9a0e4156SSadaf Ebrahimi { PPC_REG_VS24, "vs24"},
153*9a0e4156SSadaf Ebrahimi { PPC_REG_VS25, "vs25"},
154*9a0e4156SSadaf Ebrahimi { PPC_REG_VS26, "vs26"},
155*9a0e4156SSadaf Ebrahimi { PPC_REG_VS27, "vs27"},
156*9a0e4156SSadaf Ebrahimi { PPC_REG_VS28, "vs28"},
157*9a0e4156SSadaf Ebrahimi { PPC_REG_VS29, "vs29"},
158*9a0e4156SSadaf Ebrahimi { PPC_REG_VS30, "vs30"},
159*9a0e4156SSadaf Ebrahimi { PPC_REG_VS31, "vs31"},
160*9a0e4156SSadaf Ebrahimi { PPC_REG_VS32, "vs32"},
161*9a0e4156SSadaf Ebrahimi { PPC_REG_VS33, "vs33"},
162*9a0e4156SSadaf Ebrahimi { PPC_REG_VS34, "vs34"},
163*9a0e4156SSadaf Ebrahimi { PPC_REG_VS35, "vs35"},
164*9a0e4156SSadaf Ebrahimi { PPC_REG_VS36, "vs36"},
165*9a0e4156SSadaf Ebrahimi { PPC_REG_VS37, "vs37"},
166*9a0e4156SSadaf Ebrahimi { PPC_REG_VS38, "vs38"},
167*9a0e4156SSadaf Ebrahimi { PPC_REG_VS39, "vs39"},
168*9a0e4156SSadaf Ebrahimi { PPC_REG_VS40, "vs40"},
169*9a0e4156SSadaf Ebrahimi { PPC_REG_VS41, "vs41"},
170*9a0e4156SSadaf Ebrahimi { PPC_REG_VS42, "vs42"},
171*9a0e4156SSadaf Ebrahimi { PPC_REG_VS43, "vs43"},
172*9a0e4156SSadaf Ebrahimi { PPC_REG_VS44, "vs44"},
173*9a0e4156SSadaf Ebrahimi { PPC_REG_VS45, "vs45"},
174*9a0e4156SSadaf Ebrahimi { PPC_REG_VS46, "vs46"},
175*9a0e4156SSadaf Ebrahimi { PPC_REG_VS47, "vs47"},
176*9a0e4156SSadaf Ebrahimi { PPC_REG_VS48, "vs48"},
177*9a0e4156SSadaf Ebrahimi { PPC_REG_VS49, "vs49"},
178*9a0e4156SSadaf Ebrahimi { PPC_REG_VS50, "vs50"},
179*9a0e4156SSadaf Ebrahimi { PPC_REG_VS51, "vs51"},
180*9a0e4156SSadaf Ebrahimi { PPC_REG_VS52, "vs52"},
181*9a0e4156SSadaf Ebrahimi { PPC_REG_VS53, "vs53"},
182*9a0e4156SSadaf Ebrahimi { PPC_REG_VS54, "vs54"},
183*9a0e4156SSadaf Ebrahimi { PPC_REG_VS55, "vs55"},
184*9a0e4156SSadaf Ebrahimi { PPC_REG_VS56, "vs56"},
185*9a0e4156SSadaf Ebrahimi { PPC_REG_VS57, "vs57"},
186*9a0e4156SSadaf Ebrahimi { PPC_REG_VS58, "vs58"},
187*9a0e4156SSadaf Ebrahimi { PPC_REG_VS59, "vs59"},
188*9a0e4156SSadaf Ebrahimi { PPC_REG_VS60, "vs60"},
189*9a0e4156SSadaf Ebrahimi { PPC_REG_VS61, "vs61"},
190*9a0e4156SSadaf Ebrahimi { PPC_REG_VS62, "vs62"},
191*9a0e4156SSadaf Ebrahimi { PPC_REG_VS63, "vs63"},
192*9a0e4156SSadaf Ebrahimi { PPC_REG_Q0, "q0" },
193*9a0e4156SSadaf Ebrahimi { PPC_REG_Q1, "q1" },
194*9a0e4156SSadaf Ebrahimi { PPC_REG_Q2, "q2" },
195*9a0e4156SSadaf Ebrahimi { PPC_REG_Q3, "q3" },
196*9a0e4156SSadaf Ebrahimi { PPC_REG_Q4, "q4" },
197*9a0e4156SSadaf Ebrahimi { PPC_REG_Q5, "q5" },
198*9a0e4156SSadaf Ebrahimi { PPC_REG_Q6, "q6" },
199*9a0e4156SSadaf Ebrahimi { PPC_REG_Q7, "q7" },
200*9a0e4156SSadaf Ebrahimi { PPC_REG_Q8, "q8" },
201*9a0e4156SSadaf Ebrahimi { PPC_REG_Q9, "q9" },
202*9a0e4156SSadaf Ebrahimi { PPC_REG_Q10, "q10" },
203*9a0e4156SSadaf Ebrahimi { PPC_REG_Q11, "q11" },
204*9a0e4156SSadaf Ebrahimi { PPC_REG_Q12, "q12" },
205*9a0e4156SSadaf Ebrahimi { PPC_REG_Q13, "q13" },
206*9a0e4156SSadaf Ebrahimi { PPC_REG_Q14, "q14" },
207*9a0e4156SSadaf Ebrahimi { PPC_REG_Q15, "q15" },
208*9a0e4156SSadaf Ebrahimi { PPC_REG_Q16, "q16" },
209*9a0e4156SSadaf Ebrahimi { PPC_REG_Q17, "q17" },
210*9a0e4156SSadaf Ebrahimi { PPC_REG_Q18, "q18" },
211*9a0e4156SSadaf Ebrahimi { PPC_REG_Q19, "q19" },
212*9a0e4156SSadaf Ebrahimi { PPC_REG_Q20, "q20" },
213*9a0e4156SSadaf Ebrahimi { PPC_REG_Q21, "q21" },
214*9a0e4156SSadaf Ebrahimi { PPC_REG_Q22, "q22" },
215*9a0e4156SSadaf Ebrahimi { PPC_REG_Q23, "q23" },
216*9a0e4156SSadaf Ebrahimi { PPC_REG_Q24, "q24" },
217*9a0e4156SSadaf Ebrahimi { PPC_REG_Q25, "q25" },
218*9a0e4156SSadaf Ebrahimi { PPC_REG_Q26, "q26" },
219*9a0e4156SSadaf Ebrahimi { PPC_REG_Q27, "q27" },
220*9a0e4156SSadaf Ebrahimi { PPC_REG_Q28, "q28" },
221*9a0e4156SSadaf Ebrahimi { PPC_REG_Q29, "q29" },
222*9a0e4156SSadaf Ebrahimi { PPC_REG_Q30, "q30" },
223*9a0e4156SSadaf Ebrahimi { PPC_REG_Q31, "q31" },
224*9a0e4156SSadaf Ebrahimi
225*9a0e4156SSadaf Ebrahimi // extras
226*9a0e4156SSadaf Ebrahimi { PPC_REG_RM, "rm" },
227*9a0e4156SSadaf Ebrahimi { PPC_REG_CTR8, "ctr8" },
228*9a0e4156SSadaf Ebrahimi { PPC_REG_LR8, "lr8" },
229*9a0e4156SSadaf Ebrahimi { PPC_REG_CR1EQ, "cr1eq" },
230*9a0e4156SSadaf Ebrahimi { PPC_REG_X2, "x2" },
231*9a0e4156SSadaf Ebrahimi };
232*9a0e4156SSadaf Ebrahimi #endif
233*9a0e4156SSadaf Ebrahimi
PPC_reg_name(csh handle,unsigned int reg)234*9a0e4156SSadaf Ebrahimi const char *PPC_reg_name(csh handle, unsigned int reg)
235*9a0e4156SSadaf Ebrahimi {
236*9a0e4156SSadaf Ebrahimi #ifndef CAPSTONE_DIET
237*9a0e4156SSadaf Ebrahimi if (reg >= ARR_SIZE(reg_name_maps))
238*9a0e4156SSadaf Ebrahimi return NULL;
239*9a0e4156SSadaf Ebrahimi
240*9a0e4156SSadaf Ebrahimi return reg_name_maps[reg].name;
241*9a0e4156SSadaf Ebrahimi #else
242*9a0e4156SSadaf Ebrahimi return NULL;
243*9a0e4156SSadaf Ebrahimi #endif
244*9a0e4156SSadaf Ebrahimi }
245*9a0e4156SSadaf Ebrahimi
246*9a0e4156SSadaf Ebrahimi static const insn_map insns[] = {
247*9a0e4156SSadaf Ebrahimi // dummy item
248*9a0e4156SSadaf Ebrahimi {
249*9a0e4156SSadaf Ebrahimi 0, 0,
250*9a0e4156SSadaf Ebrahimi #ifndef CAPSTONE_DIET
251*9a0e4156SSadaf Ebrahimi { 0 }, { 0 }, { 0 }, 0, 0
252*9a0e4156SSadaf Ebrahimi #endif
253*9a0e4156SSadaf Ebrahimi },
254*9a0e4156SSadaf Ebrahimi
255*9a0e4156SSadaf Ebrahimi #include "PPCMappingInsn.inc"
256*9a0e4156SSadaf Ebrahimi };
257*9a0e4156SSadaf Ebrahimi
258*9a0e4156SSadaf Ebrahimi // given internal insn id, return public instruction info
PPC_get_insn_id(cs_struct * h,cs_insn * insn,unsigned int id)259*9a0e4156SSadaf Ebrahimi void PPC_get_insn_id(cs_struct *h, cs_insn *insn, unsigned int id)
260*9a0e4156SSadaf Ebrahimi {
261*9a0e4156SSadaf Ebrahimi int i;
262*9a0e4156SSadaf Ebrahimi
263*9a0e4156SSadaf Ebrahimi i = insn_find(insns, ARR_SIZE(insns), id, &h->insn_cache);
264*9a0e4156SSadaf Ebrahimi if (i != 0) {
265*9a0e4156SSadaf Ebrahimi insn->id = insns[i].mapid;
266*9a0e4156SSadaf Ebrahimi
267*9a0e4156SSadaf Ebrahimi if (h->detail) {
268*9a0e4156SSadaf Ebrahimi #ifndef CAPSTONE_DIET
269*9a0e4156SSadaf Ebrahimi cs_struct handle;
270*9a0e4156SSadaf Ebrahimi handle.detail = h->detail;
271*9a0e4156SSadaf Ebrahimi
272*9a0e4156SSadaf Ebrahimi memcpy(insn->detail->regs_read, insns[i].regs_use, sizeof(insns[i].regs_use));
273*9a0e4156SSadaf Ebrahimi insn->detail->regs_read_count = (uint8_t)count_positive(insns[i].regs_use);
274*9a0e4156SSadaf Ebrahimi
275*9a0e4156SSadaf Ebrahimi memcpy(insn->detail->regs_write, insns[i].regs_mod, sizeof(insns[i].regs_mod));
276*9a0e4156SSadaf Ebrahimi insn->detail->regs_write_count = (uint8_t)count_positive(insns[i].regs_mod);
277*9a0e4156SSadaf Ebrahimi
278*9a0e4156SSadaf Ebrahimi memcpy(insn->detail->groups, insns[i].groups, sizeof(insns[i].groups));
279*9a0e4156SSadaf Ebrahimi insn->detail->groups_count = (uint8_t)count_positive8(insns[i].groups);
280*9a0e4156SSadaf Ebrahimi
281*9a0e4156SSadaf Ebrahimi if (insns[i].branch || insns[i].indirect_branch) {
282*9a0e4156SSadaf Ebrahimi // this insn also belongs to JUMP group. add JUMP group
283*9a0e4156SSadaf Ebrahimi insn->detail->groups[insn->detail->groups_count] = PPC_GRP_JUMP;
284*9a0e4156SSadaf Ebrahimi insn->detail->groups_count++;
285*9a0e4156SSadaf Ebrahimi }
286*9a0e4156SSadaf Ebrahimi
287*9a0e4156SSadaf Ebrahimi insn->detail->ppc.update_cr0 = cs_reg_write((csh)&handle, insn, PPC_REG_CR0);
288*9a0e4156SSadaf Ebrahimi #endif
289*9a0e4156SSadaf Ebrahimi }
290*9a0e4156SSadaf Ebrahimi }
291*9a0e4156SSadaf Ebrahimi }
292*9a0e4156SSadaf Ebrahimi
293*9a0e4156SSadaf Ebrahimi #ifndef CAPSTONE_DIET
294*9a0e4156SSadaf Ebrahimi static const name_map insn_name_maps[] = {
295*9a0e4156SSadaf Ebrahimi { PPC_INS_INVALID, NULL },
296*9a0e4156SSadaf Ebrahimi
297*9a0e4156SSadaf Ebrahimi { PPC_INS_ADD, "add" },
298*9a0e4156SSadaf Ebrahimi { PPC_INS_ADDC, "addc" },
299*9a0e4156SSadaf Ebrahimi { PPC_INS_ADDE, "adde" },
300*9a0e4156SSadaf Ebrahimi { PPC_INS_ADDI, "addi" },
301*9a0e4156SSadaf Ebrahimi { PPC_INS_ADDIC, "addic" },
302*9a0e4156SSadaf Ebrahimi { PPC_INS_ADDIS, "addis" },
303*9a0e4156SSadaf Ebrahimi { PPC_INS_ADDME, "addme" },
304*9a0e4156SSadaf Ebrahimi { PPC_INS_ADDZE, "addze" },
305*9a0e4156SSadaf Ebrahimi { PPC_INS_AND, "and" },
306*9a0e4156SSadaf Ebrahimi { PPC_INS_ANDC, "andc" },
307*9a0e4156SSadaf Ebrahimi { PPC_INS_ANDIS, "andis" },
308*9a0e4156SSadaf Ebrahimi { PPC_INS_ANDI, "andi" },
309*9a0e4156SSadaf Ebrahimi { PPC_INS_ATTN, "attn" },
310*9a0e4156SSadaf Ebrahimi { PPC_INS_B, "b" },
311*9a0e4156SSadaf Ebrahimi { PPC_INS_BA, "ba" },
312*9a0e4156SSadaf Ebrahimi { PPC_INS_BC, "bc" },
313*9a0e4156SSadaf Ebrahimi { PPC_INS_BCCTR, "bcctr" },
314*9a0e4156SSadaf Ebrahimi { PPC_INS_BCCTRL, "bcctrl" },
315*9a0e4156SSadaf Ebrahimi { PPC_INS_BCL, "bcl" },
316*9a0e4156SSadaf Ebrahimi { PPC_INS_BCLR, "bclr" },
317*9a0e4156SSadaf Ebrahimi { PPC_INS_BCLRL, "bclrl" },
318*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTR, "bctr" },
319*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTRL, "bctrl" },
320*9a0e4156SSadaf Ebrahimi { PPC_INS_BCT, "bct" },
321*9a0e4156SSadaf Ebrahimi { PPC_INS_BDNZ, "bdnz" },
322*9a0e4156SSadaf Ebrahimi { PPC_INS_BDNZA, "bdnza" },
323*9a0e4156SSadaf Ebrahimi { PPC_INS_BDNZL, "bdnzl" },
324*9a0e4156SSadaf Ebrahimi { PPC_INS_BDNZLA, "bdnzla" },
325*9a0e4156SSadaf Ebrahimi { PPC_INS_BDNZLR, "bdnzlr" },
326*9a0e4156SSadaf Ebrahimi { PPC_INS_BDNZLRL, "bdnzlrl" },
327*9a0e4156SSadaf Ebrahimi { PPC_INS_BDZ, "bdz" },
328*9a0e4156SSadaf Ebrahimi { PPC_INS_BDZA, "bdza" },
329*9a0e4156SSadaf Ebrahimi { PPC_INS_BDZL, "bdzl" },
330*9a0e4156SSadaf Ebrahimi { PPC_INS_BDZLA, "bdzla" },
331*9a0e4156SSadaf Ebrahimi { PPC_INS_BDZLR, "bdzlr" },
332*9a0e4156SSadaf Ebrahimi { PPC_INS_BDZLRL, "bdzlrl" },
333*9a0e4156SSadaf Ebrahimi { PPC_INS_BL, "bl" },
334*9a0e4156SSadaf Ebrahimi { PPC_INS_BLA, "bla" },
335*9a0e4156SSadaf Ebrahimi { PPC_INS_BLR, "blr" },
336*9a0e4156SSadaf Ebrahimi { PPC_INS_BLRL, "blrl" },
337*9a0e4156SSadaf Ebrahimi { PPC_INS_BRINC, "brinc" },
338*9a0e4156SSadaf Ebrahimi { PPC_INS_CMPB, "cmpb" },
339*9a0e4156SSadaf Ebrahimi { PPC_INS_CMPD, "cmpd" },
340*9a0e4156SSadaf Ebrahimi { PPC_INS_CMPDI, "cmpdi" },
341*9a0e4156SSadaf Ebrahimi { PPC_INS_CMPLD, "cmpld" },
342*9a0e4156SSadaf Ebrahimi { PPC_INS_CMPLDI, "cmpldi" },
343*9a0e4156SSadaf Ebrahimi { PPC_INS_CMPLW, "cmplw" },
344*9a0e4156SSadaf Ebrahimi { PPC_INS_CMPLWI, "cmplwi" },
345*9a0e4156SSadaf Ebrahimi { PPC_INS_CMPW, "cmpw" },
346*9a0e4156SSadaf Ebrahimi { PPC_INS_CMPWI, "cmpwi" },
347*9a0e4156SSadaf Ebrahimi { PPC_INS_CNTLZD, "cntlzd" },
348*9a0e4156SSadaf Ebrahimi { PPC_INS_CNTLZW, "cntlzw" },
349*9a0e4156SSadaf Ebrahimi { PPC_INS_CREQV, "creqv" },
350*9a0e4156SSadaf Ebrahimi { PPC_INS_CRXOR, "crxor" },
351*9a0e4156SSadaf Ebrahimi { PPC_INS_CRAND, "crand" },
352*9a0e4156SSadaf Ebrahimi { PPC_INS_CRANDC, "crandc" },
353*9a0e4156SSadaf Ebrahimi { PPC_INS_CRNAND, "crnand" },
354*9a0e4156SSadaf Ebrahimi { PPC_INS_CRNOR, "crnor" },
355*9a0e4156SSadaf Ebrahimi { PPC_INS_CROR, "cror" },
356*9a0e4156SSadaf Ebrahimi { PPC_INS_CRORC, "crorc" },
357*9a0e4156SSadaf Ebrahimi { PPC_INS_DCBA, "dcba" },
358*9a0e4156SSadaf Ebrahimi { PPC_INS_DCBF, "dcbf" },
359*9a0e4156SSadaf Ebrahimi { PPC_INS_DCBI, "dcbi" },
360*9a0e4156SSadaf Ebrahimi { PPC_INS_DCBST, "dcbst" },
361*9a0e4156SSadaf Ebrahimi { PPC_INS_DCBT, "dcbt" },
362*9a0e4156SSadaf Ebrahimi { PPC_INS_DCBTST, "dcbtst" },
363*9a0e4156SSadaf Ebrahimi { PPC_INS_DCBZ, "dcbz" },
364*9a0e4156SSadaf Ebrahimi { PPC_INS_DCBZL, "dcbzl" },
365*9a0e4156SSadaf Ebrahimi { PPC_INS_DCCCI, "dccci" },
366*9a0e4156SSadaf Ebrahimi { PPC_INS_DIVD, "divd" },
367*9a0e4156SSadaf Ebrahimi { PPC_INS_DIVDU, "divdu" },
368*9a0e4156SSadaf Ebrahimi { PPC_INS_DIVW, "divw" },
369*9a0e4156SSadaf Ebrahimi { PPC_INS_DIVWU, "divwu" },
370*9a0e4156SSadaf Ebrahimi { PPC_INS_DSS, "dss" },
371*9a0e4156SSadaf Ebrahimi { PPC_INS_DSSALL, "dssall" },
372*9a0e4156SSadaf Ebrahimi { PPC_INS_DST, "dst" },
373*9a0e4156SSadaf Ebrahimi { PPC_INS_DSTST, "dstst" },
374*9a0e4156SSadaf Ebrahimi { PPC_INS_DSTSTT, "dststt" },
375*9a0e4156SSadaf Ebrahimi { PPC_INS_DSTT, "dstt" },
376*9a0e4156SSadaf Ebrahimi { PPC_INS_EQV, "eqv" },
377*9a0e4156SSadaf Ebrahimi { PPC_INS_EVABS, "evabs" },
378*9a0e4156SSadaf Ebrahimi { PPC_INS_EVADDIW, "evaddiw" },
379*9a0e4156SSadaf Ebrahimi { PPC_INS_EVADDSMIAAW, "evaddsmiaaw" },
380*9a0e4156SSadaf Ebrahimi { PPC_INS_EVADDSSIAAW, "evaddssiaaw" },
381*9a0e4156SSadaf Ebrahimi { PPC_INS_EVADDUMIAAW, "evaddumiaaw" },
382*9a0e4156SSadaf Ebrahimi { PPC_INS_EVADDUSIAAW, "evaddusiaaw" },
383*9a0e4156SSadaf Ebrahimi { PPC_INS_EVADDW, "evaddw" },
384*9a0e4156SSadaf Ebrahimi { PPC_INS_EVAND, "evand" },
385*9a0e4156SSadaf Ebrahimi { PPC_INS_EVANDC, "evandc" },
386*9a0e4156SSadaf Ebrahimi { PPC_INS_EVCMPEQ, "evcmpeq" },
387*9a0e4156SSadaf Ebrahimi { PPC_INS_EVCMPGTS, "evcmpgts" },
388*9a0e4156SSadaf Ebrahimi { PPC_INS_EVCMPGTU, "evcmpgtu" },
389*9a0e4156SSadaf Ebrahimi { PPC_INS_EVCMPLTS, "evcmplts" },
390*9a0e4156SSadaf Ebrahimi { PPC_INS_EVCMPLTU, "evcmpltu" },
391*9a0e4156SSadaf Ebrahimi { PPC_INS_EVCNTLSW, "evcntlsw" },
392*9a0e4156SSadaf Ebrahimi { PPC_INS_EVCNTLZW, "evcntlzw" },
393*9a0e4156SSadaf Ebrahimi { PPC_INS_EVDIVWS, "evdivws" },
394*9a0e4156SSadaf Ebrahimi { PPC_INS_EVDIVWU, "evdivwu" },
395*9a0e4156SSadaf Ebrahimi { PPC_INS_EVEQV, "eveqv" },
396*9a0e4156SSadaf Ebrahimi { PPC_INS_EVEXTSB, "evextsb" },
397*9a0e4156SSadaf Ebrahimi { PPC_INS_EVEXTSH, "evextsh" },
398*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLDD, "evldd" },
399*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLDDX, "evlddx" },
400*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLDH, "evldh" },
401*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLDHX, "evldhx" },
402*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLDW, "evldw" },
403*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLDWX, "evldwx" },
404*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLHHESPLAT, "evlhhesplat" },
405*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLHHESPLATX, "evlhhesplatx" },
406*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLHHOSSPLAT, "evlhhossplat" },
407*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLHHOSSPLATX, "evlhhossplatx" },
408*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLHHOUSPLAT, "evlhhousplat" },
409*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLHHOUSPLATX, "evlhhousplatx" },
410*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLWHE, "evlwhe" },
411*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLWHEX, "evlwhex" },
412*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLWHOS, "evlwhos" },
413*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLWHOSX, "evlwhosx" },
414*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLWHOU, "evlwhou" },
415*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLWHOUX, "evlwhoux" },
416*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLWHSPLAT, "evlwhsplat" },
417*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLWHSPLATX, "evlwhsplatx" },
418*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLWWSPLAT, "evlwwsplat" },
419*9a0e4156SSadaf Ebrahimi { PPC_INS_EVLWWSPLATX, "evlwwsplatx" },
420*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMERGEHI, "evmergehi" },
421*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMERGEHILO, "evmergehilo" },
422*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMERGELO, "evmergelo" },
423*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMERGELOHI, "evmergelohi" },
424*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHEGSMFAA, "evmhegsmfaa" },
425*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHEGSMFAN, "evmhegsmfan" },
426*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHEGSMIAA, "evmhegsmiaa" },
427*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHEGSMIAN, "evmhegsmian" },
428*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHEGUMIAA, "evmhegumiaa" },
429*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHEGUMIAN, "evmhegumian" },
430*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHESMF, "evmhesmf" },
431*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHESMFA, "evmhesmfa" },
432*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHESMFAAW, "evmhesmfaaw" },
433*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHESMFANW, "evmhesmfanw" },
434*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHESMI, "evmhesmi" },
435*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHESMIA, "evmhesmia" },
436*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHESMIAAW, "evmhesmiaaw" },
437*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHESMIANW, "evmhesmianw" },
438*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHESSF, "evmhessf" },
439*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHESSFA, "evmhessfa" },
440*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHESSFAAW, "evmhessfaaw" },
441*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHESSFANW, "evmhessfanw" },
442*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHESSIAAW, "evmhessiaaw" },
443*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHESSIANW, "evmhessianw" },
444*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHEUMI, "evmheumi" },
445*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHEUMIA, "evmheumia" },
446*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHEUMIAAW, "evmheumiaaw" },
447*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHEUMIANW, "evmheumianw" },
448*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHEUSIAAW, "evmheusiaaw" },
449*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHEUSIANW, "evmheusianw" },
450*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOGSMFAA, "evmhogsmfaa" },
451*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOGSMFAN, "evmhogsmfan" },
452*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOGSMIAA, "evmhogsmiaa" },
453*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOGSMIAN, "evmhogsmian" },
454*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOGUMIAA, "evmhogumiaa" },
455*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOGUMIAN, "evmhogumian" },
456*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOSMF, "evmhosmf" },
457*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOSMFA, "evmhosmfa" },
458*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOSMFAAW, "evmhosmfaaw" },
459*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOSMFANW, "evmhosmfanw" },
460*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOSMI, "evmhosmi" },
461*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOSMIA, "evmhosmia" },
462*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOSMIAAW, "evmhosmiaaw" },
463*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOSMIANW, "evmhosmianw" },
464*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOSSF, "evmhossf" },
465*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOSSFA, "evmhossfa" },
466*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOSSFAAW, "evmhossfaaw" },
467*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOSSFANW, "evmhossfanw" },
468*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOSSIAAW, "evmhossiaaw" },
469*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOSSIANW, "evmhossianw" },
470*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOUMI, "evmhoumi" },
471*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOUMIA, "evmhoumia" },
472*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOUMIAAW, "evmhoumiaaw" },
473*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOUMIANW, "evmhoumianw" },
474*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOUSIAAW, "evmhousiaaw" },
475*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMHOUSIANW, "evmhousianw" },
476*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMRA, "evmra" },
477*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWHSMF, "evmwhsmf" },
478*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWHSMFA, "evmwhsmfa" },
479*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWHSMI, "evmwhsmi" },
480*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWHSMIA, "evmwhsmia" },
481*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWHSSF, "evmwhssf" },
482*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWHSSFA, "evmwhssfa" },
483*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWHUMI, "evmwhumi" },
484*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWHUMIA, "evmwhumia" },
485*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWLSMIAAW, "evmwlsmiaaw" },
486*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWLSMIANW, "evmwlsmianw" },
487*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWLSSIAAW, "evmwlssiaaw" },
488*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWLSSIANW, "evmwlssianw" },
489*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWLUMI, "evmwlumi" },
490*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWLUMIA, "evmwlumia" },
491*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWLUMIAAW, "evmwlumiaaw" },
492*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWLUMIANW, "evmwlumianw" },
493*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWLUSIAAW, "evmwlusiaaw" },
494*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWLUSIANW, "evmwlusianw" },
495*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWSMF, "evmwsmf" },
496*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWSMFA, "evmwsmfa" },
497*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWSMFAA, "evmwsmfaa" },
498*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWSMFAN, "evmwsmfan" },
499*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWSMI, "evmwsmi" },
500*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWSMIA, "evmwsmia" },
501*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWSMIAA, "evmwsmiaa" },
502*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWSMIAN, "evmwsmian" },
503*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWSSF, "evmwssf" },
504*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWSSFA, "evmwssfa" },
505*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWSSFAA, "evmwssfaa" },
506*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWSSFAN, "evmwssfan" },
507*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWUMI, "evmwumi" },
508*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWUMIA, "evmwumia" },
509*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWUMIAA, "evmwumiaa" },
510*9a0e4156SSadaf Ebrahimi { PPC_INS_EVMWUMIAN, "evmwumian" },
511*9a0e4156SSadaf Ebrahimi { PPC_INS_EVNAND, "evnand" },
512*9a0e4156SSadaf Ebrahimi { PPC_INS_EVNEG, "evneg" },
513*9a0e4156SSadaf Ebrahimi { PPC_INS_EVNOR, "evnor" },
514*9a0e4156SSadaf Ebrahimi { PPC_INS_EVOR, "evor" },
515*9a0e4156SSadaf Ebrahimi { PPC_INS_EVORC, "evorc" },
516*9a0e4156SSadaf Ebrahimi { PPC_INS_EVRLW, "evrlw" },
517*9a0e4156SSadaf Ebrahimi { PPC_INS_EVRLWI, "evrlwi" },
518*9a0e4156SSadaf Ebrahimi { PPC_INS_EVRNDW, "evrndw" },
519*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSLW, "evslw" },
520*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSLWI, "evslwi" },
521*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSPLATFI, "evsplatfi" },
522*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSPLATI, "evsplati" },
523*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSRWIS, "evsrwis" },
524*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSRWIU, "evsrwiu" },
525*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSRWS, "evsrws" },
526*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSRWU, "evsrwu" },
527*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSTDD, "evstdd" },
528*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSTDDX, "evstddx" },
529*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSTDH, "evstdh" },
530*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSTDHX, "evstdhx" },
531*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSTDW, "evstdw" },
532*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSTDWX, "evstdwx" },
533*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSTWHE, "evstwhe" },
534*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSTWHEX, "evstwhex" },
535*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSTWHO, "evstwho" },
536*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSTWHOX, "evstwhox" },
537*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSTWWE, "evstwwe" },
538*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSTWWEX, "evstwwex" },
539*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSTWWO, "evstwwo" },
540*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSTWWOX, "evstwwox" },
541*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSUBFSMIAAW, "evsubfsmiaaw" },
542*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSUBFSSIAAW, "evsubfssiaaw" },
543*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSUBFUMIAAW, "evsubfumiaaw" },
544*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSUBFUSIAAW, "evsubfusiaaw" },
545*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSUBFW, "evsubfw" },
546*9a0e4156SSadaf Ebrahimi { PPC_INS_EVSUBIFW, "evsubifw" },
547*9a0e4156SSadaf Ebrahimi { PPC_INS_EVXOR, "evxor" },
548*9a0e4156SSadaf Ebrahimi { PPC_INS_EXTSB, "extsb" },
549*9a0e4156SSadaf Ebrahimi { PPC_INS_EXTSH, "extsh" },
550*9a0e4156SSadaf Ebrahimi { PPC_INS_EXTSW, "extsw" },
551*9a0e4156SSadaf Ebrahimi { PPC_INS_EIEIO, "eieio" },
552*9a0e4156SSadaf Ebrahimi { PPC_INS_FABS, "fabs" },
553*9a0e4156SSadaf Ebrahimi { PPC_INS_FADD, "fadd" },
554*9a0e4156SSadaf Ebrahimi { PPC_INS_FADDS, "fadds" },
555*9a0e4156SSadaf Ebrahimi { PPC_INS_FCFID, "fcfid" },
556*9a0e4156SSadaf Ebrahimi { PPC_INS_FCFIDS, "fcfids" },
557*9a0e4156SSadaf Ebrahimi { PPC_INS_FCFIDU, "fcfidu" },
558*9a0e4156SSadaf Ebrahimi { PPC_INS_FCFIDUS, "fcfidus" },
559*9a0e4156SSadaf Ebrahimi { PPC_INS_FCMPU, "fcmpu" },
560*9a0e4156SSadaf Ebrahimi { PPC_INS_FCPSGN, "fcpsgn" },
561*9a0e4156SSadaf Ebrahimi { PPC_INS_FCTID, "fctid" },
562*9a0e4156SSadaf Ebrahimi { PPC_INS_FCTIDUZ, "fctiduz" },
563*9a0e4156SSadaf Ebrahimi { PPC_INS_FCTIDZ, "fctidz" },
564*9a0e4156SSadaf Ebrahimi { PPC_INS_FCTIW, "fctiw" },
565*9a0e4156SSadaf Ebrahimi { PPC_INS_FCTIWUZ, "fctiwuz" },
566*9a0e4156SSadaf Ebrahimi { PPC_INS_FCTIWZ, "fctiwz" },
567*9a0e4156SSadaf Ebrahimi { PPC_INS_FDIV, "fdiv" },
568*9a0e4156SSadaf Ebrahimi { PPC_INS_FDIVS, "fdivs" },
569*9a0e4156SSadaf Ebrahimi { PPC_INS_FMADD, "fmadd" },
570*9a0e4156SSadaf Ebrahimi { PPC_INS_FMADDS, "fmadds" },
571*9a0e4156SSadaf Ebrahimi { PPC_INS_FMR, "fmr" },
572*9a0e4156SSadaf Ebrahimi { PPC_INS_FMSUB, "fmsub" },
573*9a0e4156SSadaf Ebrahimi { PPC_INS_FMSUBS, "fmsubs" },
574*9a0e4156SSadaf Ebrahimi { PPC_INS_FMUL, "fmul" },
575*9a0e4156SSadaf Ebrahimi { PPC_INS_FMULS, "fmuls" },
576*9a0e4156SSadaf Ebrahimi { PPC_INS_FNABS, "fnabs" },
577*9a0e4156SSadaf Ebrahimi { PPC_INS_FNEG, "fneg" },
578*9a0e4156SSadaf Ebrahimi { PPC_INS_FNMADD, "fnmadd" },
579*9a0e4156SSadaf Ebrahimi { PPC_INS_FNMADDS, "fnmadds" },
580*9a0e4156SSadaf Ebrahimi { PPC_INS_FNMSUB, "fnmsub" },
581*9a0e4156SSadaf Ebrahimi { PPC_INS_FNMSUBS, "fnmsubs" },
582*9a0e4156SSadaf Ebrahimi { PPC_INS_FRE, "fre" },
583*9a0e4156SSadaf Ebrahimi { PPC_INS_FRES, "fres" },
584*9a0e4156SSadaf Ebrahimi { PPC_INS_FRIM, "frim" },
585*9a0e4156SSadaf Ebrahimi { PPC_INS_FRIN, "frin" },
586*9a0e4156SSadaf Ebrahimi { PPC_INS_FRIP, "frip" },
587*9a0e4156SSadaf Ebrahimi { PPC_INS_FRIZ, "friz" },
588*9a0e4156SSadaf Ebrahimi { PPC_INS_FRSP, "frsp" },
589*9a0e4156SSadaf Ebrahimi { PPC_INS_FRSQRTE, "frsqrte" },
590*9a0e4156SSadaf Ebrahimi { PPC_INS_FRSQRTES, "frsqrtes" },
591*9a0e4156SSadaf Ebrahimi { PPC_INS_FSEL, "fsel" },
592*9a0e4156SSadaf Ebrahimi { PPC_INS_FSQRT, "fsqrt" },
593*9a0e4156SSadaf Ebrahimi { PPC_INS_FSQRTS, "fsqrts" },
594*9a0e4156SSadaf Ebrahimi { PPC_INS_FSUB, "fsub" },
595*9a0e4156SSadaf Ebrahimi { PPC_INS_FSUBS, "fsubs" },
596*9a0e4156SSadaf Ebrahimi { PPC_INS_ICBI, "icbi" },
597*9a0e4156SSadaf Ebrahimi { PPC_INS_ICBT, "icbt" },
598*9a0e4156SSadaf Ebrahimi { PPC_INS_ICCCI, "iccci" },
599*9a0e4156SSadaf Ebrahimi { PPC_INS_ISEL, "isel" },
600*9a0e4156SSadaf Ebrahimi { PPC_INS_ISYNC, "isync" },
601*9a0e4156SSadaf Ebrahimi { PPC_INS_LA, "la" },
602*9a0e4156SSadaf Ebrahimi { PPC_INS_LBZ, "lbz" },
603*9a0e4156SSadaf Ebrahimi { PPC_INS_LBZCIX, "lbzcix" },
604*9a0e4156SSadaf Ebrahimi { PPC_INS_LBZU, "lbzu" },
605*9a0e4156SSadaf Ebrahimi { PPC_INS_LBZUX, "lbzux" },
606*9a0e4156SSadaf Ebrahimi { PPC_INS_LBZX, "lbzx" },
607*9a0e4156SSadaf Ebrahimi { PPC_INS_LD, "ld" },
608*9a0e4156SSadaf Ebrahimi { PPC_INS_LDARX, "ldarx" },
609*9a0e4156SSadaf Ebrahimi { PPC_INS_LDBRX, "ldbrx" },
610*9a0e4156SSadaf Ebrahimi { PPC_INS_LDCIX, "ldcix" },
611*9a0e4156SSadaf Ebrahimi { PPC_INS_LDU, "ldu" },
612*9a0e4156SSadaf Ebrahimi { PPC_INS_LDUX, "ldux" },
613*9a0e4156SSadaf Ebrahimi { PPC_INS_LDX, "ldx" },
614*9a0e4156SSadaf Ebrahimi { PPC_INS_LFD, "lfd" },
615*9a0e4156SSadaf Ebrahimi { PPC_INS_LFDU, "lfdu" },
616*9a0e4156SSadaf Ebrahimi { PPC_INS_LFDUX, "lfdux" },
617*9a0e4156SSadaf Ebrahimi { PPC_INS_LFDX, "lfdx" },
618*9a0e4156SSadaf Ebrahimi { PPC_INS_LFIWAX, "lfiwax" },
619*9a0e4156SSadaf Ebrahimi { PPC_INS_LFIWZX, "lfiwzx" },
620*9a0e4156SSadaf Ebrahimi { PPC_INS_LFS, "lfs" },
621*9a0e4156SSadaf Ebrahimi { PPC_INS_LFSU, "lfsu" },
622*9a0e4156SSadaf Ebrahimi { PPC_INS_LFSUX, "lfsux" },
623*9a0e4156SSadaf Ebrahimi { PPC_INS_LFSX, "lfsx" },
624*9a0e4156SSadaf Ebrahimi { PPC_INS_LHA, "lha" },
625*9a0e4156SSadaf Ebrahimi { PPC_INS_LHAU, "lhau" },
626*9a0e4156SSadaf Ebrahimi { PPC_INS_LHAUX, "lhaux" },
627*9a0e4156SSadaf Ebrahimi { PPC_INS_LHAX, "lhax" },
628*9a0e4156SSadaf Ebrahimi { PPC_INS_LHBRX, "lhbrx" },
629*9a0e4156SSadaf Ebrahimi { PPC_INS_LHZ, "lhz" },
630*9a0e4156SSadaf Ebrahimi { PPC_INS_LHZCIX, "lhzcix" },
631*9a0e4156SSadaf Ebrahimi { PPC_INS_LHZU, "lhzu" },
632*9a0e4156SSadaf Ebrahimi { PPC_INS_LHZUX, "lhzux" },
633*9a0e4156SSadaf Ebrahimi { PPC_INS_LHZX, "lhzx" },
634*9a0e4156SSadaf Ebrahimi { PPC_INS_LI, "li" },
635*9a0e4156SSadaf Ebrahimi { PPC_INS_LIS, "lis" },
636*9a0e4156SSadaf Ebrahimi { PPC_INS_LMW, "lmw" },
637*9a0e4156SSadaf Ebrahimi { PPC_INS_LSWI, "lswi" },
638*9a0e4156SSadaf Ebrahimi { PPC_INS_LVEBX, "lvebx" },
639*9a0e4156SSadaf Ebrahimi { PPC_INS_LVEHX, "lvehx" },
640*9a0e4156SSadaf Ebrahimi { PPC_INS_LVEWX, "lvewx" },
641*9a0e4156SSadaf Ebrahimi { PPC_INS_LVSL, "lvsl" },
642*9a0e4156SSadaf Ebrahimi { PPC_INS_LVSR, "lvsr" },
643*9a0e4156SSadaf Ebrahimi { PPC_INS_LVX, "lvx" },
644*9a0e4156SSadaf Ebrahimi { PPC_INS_LVXL, "lvxl" },
645*9a0e4156SSadaf Ebrahimi { PPC_INS_LWA, "lwa" },
646*9a0e4156SSadaf Ebrahimi { PPC_INS_LWARX, "lwarx" },
647*9a0e4156SSadaf Ebrahimi { PPC_INS_LWAUX, "lwaux" },
648*9a0e4156SSadaf Ebrahimi { PPC_INS_LWAX, "lwax" },
649*9a0e4156SSadaf Ebrahimi { PPC_INS_LWBRX, "lwbrx" },
650*9a0e4156SSadaf Ebrahimi { PPC_INS_LWZ, "lwz" },
651*9a0e4156SSadaf Ebrahimi { PPC_INS_LWZCIX, "lwzcix" },
652*9a0e4156SSadaf Ebrahimi { PPC_INS_LWZU, "lwzu" },
653*9a0e4156SSadaf Ebrahimi { PPC_INS_LWZUX, "lwzux" },
654*9a0e4156SSadaf Ebrahimi { PPC_INS_LWZX, "lwzx" },
655*9a0e4156SSadaf Ebrahimi { PPC_INS_LXSDX, "lxsdx" },
656*9a0e4156SSadaf Ebrahimi { PPC_INS_LXVD2X, "lxvd2x" },
657*9a0e4156SSadaf Ebrahimi { PPC_INS_LXVDSX, "lxvdsx" },
658*9a0e4156SSadaf Ebrahimi { PPC_INS_LXVW4X, "lxvw4x" },
659*9a0e4156SSadaf Ebrahimi { PPC_INS_MBAR, "mbar" },
660*9a0e4156SSadaf Ebrahimi { PPC_INS_MCRF, "mcrf" },
661*9a0e4156SSadaf Ebrahimi { PPC_INS_MCRFS, "mcrfs" },
662*9a0e4156SSadaf Ebrahimi { PPC_INS_MFCR, "mfcr" },
663*9a0e4156SSadaf Ebrahimi { PPC_INS_MFCTR, "mfctr" },
664*9a0e4156SSadaf Ebrahimi { PPC_INS_MFDCR, "mfdcr" },
665*9a0e4156SSadaf Ebrahimi { PPC_INS_MFFS, "mffs" },
666*9a0e4156SSadaf Ebrahimi { PPC_INS_MFLR, "mflr" },
667*9a0e4156SSadaf Ebrahimi { PPC_INS_MFMSR, "mfmsr" },
668*9a0e4156SSadaf Ebrahimi { PPC_INS_MFOCRF, "mfocrf" },
669*9a0e4156SSadaf Ebrahimi { PPC_INS_MFSPR, "mfspr" },
670*9a0e4156SSadaf Ebrahimi { PPC_INS_MFSR, "mfsr" },
671*9a0e4156SSadaf Ebrahimi { PPC_INS_MFSRIN, "mfsrin" },
672*9a0e4156SSadaf Ebrahimi { PPC_INS_MFTB, "mftb" },
673*9a0e4156SSadaf Ebrahimi { PPC_INS_MFVSCR, "mfvscr" },
674*9a0e4156SSadaf Ebrahimi { PPC_INS_MSYNC, "msync" },
675*9a0e4156SSadaf Ebrahimi { PPC_INS_MTCRF, "mtcrf" },
676*9a0e4156SSadaf Ebrahimi { PPC_INS_MTCTR, "mtctr" },
677*9a0e4156SSadaf Ebrahimi { PPC_INS_MTDCR, "mtdcr" },
678*9a0e4156SSadaf Ebrahimi { PPC_INS_MTFSB0, "mtfsb0" },
679*9a0e4156SSadaf Ebrahimi { PPC_INS_MTFSB1, "mtfsb1" },
680*9a0e4156SSadaf Ebrahimi { PPC_INS_MTFSF, "mtfsf" },
681*9a0e4156SSadaf Ebrahimi { PPC_INS_MTFSFI, "mtfsfi" },
682*9a0e4156SSadaf Ebrahimi { PPC_INS_MTLR, "mtlr" },
683*9a0e4156SSadaf Ebrahimi { PPC_INS_MTMSR, "mtmsr" },
684*9a0e4156SSadaf Ebrahimi { PPC_INS_MTMSRD, "mtmsrd" },
685*9a0e4156SSadaf Ebrahimi { PPC_INS_MTOCRF, "mtocrf" },
686*9a0e4156SSadaf Ebrahimi { PPC_INS_MTSPR, "mtspr" },
687*9a0e4156SSadaf Ebrahimi { PPC_INS_MTSR, "mtsr" },
688*9a0e4156SSadaf Ebrahimi { PPC_INS_MTSRIN, "mtsrin" },
689*9a0e4156SSadaf Ebrahimi { PPC_INS_MTVSCR, "mtvscr" },
690*9a0e4156SSadaf Ebrahimi { PPC_INS_MULHD, "mulhd" },
691*9a0e4156SSadaf Ebrahimi { PPC_INS_MULHDU, "mulhdu" },
692*9a0e4156SSadaf Ebrahimi { PPC_INS_MULHW, "mulhw" },
693*9a0e4156SSadaf Ebrahimi { PPC_INS_MULHWU, "mulhwu" },
694*9a0e4156SSadaf Ebrahimi { PPC_INS_MULLD, "mulld" },
695*9a0e4156SSadaf Ebrahimi { PPC_INS_MULLI, "mulli" },
696*9a0e4156SSadaf Ebrahimi { PPC_INS_MULLW, "mullw" },
697*9a0e4156SSadaf Ebrahimi { PPC_INS_NAND, "nand" },
698*9a0e4156SSadaf Ebrahimi { PPC_INS_NEG, "neg" },
699*9a0e4156SSadaf Ebrahimi { PPC_INS_NOP, "nop" },
700*9a0e4156SSadaf Ebrahimi { PPC_INS_ORI, "ori" },
701*9a0e4156SSadaf Ebrahimi { PPC_INS_NOR, "nor" },
702*9a0e4156SSadaf Ebrahimi { PPC_INS_OR, "or" },
703*9a0e4156SSadaf Ebrahimi { PPC_INS_ORC, "orc" },
704*9a0e4156SSadaf Ebrahimi { PPC_INS_ORIS, "oris" },
705*9a0e4156SSadaf Ebrahimi { PPC_INS_POPCNTD, "popcntd" },
706*9a0e4156SSadaf Ebrahimi { PPC_INS_POPCNTW, "popcntw" },
707*9a0e4156SSadaf Ebrahimi { PPC_INS_QVALIGNI, "qvaligni" },
708*9a0e4156SSadaf Ebrahimi { PPC_INS_QVESPLATI, "qvesplati" },
709*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFABS, "qvfabs" },
710*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFADD, "qvfadd" },
711*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFADDS, "qvfadds" },
712*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFCFID, "qvfcfid" },
713*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFCFIDS, "qvfcfids" },
714*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFCFIDU, "qvfcfidu" },
715*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFCFIDUS, "qvfcfidus" },
716*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFCMPEQ, "qvfcmpeq" },
717*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFCMPGT, "qvfcmpgt" },
718*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFCMPLT, "qvfcmplt" },
719*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFCPSGN, "qvfcpsgn" },
720*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFCTID, "qvfctid" },
721*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFCTIDU, "qvfctidu" },
722*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFCTIDUZ, "qvfctiduz" },
723*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFCTIDZ, "qvfctidz" },
724*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFCTIW, "qvfctiw" },
725*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFCTIWU, "qvfctiwu" },
726*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFCTIWUZ, "qvfctiwuz" },
727*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFCTIWZ, "qvfctiwz" },
728*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFLOGICAL, "qvflogical" },
729*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFMADD, "qvfmadd" },
730*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFMADDS, "qvfmadds" },
731*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFMR, "qvfmr" },
732*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFMSUB, "qvfmsub" },
733*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFMSUBS, "qvfmsubs" },
734*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFMUL, "qvfmul" },
735*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFMULS, "qvfmuls" },
736*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFNABS, "qvfnabs" },
737*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFNEG, "qvfneg" },
738*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFNMADD, "qvfnmadd" },
739*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFNMADDS, "qvfnmadds" },
740*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFNMSUB, "qvfnmsub" },
741*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFNMSUBS, "qvfnmsubs" },
742*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFPERM, "qvfperm" },
743*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFRE, "qvfre" },
744*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFRES, "qvfres" },
745*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFRIM, "qvfrim" },
746*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFRIN, "qvfrin" },
747*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFRIP, "qvfrip" },
748*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFRIZ, "qvfriz" },
749*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFRSP, "qvfrsp" },
750*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFRSQRTE, "qvfrsqrte" },
751*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFRSQRTES, "qvfrsqrtes" },
752*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFSEL, "qvfsel" },
753*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFSUB, "qvfsub" },
754*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFSUBS, "qvfsubs" },
755*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFTSTNAN, "qvftstnan" },
756*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFXMADD, "qvfxmadd" },
757*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFXMADDS, "qvfxmadds" },
758*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFXMUL, "qvfxmul" },
759*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFXMULS, "qvfxmuls" },
760*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFXXCPNMADD, "qvfxxcpnmadd" },
761*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFXXCPNMADDS, "qvfxxcpnmadds" },
762*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFXXMADD, "qvfxxmadd" },
763*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFXXMADDS, "qvfxxmadds" },
764*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFXXNPMADD, "qvfxxnpmadd" },
765*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFXXNPMADDS, "qvfxxnpmadds" },
766*9a0e4156SSadaf Ebrahimi { PPC_INS_QVGPCI, "qvgpci" },
767*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFCDUX, "qvlfcdux" },
768*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFCDUXA, "qvlfcduxa" },
769*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFCDX, "qvlfcdx" },
770*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFCDXA, "qvlfcdxa" },
771*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFCSUX, "qvlfcsux" },
772*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFCSUXA, "qvlfcsuxa" },
773*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFCSX, "qvlfcsx" },
774*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFCSXA, "qvlfcsxa" },
775*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFDUX, "qvlfdux" },
776*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFDUXA, "qvlfduxa" },
777*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFDX, "qvlfdx" },
778*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFDXA, "qvlfdxa" },
779*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFIWAX, "qvlfiwax" },
780*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFIWAXA, "qvlfiwaxa" },
781*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFIWZX, "qvlfiwzx" },
782*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFIWZXA, "qvlfiwzxa" },
783*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFSUX, "qvlfsux" },
784*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFSUXA, "qvlfsuxa" },
785*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFSX, "qvlfsx" },
786*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLFSXA, "qvlfsxa" },
787*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLPCLDX, "qvlpcldx" },
788*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLPCLSX, "qvlpclsx" },
789*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLPCRDX, "qvlpcrdx" },
790*9a0e4156SSadaf Ebrahimi { PPC_INS_QVLPCRSX, "qvlpcrsx" },
791*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFCDUX, "qvstfcdux" },
792*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFCDUXA, "qvstfcduxa" },
793*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFCDUXI, "qvstfcduxi" },
794*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFCDUXIA, "qvstfcduxia" },
795*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFCDX, "qvstfcdx" },
796*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFCDXA, "qvstfcdxa" },
797*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFCDXI, "qvstfcdxi" },
798*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFCDXIA, "qvstfcdxia" },
799*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFCSUX, "qvstfcsux" },
800*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFCSUXA, "qvstfcsuxa" },
801*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFCSUXI, "qvstfcsuxi" },
802*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFCSUXIA, "qvstfcsuxia" },
803*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFCSX, "qvstfcsx" },
804*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFCSXA, "qvstfcsxa" },
805*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFCSXI, "qvstfcsxi" },
806*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFCSXIA, "qvstfcsxia" },
807*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFDUX, "qvstfdux" },
808*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFDUXA, "qvstfduxa" },
809*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFDUXI, "qvstfduxi" },
810*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFDUXIA, "qvstfduxia" },
811*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFDX, "qvstfdx" },
812*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFDXA, "qvstfdxa" },
813*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFDXI, "qvstfdxi" },
814*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFDXIA, "qvstfdxia" },
815*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFIWX, "qvstfiwx" },
816*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFIWXA, "qvstfiwxa" },
817*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFSUX, "qvstfsux" },
818*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFSUXA, "qvstfsuxa" },
819*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFSUXI, "qvstfsuxi" },
820*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFSUXIA, "qvstfsuxia" },
821*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFSX, "qvstfsx" },
822*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFSXA, "qvstfsxa" },
823*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFSXI, "qvstfsxi" },
824*9a0e4156SSadaf Ebrahimi { PPC_INS_QVSTFSXIA, "qvstfsxia" },
825*9a0e4156SSadaf Ebrahimi { PPC_INS_RFCI, "rfci" },
826*9a0e4156SSadaf Ebrahimi { PPC_INS_RFDI, "rfdi" },
827*9a0e4156SSadaf Ebrahimi { PPC_INS_RFI, "rfi" },
828*9a0e4156SSadaf Ebrahimi { PPC_INS_RFID, "rfid" },
829*9a0e4156SSadaf Ebrahimi { PPC_INS_RFMCI, "rfmci" },
830*9a0e4156SSadaf Ebrahimi { PPC_INS_RLDCL, "rldcl" },
831*9a0e4156SSadaf Ebrahimi { PPC_INS_RLDCR, "rldcr" },
832*9a0e4156SSadaf Ebrahimi { PPC_INS_RLDIC, "rldic" },
833*9a0e4156SSadaf Ebrahimi { PPC_INS_RLDICL, "rldicl" },
834*9a0e4156SSadaf Ebrahimi { PPC_INS_RLDICR, "rldicr" },
835*9a0e4156SSadaf Ebrahimi { PPC_INS_RLDIMI, "rldimi" },
836*9a0e4156SSadaf Ebrahimi { PPC_INS_RLWIMI, "rlwimi" },
837*9a0e4156SSadaf Ebrahimi { PPC_INS_RLWINM, "rlwinm" },
838*9a0e4156SSadaf Ebrahimi { PPC_INS_RLWNM, "rlwnm" },
839*9a0e4156SSadaf Ebrahimi { PPC_INS_SC, "sc" },
840*9a0e4156SSadaf Ebrahimi { PPC_INS_SLBIA, "slbia" },
841*9a0e4156SSadaf Ebrahimi { PPC_INS_SLBIE, "slbie" },
842*9a0e4156SSadaf Ebrahimi { PPC_INS_SLBMFEE, "slbmfee" },
843*9a0e4156SSadaf Ebrahimi { PPC_INS_SLBMTE, "slbmte" },
844*9a0e4156SSadaf Ebrahimi { PPC_INS_SLD, "sld" },
845*9a0e4156SSadaf Ebrahimi { PPC_INS_SLW, "slw" },
846*9a0e4156SSadaf Ebrahimi { PPC_INS_SRAD, "srad" },
847*9a0e4156SSadaf Ebrahimi { PPC_INS_SRADI, "sradi" },
848*9a0e4156SSadaf Ebrahimi { PPC_INS_SRAW, "sraw" },
849*9a0e4156SSadaf Ebrahimi { PPC_INS_SRAWI, "srawi" },
850*9a0e4156SSadaf Ebrahimi { PPC_INS_SRD, "srd" },
851*9a0e4156SSadaf Ebrahimi { PPC_INS_SRW, "srw" },
852*9a0e4156SSadaf Ebrahimi { PPC_INS_STB, "stb" },
853*9a0e4156SSadaf Ebrahimi { PPC_INS_STBCIX, "stbcix" },
854*9a0e4156SSadaf Ebrahimi { PPC_INS_STBU, "stbu" },
855*9a0e4156SSadaf Ebrahimi { PPC_INS_STBUX, "stbux" },
856*9a0e4156SSadaf Ebrahimi { PPC_INS_STBX, "stbx" },
857*9a0e4156SSadaf Ebrahimi { PPC_INS_STD, "std" },
858*9a0e4156SSadaf Ebrahimi { PPC_INS_STDBRX, "stdbrx" },
859*9a0e4156SSadaf Ebrahimi { PPC_INS_STDCIX, "stdcix" },
860*9a0e4156SSadaf Ebrahimi { PPC_INS_STDCX, "stdcx" },
861*9a0e4156SSadaf Ebrahimi { PPC_INS_STDU, "stdu" },
862*9a0e4156SSadaf Ebrahimi { PPC_INS_STDUX, "stdux" },
863*9a0e4156SSadaf Ebrahimi { PPC_INS_STDX, "stdx" },
864*9a0e4156SSadaf Ebrahimi { PPC_INS_STFD, "stfd" },
865*9a0e4156SSadaf Ebrahimi { PPC_INS_STFDU, "stfdu" },
866*9a0e4156SSadaf Ebrahimi { PPC_INS_STFDUX, "stfdux" },
867*9a0e4156SSadaf Ebrahimi { PPC_INS_STFDX, "stfdx" },
868*9a0e4156SSadaf Ebrahimi { PPC_INS_STFIWX, "stfiwx" },
869*9a0e4156SSadaf Ebrahimi { PPC_INS_STFS, "stfs" },
870*9a0e4156SSadaf Ebrahimi { PPC_INS_STFSU, "stfsu" },
871*9a0e4156SSadaf Ebrahimi { PPC_INS_STFSUX, "stfsux" },
872*9a0e4156SSadaf Ebrahimi { PPC_INS_STFSX, "stfsx" },
873*9a0e4156SSadaf Ebrahimi { PPC_INS_STH, "sth" },
874*9a0e4156SSadaf Ebrahimi { PPC_INS_STHBRX, "sthbrx" },
875*9a0e4156SSadaf Ebrahimi { PPC_INS_STHCIX, "sthcix" },
876*9a0e4156SSadaf Ebrahimi { PPC_INS_STHU, "sthu" },
877*9a0e4156SSadaf Ebrahimi { PPC_INS_STHUX, "sthux" },
878*9a0e4156SSadaf Ebrahimi { PPC_INS_STHX, "sthx" },
879*9a0e4156SSadaf Ebrahimi { PPC_INS_STMW, "stmw" },
880*9a0e4156SSadaf Ebrahimi { PPC_INS_STSWI, "stswi" },
881*9a0e4156SSadaf Ebrahimi { PPC_INS_STVEBX, "stvebx" },
882*9a0e4156SSadaf Ebrahimi { PPC_INS_STVEHX, "stvehx" },
883*9a0e4156SSadaf Ebrahimi { PPC_INS_STVEWX, "stvewx" },
884*9a0e4156SSadaf Ebrahimi { PPC_INS_STVX, "stvx" },
885*9a0e4156SSadaf Ebrahimi { PPC_INS_STVXL, "stvxl" },
886*9a0e4156SSadaf Ebrahimi { PPC_INS_STW, "stw" },
887*9a0e4156SSadaf Ebrahimi { PPC_INS_STWBRX, "stwbrx" },
888*9a0e4156SSadaf Ebrahimi { PPC_INS_STWCIX, "stwcix" },
889*9a0e4156SSadaf Ebrahimi { PPC_INS_STWCX, "stwcx" },
890*9a0e4156SSadaf Ebrahimi { PPC_INS_STWU, "stwu" },
891*9a0e4156SSadaf Ebrahimi { PPC_INS_STWUX, "stwux" },
892*9a0e4156SSadaf Ebrahimi { PPC_INS_STWX, "stwx" },
893*9a0e4156SSadaf Ebrahimi { PPC_INS_STXSDX, "stxsdx" },
894*9a0e4156SSadaf Ebrahimi { PPC_INS_STXVD2X, "stxvd2x" },
895*9a0e4156SSadaf Ebrahimi { PPC_INS_STXVW4X, "stxvw4x" },
896*9a0e4156SSadaf Ebrahimi { PPC_INS_SUBF, "subf" },
897*9a0e4156SSadaf Ebrahimi { PPC_INS_SUBFC, "subfc" },
898*9a0e4156SSadaf Ebrahimi { PPC_INS_SUBFE, "subfe" },
899*9a0e4156SSadaf Ebrahimi { PPC_INS_SUBFIC, "subfic" },
900*9a0e4156SSadaf Ebrahimi { PPC_INS_SUBFME, "subfme" },
901*9a0e4156SSadaf Ebrahimi { PPC_INS_SUBFZE, "subfze" },
902*9a0e4156SSadaf Ebrahimi { PPC_INS_SYNC, "sync" },
903*9a0e4156SSadaf Ebrahimi { PPC_INS_TD, "td" },
904*9a0e4156SSadaf Ebrahimi { PPC_INS_TDI, "tdi" },
905*9a0e4156SSadaf Ebrahimi { PPC_INS_TLBIA, "tlbia" },
906*9a0e4156SSadaf Ebrahimi { PPC_INS_TLBIE, "tlbie" },
907*9a0e4156SSadaf Ebrahimi { PPC_INS_TLBIEL, "tlbiel" },
908*9a0e4156SSadaf Ebrahimi { PPC_INS_TLBIVAX, "tlbivax" },
909*9a0e4156SSadaf Ebrahimi { PPC_INS_TLBLD, "tlbld" },
910*9a0e4156SSadaf Ebrahimi { PPC_INS_TLBLI, "tlbli" },
911*9a0e4156SSadaf Ebrahimi { PPC_INS_TLBRE, "tlbre" },
912*9a0e4156SSadaf Ebrahimi { PPC_INS_TLBSX, "tlbsx" },
913*9a0e4156SSadaf Ebrahimi { PPC_INS_TLBSYNC, "tlbsync" },
914*9a0e4156SSadaf Ebrahimi { PPC_INS_TLBWE, "tlbwe" },
915*9a0e4156SSadaf Ebrahimi { PPC_INS_TRAP, "trap" },
916*9a0e4156SSadaf Ebrahimi { PPC_INS_TW, "tw" },
917*9a0e4156SSadaf Ebrahimi { PPC_INS_TWI, "twi" },
918*9a0e4156SSadaf Ebrahimi { PPC_INS_VADDCUW, "vaddcuw" },
919*9a0e4156SSadaf Ebrahimi { PPC_INS_VADDFP, "vaddfp" },
920*9a0e4156SSadaf Ebrahimi { PPC_INS_VADDSBS, "vaddsbs" },
921*9a0e4156SSadaf Ebrahimi { PPC_INS_VADDSHS, "vaddshs" },
922*9a0e4156SSadaf Ebrahimi { PPC_INS_VADDSWS, "vaddsws" },
923*9a0e4156SSadaf Ebrahimi { PPC_INS_VADDUBM, "vaddubm" },
924*9a0e4156SSadaf Ebrahimi { PPC_INS_VADDUBS, "vaddubs" },
925*9a0e4156SSadaf Ebrahimi { PPC_INS_VADDUDM, "vaddudm" },
926*9a0e4156SSadaf Ebrahimi { PPC_INS_VADDUHM, "vadduhm" },
927*9a0e4156SSadaf Ebrahimi { PPC_INS_VADDUHS, "vadduhs" },
928*9a0e4156SSadaf Ebrahimi { PPC_INS_VADDUWM, "vadduwm" },
929*9a0e4156SSadaf Ebrahimi { PPC_INS_VADDUWS, "vadduws" },
930*9a0e4156SSadaf Ebrahimi { PPC_INS_VAND, "vand" },
931*9a0e4156SSadaf Ebrahimi { PPC_INS_VANDC, "vandc" },
932*9a0e4156SSadaf Ebrahimi { PPC_INS_VAVGSB, "vavgsb" },
933*9a0e4156SSadaf Ebrahimi { PPC_INS_VAVGSH, "vavgsh" },
934*9a0e4156SSadaf Ebrahimi { PPC_INS_VAVGSW, "vavgsw" },
935*9a0e4156SSadaf Ebrahimi { PPC_INS_VAVGUB, "vavgub" },
936*9a0e4156SSadaf Ebrahimi { PPC_INS_VAVGUH, "vavguh" },
937*9a0e4156SSadaf Ebrahimi { PPC_INS_VAVGUW, "vavguw" },
938*9a0e4156SSadaf Ebrahimi { PPC_INS_VCFSX, "vcfsx" },
939*9a0e4156SSadaf Ebrahimi { PPC_INS_VCFUX, "vcfux" },
940*9a0e4156SSadaf Ebrahimi { PPC_INS_VCLZB, "vclzb" },
941*9a0e4156SSadaf Ebrahimi { PPC_INS_VCLZD, "vclzd" },
942*9a0e4156SSadaf Ebrahimi { PPC_INS_VCLZH, "vclzh" },
943*9a0e4156SSadaf Ebrahimi { PPC_INS_VCLZW, "vclzw" },
944*9a0e4156SSadaf Ebrahimi { PPC_INS_VCMPBFP, "vcmpbfp" },
945*9a0e4156SSadaf Ebrahimi { PPC_INS_VCMPEQFP, "vcmpeqfp" },
946*9a0e4156SSadaf Ebrahimi { PPC_INS_VCMPEQUB, "vcmpequb" },
947*9a0e4156SSadaf Ebrahimi { PPC_INS_VCMPEQUD, "vcmpequd" },
948*9a0e4156SSadaf Ebrahimi { PPC_INS_VCMPEQUH, "vcmpequh" },
949*9a0e4156SSadaf Ebrahimi { PPC_INS_VCMPEQUW, "vcmpequw" },
950*9a0e4156SSadaf Ebrahimi { PPC_INS_VCMPGEFP, "vcmpgefp" },
951*9a0e4156SSadaf Ebrahimi { PPC_INS_VCMPGTFP, "vcmpgtfp" },
952*9a0e4156SSadaf Ebrahimi { PPC_INS_VCMPGTSB, "vcmpgtsb" },
953*9a0e4156SSadaf Ebrahimi { PPC_INS_VCMPGTSD, "vcmpgtsd" },
954*9a0e4156SSadaf Ebrahimi { PPC_INS_VCMPGTSH, "vcmpgtsh" },
955*9a0e4156SSadaf Ebrahimi { PPC_INS_VCMPGTSW, "vcmpgtsw" },
956*9a0e4156SSadaf Ebrahimi { PPC_INS_VCMPGTUB, "vcmpgtub" },
957*9a0e4156SSadaf Ebrahimi { PPC_INS_VCMPGTUD, "vcmpgtud" },
958*9a0e4156SSadaf Ebrahimi { PPC_INS_VCMPGTUH, "vcmpgtuh" },
959*9a0e4156SSadaf Ebrahimi { PPC_INS_VCMPGTUW, "vcmpgtuw" },
960*9a0e4156SSadaf Ebrahimi { PPC_INS_VCTSXS, "vctsxs" },
961*9a0e4156SSadaf Ebrahimi { PPC_INS_VCTUXS, "vctuxs" },
962*9a0e4156SSadaf Ebrahimi { PPC_INS_VEQV, "veqv" },
963*9a0e4156SSadaf Ebrahimi { PPC_INS_VEXPTEFP, "vexptefp" },
964*9a0e4156SSadaf Ebrahimi { PPC_INS_VLOGEFP, "vlogefp" },
965*9a0e4156SSadaf Ebrahimi { PPC_INS_VMADDFP, "vmaddfp" },
966*9a0e4156SSadaf Ebrahimi { PPC_INS_VMAXFP, "vmaxfp" },
967*9a0e4156SSadaf Ebrahimi { PPC_INS_VMAXSB, "vmaxsb" },
968*9a0e4156SSadaf Ebrahimi { PPC_INS_VMAXSD, "vmaxsd" },
969*9a0e4156SSadaf Ebrahimi { PPC_INS_VMAXSH, "vmaxsh" },
970*9a0e4156SSadaf Ebrahimi { PPC_INS_VMAXSW, "vmaxsw" },
971*9a0e4156SSadaf Ebrahimi { PPC_INS_VMAXUB, "vmaxub" },
972*9a0e4156SSadaf Ebrahimi { PPC_INS_VMAXUD, "vmaxud" },
973*9a0e4156SSadaf Ebrahimi { PPC_INS_VMAXUH, "vmaxuh" },
974*9a0e4156SSadaf Ebrahimi { PPC_INS_VMAXUW, "vmaxuw" },
975*9a0e4156SSadaf Ebrahimi { PPC_INS_VMHADDSHS, "vmhaddshs" },
976*9a0e4156SSadaf Ebrahimi { PPC_INS_VMHRADDSHS, "vmhraddshs" },
977*9a0e4156SSadaf Ebrahimi { PPC_INS_VMINUD, "vminud" },
978*9a0e4156SSadaf Ebrahimi { PPC_INS_VMINFP, "vminfp" },
979*9a0e4156SSadaf Ebrahimi { PPC_INS_VMINSB, "vminsb" },
980*9a0e4156SSadaf Ebrahimi { PPC_INS_VMINSD, "vminsd" },
981*9a0e4156SSadaf Ebrahimi { PPC_INS_VMINSH, "vminsh" },
982*9a0e4156SSadaf Ebrahimi { PPC_INS_VMINSW, "vminsw" },
983*9a0e4156SSadaf Ebrahimi { PPC_INS_VMINUB, "vminub" },
984*9a0e4156SSadaf Ebrahimi { PPC_INS_VMINUH, "vminuh" },
985*9a0e4156SSadaf Ebrahimi { PPC_INS_VMINUW, "vminuw" },
986*9a0e4156SSadaf Ebrahimi { PPC_INS_VMLADDUHM, "vmladduhm" },
987*9a0e4156SSadaf Ebrahimi { PPC_INS_VMRGHB, "vmrghb" },
988*9a0e4156SSadaf Ebrahimi { PPC_INS_VMRGHH, "vmrghh" },
989*9a0e4156SSadaf Ebrahimi { PPC_INS_VMRGHW, "vmrghw" },
990*9a0e4156SSadaf Ebrahimi { PPC_INS_VMRGLB, "vmrglb" },
991*9a0e4156SSadaf Ebrahimi { PPC_INS_VMRGLH, "vmrglh" },
992*9a0e4156SSadaf Ebrahimi { PPC_INS_VMRGLW, "vmrglw" },
993*9a0e4156SSadaf Ebrahimi { PPC_INS_VMSUMMBM, "vmsummbm" },
994*9a0e4156SSadaf Ebrahimi { PPC_INS_VMSUMSHM, "vmsumshm" },
995*9a0e4156SSadaf Ebrahimi { PPC_INS_VMSUMSHS, "vmsumshs" },
996*9a0e4156SSadaf Ebrahimi { PPC_INS_VMSUMUBM, "vmsumubm" },
997*9a0e4156SSadaf Ebrahimi { PPC_INS_VMSUMUHM, "vmsumuhm" },
998*9a0e4156SSadaf Ebrahimi { PPC_INS_VMSUMUHS, "vmsumuhs" },
999*9a0e4156SSadaf Ebrahimi { PPC_INS_VMULESB, "vmulesb" },
1000*9a0e4156SSadaf Ebrahimi { PPC_INS_VMULESH, "vmulesh" },
1001*9a0e4156SSadaf Ebrahimi { PPC_INS_VMULESW, "vmulesw" },
1002*9a0e4156SSadaf Ebrahimi { PPC_INS_VMULEUB, "vmuleub" },
1003*9a0e4156SSadaf Ebrahimi { PPC_INS_VMULEUH, "vmuleuh" },
1004*9a0e4156SSadaf Ebrahimi { PPC_INS_VMULEUW, "vmuleuw" },
1005*9a0e4156SSadaf Ebrahimi { PPC_INS_VMULOSB, "vmulosb" },
1006*9a0e4156SSadaf Ebrahimi { PPC_INS_VMULOSH, "vmulosh" },
1007*9a0e4156SSadaf Ebrahimi { PPC_INS_VMULOSW, "vmulosw" },
1008*9a0e4156SSadaf Ebrahimi { PPC_INS_VMULOUB, "vmuloub" },
1009*9a0e4156SSadaf Ebrahimi { PPC_INS_VMULOUH, "vmulouh" },
1010*9a0e4156SSadaf Ebrahimi { PPC_INS_VMULOUW, "vmulouw" },
1011*9a0e4156SSadaf Ebrahimi { PPC_INS_VMULUWM, "vmuluwm" },
1012*9a0e4156SSadaf Ebrahimi { PPC_INS_VNAND, "vnand" },
1013*9a0e4156SSadaf Ebrahimi { PPC_INS_VNMSUBFP, "vnmsubfp" },
1014*9a0e4156SSadaf Ebrahimi { PPC_INS_VNOR, "vnor" },
1015*9a0e4156SSadaf Ebrahimi { PPC_INS_VOR, "vor" },
1016*9a0e4156SSadaf Ebrahimi { PPC_INS_VORC, "vorc" },
1017*9a0e4156SSadaf Ebrahimi { PPC_INS_VPERM, "vperm" },
1018*9a0e4156SSadaf Ebrahimi { PPC_INS_VPKPX, "vpkpx" },
1019*9a0e4156SSadaf Ebrahimi { PPC_INS_VPKSHSS, "vpkshss" },
1020*9a0e4156SSadaf Ebrahimi { PPC_INS_VPKSHUS, "vpkshus" },
1021*9a0e4156SSadaf Ebrahimi { PPC_INS_VPKSWSS, "vpkswss" },
1022*9a0e4156SSadaf Ebrahimi { PPC_INS_VPKSWUS, "vpkswus" },
1023*9a0e4156SSadaf Ebrahimi { PPC_INS_VPKUHUM, "vpkuhum" },
1024*9a0e4156SSadaf Ebrahimi { PPC_INS_VPKUHUS, "vpkuhus" },
1025*9a0e4156SSadaf Ebrahimi { PPC_INS_VPKUWUM, "vpkuwum" },
1026*9a0e4156SSadaf Ebrahimi { PPC_INS_VPKUWUS, "vpkuwus" },
1027*9a0e4156SSadaf Ebrahimi { PPC_INS_VPOPCNTB, "vpopcntb" },
1028*9a0e4156SSadaf Ebrahimi { PPC_INS_VPOPCNTD, "vpopcntd" },
1029*9a0e4156SSadaf Ebrahimi { PPC_INS_VPOPCNTH, "vpopcnth" },
1030*9a0e4156SSadaf Ebrahimi { PPC_INS_VPOPCNTW, "vpopcntw" },
1031*9a0e4156SSadaf Ebrahimi { PPC_INS_VREFP, "vrefp" },
1032*9a0e4156SSadaf Ebrahimi { PPC_INS_VRFIM, "vrfim" },
1033*9a0e4156SSadaf Ebrahimi { PPC_INS_VRFIN, "vrfin" },
1034*9a0e4156SSadaf Ebrahimi { PPC_INS_VRFIP, "vrfip" },
1035*9a0e4156SSadaf Ebrahimi { PPC_INS_VRFIZ, "vrfiz" },
1036*9a0e4156SSadaf Ebrahimi { PPC_INS_VRLB, "vrlb" },
1037*9a0e4156SSadaf Ebrahimi { PPC_INS_VRLD, "vrld" },
1038*9a0e4156SSadaf Ebrahimi { PPC_INS_VRLH, "vrlh" },
1039*9a0e4156SSadaf Ebrahimi { PPC_INS_VRLW, "vrlw" },
1040*9a0e4156SSadaf Ebrahimi { PPC_INS_VRSQRTEFP, "vrsqrtefp" },
1041*9a0e4156SSadaf Ebrahimi { PPC_INS_VSEL, "vsel" },
1042*9a0e4156SSadaf Ebrahimi { PPC_INS_VSL, "vsl" },
1043*9a0e4156SSadaf Ebrahimi { PPC_INS_VSLB, "vslb" },
1044*9a0e4156SSadaf Ebrahimi { PPC_INS_VSLD, "vsld" },
1045*9a0e4156SSadaf Ebrahimi { PPC_INS_VSLDOI, "vsldoi" },
1046*9a0e4156SSadaf Ebrahimi { PPC_INS_VSLH, "vslh" },
1047*9a0e4156SSadaf Ebrahimi { PPC_INS_VSLO, "vslo" },
1048*9a0e4156SSadaf Ebrahimi { PPC_INS_VSLW, "vslw" },
1049*9a0e4156SSadaf Ebrahimi { PPC_INS_VSPLTB, "vspltb" },
1050*9a0e4156SSadaf Ebrahimi { PPC_INS_VSPLTH, "vsplth" },
1051*9a0e4156SSadaf Ebrahimi { PPC_INS_VSPLTISB, "vspltisb" },
1052*9a0e4156SSadaf Ebrahimi { PPC_INS_VSPLTISH, "vspltish" },
1053*9a0e4156SSadaf Ebrahimi { PPC_INS_VSPLTISW, "vspltisw" },
1054*9a0e4156SSadaf Ebrahimi { PPC_INS_VSPLTW, "vspltw" },
1055*9a0e4156SSadaf Ebrahimi { PPC_INS_VSR, "vsr" },
1056*9a0e4156SSadaf Ebrahimi { PPC_INS_VSRAB, "vsrab" },
1057*9a0e4156SSadaf Ebrahimi { PPC_INS_VSRAD, "vsrad" },
1058*9a0e4156SSadaf Ebrahimi { PPC_INS_VSRAH, "vsrah" },
1059*9a0e4156SSadaf Ebrahimi { PPC_INS_VSRAW, "vsraw" },
1060*9a0e4156SSadaf Ebrahimi { PPC_INS_VSRB, "vsrb" },
1061*9a0e4156SSadaf Ebrahimi { PPC_INS_VSRD, "vsrd" },
1062*9a0e4156SSadaf Ebrahimi { PPC_INS_VSRH, "vsrh" },
1063*9a0e4156SSadaf Ebrahimi { PPC_INS_VSRO, "vsro" },
1064*9a0e4156SSadaf Ebrahimi { PPC_INS_VSRW, "vsrw" },
1065*9a0e4156SSadaf Ebrahimi { PPC_INS_VSUBCUW, "vsubcuw" },
1066*9a0e4156SSadaf Ebrahimi { PPC_INS_VSUBFP, "vsubfp" },
1067*9a0e4156SSadaf Ebrahimi { PPC_INS_VSUBSBS, "vsubsbs" },
1068*9a0e4156SSadaf Ebrahimi { PPC_INS_VSUBSHS, "vsubshs" },
1069*9a0e4156SSadaf Ebrahimi { PPC_INS_VSUBSWS, "vsubsws" },
1070*9a0e4156SSadaf Ebrahimi { PPC_INS_VSUBUBM, "vsububm" },
1071*9a0e4156SSadaf Ebrahimi { PPC_INS_VSUBUBS, "vsububs" },
1072*9a0e4156SSadaf Ebrahimi { PPC_INS_VSUBUDM, "vsubudm" },
1073*9a0e4156SSadaf Ebrahimi { PPC_INS_VSUBUHM, "vsubuhm" },
1074*9a0e4156SSadaf Ebrahimi { PPC_INS_VSUBUHS, "vsubuhs" },
1075*9a0e4156SSadaf Ebrahimi { PPC_INS_VSUBUWM, "vsubuwm" },
1076*9a0e4156SSadaf Ebrahimi { PPC_INS_VSUBUWS, "vsubuws" },
1077*9a0e4156SSadaf Ebrahimi { PPC_INS_VSUM2SWS, "vsum2sws" },
1078*9a0e4156SSadaf Ebrahimi { PPC_INS_VSUM4SBS, "vsum4sbs" },
1079*9a0e4156SSadaf Ebrahimi { PPC_INS_VSUM4SHS, "vsum4shs" },
1080*9a0e4156SSadaf Ebrahimi { PPC_INS_VSUM4UBS, "vsum4ubs" },
1081*9a0e4156SSadaf Ebrahimi { PPC_INS_VSUMSWS, "vsumsws" },
1082*9a0e4156SSadaf Ebrahimi { PPC_INS_VUPKHPX, "vupkhpx" },
1083*9a0e4156SSadaf Ebrahimi { PPC_INS_VUPKHSB, "vupkhsb" },
1084*9a0e4156SSadaf Ebrahimi { PPC_INS_VUPKHSH, "vupkhsh" },
1085*9a0e4156SSadaf Ebrahimi { PPC_INS_VUPKLPX, "vupklpx" },
1086*9a0e4156SSadaf Ebrahimi { PPC_INS_VUPKLSB, "vupklsb" },
1087*9a0e4156SSadaf Ebrahimi { PPC_INS_VUPKLSH, "vupklsh" },
1088*9a0e4156SSadaf Ebrahimi { PPC_INS_VXOR, "vxor" },
1089*9a0e4156SSadaf Ebrahimi { PPC_INS_WAIT, "wait" },
1090*9a0e4156SSadaf Ebrahimi { PPC_INS_WRTEE, "wrtee" },
1091*9a0e4156SSadaf Ebrahimi { PPC_INS_WRTEEI, "wrteei" },
1092*9a0e4156SSadaf Ebrahimi { PPC_INS_XOR, "xor" },
1093*9a0e4156SSadaf Ebrahimi { PPC_INS_XORI, "xori" },
1094*9a0e4156SSadaf Ebrahimi { PPC_INS_XORIS, "xoris" },
1095*9a0e4156SSadaf Ebrahimi { PPC_INS_XSABSDP, "xsabsdp" },
1096*9a0e4156SSadaf Ebrahimi { PPC_INS_XSADDDP, "xsadddp" },
1097*9a0e4156SSadaf Ebrahimi { PPC_INS_XSCMPODP, "xscmpodp" },
1098*9a0e4156SSadaf Ebrahimi { PPC_INS_XSCMPUDP, "xscmpudp" },
1099*9a0e4156SSadaf Ebrahimi { PPC_INS_XSCPSGNDP, "xscpsgndp" },
1100*9a0e4156SSadaf Ebrahimi { PPC_INS_XSCVDPSP, "xscvdpsp" },
1101*9a0e4156SSadaf Ebrahimi { PPC_INS_XSCVDPSXDS, "xscvdpsxds" },
1102*9a0e4156SSadaf Ebrahimi { PPC_INS_XSCVDPSXWS, "xscvdpsxws" },
1103*9a0e4156SSadaf Ebrahimi { PPC_INS_XSCVDPUXDS, "xscvdpuxds" },
1104*9a0e4156SSadaf Ebrahimi { PPC_INS_XSCVDPUXWS, "xscvdpuxws" },
1105*9a0e4156SSadaf Ebrahimi { PPC_INS_XSCVSPDP, "xscvspdp" },
1106*9a0e4156SSadaf Ebrahimi { PPC_INS_XSCVSXDDP, "xscvsxddp" },
1107*9a0e4156SSadaf Ebrahimi { PPC_INS_XSCVUXDDP, "xscvuxddp" },
1108*9a0e4156SSadaf Ebrahimi { PPC_INS_XSDIVDP, "xsdivdp" },
1109*9a0e4156SSadaf Ebrahimi { PPC_INS_XSMADDADP, "xsmaddadp" },
1110*9a0e4156SSadaf Ebrahimi { PPC_INS_XSMADDMDP, "xsmaddmdp" },
1111*9a0e4156SSadaf Ebrahimi { PPC_INS_XSMAXDP, "xsmaxdp" },
1112*9a0e4156SSadaf Ebrahimi { PPC_INS_XSMINDP, "xsmindp" },
1113*9a0e4156SSadaf Ebrahimi { PPC_INS_XSMSUBADP, "xsmsubadp" },
1114*9a0e4156SSadaf Ebrahimi { PPC_INS_XSMSUBMDP, "xsmsubmdp" },
1115*9a0e4156SSadaf Ebrahimi { PPC_INS_XSMULDP, "xsmuldp" },
1116*9a0e4156SSadaf Ebrahimi { PPC_INS_XSNABSDP, "xsnabsdp" },
1117*9a0e4156SSadaf Ebrahimi { PPC_INS_XSNEGDP, "xsnegdp" },
1118*9a0e4156SSadaf Ebrahimi { PPC_INS_XSNMADDADP, "xsnmaddadp" },
1119*9a0e4156SSadaf Ebrahimi { PPC_INS_XSNMADDMDP, "xsnmaddmdp" },
1120*9a0e4156SSadaf Ebrahimi { PPC_INS_XSNMSUBADP, "xsnmsubadp" },
1121*9a0e4156SSadaf Ebrahimi { PPC_INS_XSNMSUBMDP, "xsnmsubmdp" },
1122*9a0e4156SSadaf Ebrahimi { PPC_INS_XSRDPI, "xsrdpi" },
1123*9a0e4156SSadaf Ebrahimi { PPC_INS_XSRDPIC, "xsrdpic" },
1124*9a0e4156SSadaf Ebrahimi { PPC_INS_XSRDPIM, "xsrdpim" },
1125*9a0e4156SSadaf Ebrahimi { PPC_INS_XSRDPIP, "xsrdpip" },
1126*9a0e4156SSadaf Ebrahimi { PPC_INS_XSRDPIZ, "xsrdpiz" },
1127*9a0e4156SSadaf Ebrahimi { PPC_INS_XSREDP, "xsredp" },
1128*9a0e4156SSadaf Ebrahimi { PPC_INS_XSRSQRTEDP, "xsrsqrtedp" },
1129*9a0e4156SSadaf Ebrahimi { PPC_INS_XSSQRTDP, "xssqrtdp" },
1130*9a0e4156SSadaf Ebrahimi { PPC_INS_XSSUBDP, "xssubdp" },
1131*9a0e4156SSadaf Ebrahimi { PPC_INS_XSTDIVDP, "xstdivdp" },
1132*9a0e4156SSadaf Ebrahimi { PPC_INS_XSTSQRTDP, "xstsqrtdp" },
1133*9a0e4156SSadaf Ebrahimi { PPC_INS_XVABSDP, "xvabsdp" },
1134*9a0e4156SSadaf Ebrahimi { PPC_INS_XVABSSP, "xvabssp" },
1135*9a0e4156SSadaf Ebrahimi { PPC_INS_XVADDDP, "xvadddp" },
1136*9a0e4156SSadaf Ebrahimi { PPC_INS_XVADDSP, "xvaddsp" },
1137*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCMPEQDP, "xvcmpeqdp" },
1138*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCMPEQSP, "xvcmpeqsp" },
1139*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCMPGEDP, "xvcmpgedp" },
1140*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCMPGESP, "xvcmpgesp" },
1141*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCMPGTDP, "xvcmpgtdp" },
1142*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCMPGTSP, "xvcmpgtsp" },
1143*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCPSGNDP, "xvcpsgndp" },
1144*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCPSGNSP, "xvcpsgnsp" },
1145*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCVDPSP, "xvcvdpsp" },
1146*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCVDPSXDS, "xvcvdpsxds" },
1147*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCVDPSXWS, "xvcvdpsxws" },
1148*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCVDPUXDS, "xvcvdpuxds" },
1149*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCVDPUXWS, "xvcvdpuxws" },
1150*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCVSPDP, "xvcvspdp" },
1151*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCVSPSXDS, "xvcvspsxds" },
1152*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCVSPSXWS, "xvcvspsxws" },
1153*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCVSPUXDS, "xvcvspuxds" },
1154*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCVSPUXWS, "xvcvspuxws" },
1155*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCVSXDDP, "xvcvsxddp" },
1156*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCVSXDSP, "xvcvsxdsp" },
1157*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCVSXWDP, "xvcvsxwdp" },
1158*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCVSXWSP, "xvcvsxwsp" },
1159*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCVUXDDP, "xvcvuxddp" },
1160*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCVUXDSP, "xvcvuxdsp" },
1161*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCVUXWDP, "xvcvuxwdp" },
1162*9a0e4156SSadaf Ebrahimi { PPC_INS_XVCVUXWSP, "xvcvuxwsp" },
1163*9a0e4156SSadaf Ebrahimi { PPC_INS_XVDIVDP, "xvdivdp" },
1164*9a0e4156SSadaf Ebrahimi { PPC_INS_XVDIVSP, "xvdivsp" },
1165*9a0e4156SSadaf Ebrahimi { PPC_INS_XVMADDADP, "xvmaddadp" },
1166*9a0e4156SSadaf Ebrahimi { PPC_INS_XVMADDASP, "xvmaddasp" },
1167*9a0e4156SSadaf Ebrahimi { PPC_INS_XVMADDMDP, "xvmaddmdp" },
1168*9a0e4156SSadaf Ebrahimi { PPC_INS_XVMADDMSP, "xvmaddmsp" },
1169*9a0e4156SSadaf Ebrahimi { PPC_INS_XVMAXDP, "xvmaxdp" },
1170*9a0e4156SSadaf Ebrahimi { PPC_INS_XVMAXSP, "xvmaxsp" },
1171*9a0e4156SSadaf Ebrahimi { PPC_INS_XVMINDP, "xvmindp" },
1172*9a0e4156SSadaf Ebrahimi { PPC_INS_XVMINSP, "xvminsp" },
1173*9a0e4156SSadaf Ebrahimi { PPC_INS_XVMSUBADP, "xvmsubadp" },
1174*9a0e4156SSadaf Ebrahimi { PPC_INS_XVMSUBASP, "xvmsubasp" },
1175*9a0e4156SSadaf Ebrahimi { PPC_INS_XVMSUBMDP, "xvmsubmdp" },
1176*9a0e4156SSadaf Ebrahimi { PPC_INS_XVMSUBMSP, "xvmsubmsp" },
1177*9a0e4156SSadaf Ebrahimi { PPC_INS_XVMULDP, "xvmuldp" },
1178*9a0e4156SSadaf Ebrahimi { PPC_INS_XVMULSP, "xvmulsp" },
1179*9a0e4156SSadaf Ebrahimi { PPC_INS_XVNABSDP, "xvnabsdp" },
1180*9a0e4156SSadaf Ebrahimi { PPC_INS_XVNABSSP, "xvnabssp" },
1181*9a0e4156SSadaf Ebrahimi { PPC_INS_XVNEGDP, "xvnegdp" },
1182*9a0e4156SSadaf Ebrahimi { PPC_INS_XVNEGSP, "xvnegsp" },
1183*9a0e4156SSadaf Ebrahimi { PPC_INS_XVNMADDADP, "xvnmaddadp" },
1184*9a0e4156SSadaf Ebrahimi { PPC_INS_XVNMADDASP, "xvnmaddasp" },
1185*9a0e4156SSadaf Ebrahimi { PPC_INS_XVNMADDMDP, "xvnmaddmdp" },
1186*9a0e4156SSadaf Ebrahimi { PPC_INS_XVNMADDMSP, "xvnmaddmsp" },
1187*9a0e4156SSadaf Ebrahimi { PPC_INS_XVNMSUBADP, "xvnmsubadp" },
1188*9a0e4156SSadaf Ebrahimi { PPC_INS_XVNMSUBASP, "xvnmsubasp" },
1189*9a0e4156SSadaf Ebrahimi { PPC_INS_XVNMSUBMDP, "xvnmsubmdp" },
1190*9a0e4156SSadaf Ebrahimi { PPC_INS_XVNMSUBMSP, "xvnmsubmsp" },
1191*9a0e4156SSadaf Ebrahimi { PPC_INS_XVRDPI, "xvrdpi" },
1192*9a0e4156SSadaf Ebrahimi { PPC_INS_XVRDPIC, "xvrdpic" },
1193*9a0e4156SSadaf Ebrahimi { PPC_INS_XVRDPIM, "xvrdpim" },
1194*9a0e4156SSadaf Ebrahimi { PPC_INS_XVRDPIP, "xvrdpip" },
1195*9a0e4156SSadaf Ebrahimi { PPC_INS_XVRDPIZ, "xvrdpiz" },
1196*9a0e4156SSadaf Ebrahimi { PPC_INS_XVREDP, "xvredp" },
1197*9a0e4156SSadaf Ebrahimi { PPC_INS_XVRESP, "xvresp" },
1198*9a0e4156SSadaf Ebrahimi { PPC_INS_XVRSPI, "xvrspi" },
1199*9a0e4156SSadaf Ebrahimi { PPC_INS_XVRSPIC, "xvrspic" },
1200*9a0e4156SSadaf Ebrahimi { PPC_INS_XVRSPIM, "xvrspim" },
1201*9a0e4156SSadaf Ebrahimi { PPC_INS_XVRSPIP, "xvrspip" },
1202*9a0e4156SSadaf Ebrahimi { PPC_INS_XVRSPIZ, "xvrspiz" },
1203*9a0e4156SSadaf Ebrahimi { PPC_INS_XVRSQRTEDP, "xvrsqrtedp" },
1204*9a0e4156SSadaf Ebrahimi { PPC_INS_XVRSQRTESP, "xvrsqrtesp" },
1205*9a0e4156SSadaf Ebrahimi { PPC_INS_XVSQRTDP, "xvsqrtdp" },
1206*9a0e4156SSadaf Ebrahimi { PPC_INS_XVSQRTSP, "xvsqrtsp" },
1207*9a0e4156SSadaf Ebrahimi { PPC_INS_XVSUBDP, "xvsubdp" },
1208*9a0e4156SSadaf Ebrahimi { PPC_INS_XVSUBSP, "xvsubsp" },
1209*9a0e4156SSadaf Ebrahimi { PPC_INS_XVTDIVDP, "xvtdivdp" },
1210*9a0e4156SSadaf Ebrahimi { PPC_INS_XVTDIVSP, "xvtdivsp" },
1211*9a0e4156SSadaf Ebrahimi { PPC_INS_XVTSQRTDP, "xvtsqrtdp" },
1212*9a0e4156SSadaf Ebrahimi { PPC_INS_XVTSQRTSP, "xvtsqrtsp" },
1213*9a0e4156SSadaf Ebrahimi { PPC_INS_XXLAND, "xxland" },
1214*9a0e4156SSadaf Ebrahimi { PPC_INS_XXLANDC, "xxlandc" },
1215*9a0e4156SSadaf Ebrahimi { PPC_INS_XXLEQV, "xxleqv" },
1216*9a0e4156SSadaf Ebrahimi { PPC_INS_XXLNAND, "xxlnand" },
1217*9a0e4156SSadaf Ebrahimi { PPC_INS_XXLNOR, "xxlnor" },
1218*9a0e4156SSadaf Ebrahimi { PPC_INS_XXLOR, "xxlor" },
1219*9a0e4156SSadaf Ebrahimi { PPC_INS_XXLORC, "xxlorc" },
1220*9a0e4156SSadaf Ebrahimi { PPC_INS_XXLXOR, "xxlxor" },
1221*9a0e4156SSadaf Ebrahimi { PPC_INS_XXMRGHW, "xxmrghw" },
1222*9a0e4156SSadaf Ebrahimi { PPC_INS_XXMRGLW, "xxmrglw" },
1223*9a0e4156SSadaf Ebrahimi { PPC_INS_XXPERMDI, "xxpermdi" },
1224*9a0e4156SSadaf Ebrahimi { PPC_INS_XXSEL, "xxsel" },
1225*9a0e4156SSadaf Ebrahimi { PPC_INS_XXSLDWI, "xxsldwi" },
1226*9a0e4156SSadaf Ebrahimi { PPC_INS_XXSPLTW, "xxspltw" },
1227*9a0e4156SSadaf Ebrahimi { PPC_INS_BCA, "bca" },
1228*9a0e4156SSadaf Ebrahimi { PPC_INS_BCLA, "bcla" },
1229*9a0e4156SSadaf Ebrahimi
1230*9a0e4156SSadaf Ebrahimi // extra & alias instructions
1231*9a0e4156SSadaf Ebrahimi { PPC_INS_SLWI, "slwi" },
1232*9a0e4156SSadaf Ebrahimi { PPC_INS_SRWI, "srwi" },
1233*9a0e4156SSadaf Ebrahimi { PPC_INS_SLDI, "sldi" },
1234*9a0e4156SSadaf Ebrahimi { PPC_INS_BTA, "bta" },
1235*9a0e4156SSadaf Ebrahimi { PPC_INS_CRSET, "crset" },
1236*9a0e4156SSadaf Ebrahimi { PPC_INS_CRNOT, "crnot" },
1237*9a0e4156SSadaf Ebrahimi { PPC_INS_CRMOVE, "crmove" },
1238*9a0e4156SSadaf Ebrahimi { PPC_INS_CRCLR, "crclr" },
1239*9a0e4156SSadaf Ebrahimi { PPC_INS_MFBR0, "mfbr0" },
1240*9a0e4156SSadaf Ebrahimi { PPC_INS_MFBR1, "mfbr1" },
1241*9a0e4156SSadaf Ebrahimi { PPC_INS_MFBR2, "mfbr2" },
1242*9a0e4156SSadaf Ebrahimi { PPC_INS_MFBR3, "mfbr3" },
1243*9a0e4156SSadaf Ebrahimi { PPC_INS_MFBR4, "mfbr4" },
1244*9a0e4156SSadaf Ebrahimi { PPC_INS_MFBR5, "mfbr5" },
1245*9a0e4156SSadaf Ebrahimi { PPC_INS_MFBR6, "mfbr6" },
1246*9a0e4156SSadaf Ebrahimi { PPC_INS_MFBR7, "mfbr7" },
1247*9a0e4156SSadaf Ebrahimi { PPC_INS_MFXER, "mfxer" },
1248*9a0e4156SSadaf Ebrahimi { PPC_INS_MFRTCU, "mfrtcu" },
1249*9a0e4156SSadaf Ebrahimi { PPC_INS_MFRTCL, "mfrtcl" },
1250*9a0e4156SSadaf Ebrahimi { PPC_INS_MFDSCR, "mfdscr" },
1251*9a0e4156SSadaf Ebrahimi { PPC_INS_MFDSISR, "mfdsisr" },
1252*9a0e4156SSadaf Ebrahimi { PPC_INS_MFDAR, "mfdar" },
1253*9a0e4156SSadaf Ebrahimi { PPC_INS_MFSRR2, "mfsrr2" },
1254*9a0e4156SSadaf Ebrahimi { PPC_INS_MFSRR3, "mfsrr3" },
1255*9a0e4156SSadaf Ebrahimi { PPC_INS_MFCFAR, "mfcfar" },
1256*9a0e4156SSadaf Ebrahimi { PPC_INS_MFAMR, "mfamr" },
1257*9a0e4156SSadaf Ebrahimi { PPC_INS_MFPID, "mfpid" },
1258*9a0e4156SSadaf Ebrahimi { PPC_INS_MFTBLO, "mftblo" },
1259*9a0e4156SSadaf Ebrahimi { PPC_INS_MFTBHI, "mftbhi" },
1260*9a0e4156SSadaf Ebrahimi { PPC_INS_MFDBATU, "mfdbatu" },
1261*9a0e4156SSadaf Ebrahimi { PPC_INS_MFDBATL, "mfdbatl" },
1262*9a0e4156SSadaf Ebrahimi { PPC_INS_MFIBATU, "mfibatu" },
1263*9a0e4156SSadaf Ebrahimi { PPC_INS_MFIBATL, "mfibatl" },
1264*9a0e4156SSadaf Ebrahimi { PPC_INS_MFDCCR, "mfdccr" },
1265*9a0e4156SSadaf Ebrahimi { PPC_INS_MFICCR, "mficcr" },
1266*9a0e4156SSadaf Ebrahimi { PPC_INS_MFDEAR, "mfdear" },
1267*9a0e4156SSadaf Ebrahimi { PPC_INS_MFESR, "mfesr" },
1268*9a0e4156SSadaf Ebrahimi { PPC_INS_MFSPEFSCR, "mfspefscr" },
1269*9a0e4156SSadaf Ebrahimi { PPC_INS_MFTCR, "mftcr" },
1270*9a0e4156SSadaf Ebrahimi { PPC_INS_MFASR, "mfasr" },
1271*9a0e4156SSadaf Ebrahimi { PPC_INS_MFPVR, "mfpvr" },
1272*9a0e4156SSadaf Ebrahimi { PPC_INS_MFTBU, "mftbu" },
1273*9a0e4156SSadaf Ebrahimi { PPC_INS_MTCR, "mtcr" },
1274*9a0e4156SSadaf Ebrahimi { PPC_INS_MTBR0, "mtbr0" },
1275*9a0e4156SSadaf Ebrahimi { PPC_INS_MTBR1, "mtbr1" },
1276*9a0e4156SSadaf Ebrahimi { PPC_INS_MTBR2, "mtbr2" },
1277*9a0e4156SSadaf Ebrahimi { PPC_INS_MTBR3, "mtbr3" },
1278*9a0e4156SSadaf Ebrahimi { PPC_INS_MTBR4, "mtbr4" },
1279*9a0e4156SSadaf Ebrahimi { PPC_INS_MTBR5, "mtbr5" },
1280*9a0e4156SSadaf Ebrahimi { PPC_INS_MTBR6, "mtbr6" },
1281*9a0e4156SSadaf Ebrahimi { PPC_INS_MTBR7, "mtbr7" },
1282*9a0e4156SSadaf Ebrahimi { PPC_INS_MTXER, "mtxer" },
1283*9a0e4156SSadaf Ebrahimi { PPC_INS_MTDSCR, "mtdscr" },
1284*9a0e4156SSadaf Ebrahimi { PPC_INS_MTDSISR, "mtdsisr" },
1285*9a0e4156SSadaf Ebrahimi { PPC_INS_MTDAR, "mtdar" },
1286*9a0e4156SSadaf Ebrahimi { PPC_INS_MTSRR2, "mtsrr2" },
1287*9a0e4156SSadaf Ebrahimi { PPC_INS_MTSRR3, "mtsrr3" },
1288*9a0e4156SSadaf Ebrahimi { PPC_INS_MTCFAR, "mtcfar" },
1289*9a0e4156SSadaf Ebrahimi { PPC_INS_MTAMR, "mtamr" },
1290*9a0e4156SSadaf Ebrahimi { PPC_INS_MTPID, "mtpid" },
1291*9a0e4156SSadaf Ebrahimi { PPC_INS_MTTBL, "mttbl" },
1292*9a0e4156SSadaf Ebrahimi { PPC_INS_MTTBU, "mttbu" },
1293*9a0e4156SSadaf Ebrahimi { PPC_INS_MTTBLO, "mttblo" },
1294*9a0e4156SSadaf Ebrahimi { PPC_INS_MTTBHI, "mttbhi" },
1295*9a0e4156SSadaf Ebrahimi { PPC_INS_MTDBATU, "mtdbatu" },
1296*9a0e4156SSadaf Ebrahimi { PPC_INS_MTDBATL, "mtdbatl" },
1297*9a0e4156SSadaf Ebrahimi { PPC_INS_MTIBATU, "mtibatu" },
1298*9a0e4156SSadaf Ebrahimi { PPC_INS_MTIBATL, "mtibatl" },
1299*9a0e4156SSadaf Ebrahimi { PPC_INS_MTDCCR, "mtdccr" },
1300*9a0e4156SSadaf Ebrahimi { PPC_INS_MTICCR, "mticcr" },
1301*9a0e4156SSadaf Ebrahimi { PPC_INS_MTDEAR, "mtdear" },
1302*9a0e4156SSadaf Ebrahimi { PPC_INS_MTESR, "mtesr" },
1303*9a0e4156SSadaf Ebrahimi { PPC_INS_MTSPEFSCR, "mtspefscr" },
1304*9a0e4156SSadaf Ebrahimi { PPC_INS_MTTCR, "mttcr" },
1305*9a0e4156SSadaf Ebrahimi { PPC_INS_NOT, "not" },
1306*9a0e4156SSadaf Ebrahimi { PPC_INS_MR, "mr" },
1307*9a0e4156SSadaf Ebrahimi { PPC_INS_ROTLD, "rotld" },
1308*9a0e4156SSadaf Ebrahimi { PPC_INS_ROTLDI, "rotldi" },
1309*9a0e4156SSadaf Ebrahimi { PPC_INS_CLRLDI, "clrldi" },
1310*9a0e4156SSadaf Ebrahimi { PPC_INS_ROTLWI, "rotlwi" },
1311*9a0e4156SSadaf Ebrahimi { PPC_INS_CLRLWI, "clrlwi" },
1312*9a0e4156SSadaf Ebrahimi { PPC_INS_ROTLW, "rotlw" },
1313*9a0e4156SSadaf Ebrahimi { PPC_INS_SUB, "sub" },
1314*9a0e4156SSadaf Ebrahimi { PPC_INS_SUBC, "subc" },
1315*9a0e4156SSadaf Ebrahimi { PPC_INS_LWSYNC, "lwsync" },
1316*9a0e4156SSadaf Ebrahimi { PPC_INS_PTESYNC, "ptesync" },
1317*9a0e4156SSadaf Ebrahimi { PPC_INS_TDLT, "tdlt" },
1318*9a0e4156SSadaf Ebrahimi { PPC_INS_TDEQ, "tdeq" },
1319*9a0e4156SSadaf Ebrahimi { PPC_INS_TDGT, "tdgt" },
1320*9a0e4156SSadaf Ebrahimi { PPC_INS_TDNE, "tdne" },
1321*9a0e4156SSadaf Ebrahimi { PPC_INS_TDLLT, "tdllt" },
1322*9a0e4156SSadaf Ebrahimi { PPC_INS_TDLGT, "tdlgt" },
1323*9a0e4156SSadaf Ebrahimi { PPC_INS_TDU, "tdu" },
1324*9a0e4156SSadaf Ebrahimi { PPC_INS_TDLTI, "tdlti" },
1325*9a0e4156SSadaf Ebrahimi { PPC_INS_TDEQI, "tdeqi" },
1326*9a0e4156SSadaf Ebrahimi { PPC_INS_TDGTI, "tdgti" },
1327*9a0e4156SSadaf Ebrahimi { PPC_INS_TDNEI, "tdnei" },
1328*9a0e4156SSadaf Ebrahimi { PPC_INS_TDLLTI, "tdllti" },
1329*9a0e4156SSadaf Ebrahimi { PPC_INS_TDLGTI, "tdlgti" },
1330*9a0e4156SSadaf Ebrahimi { PPC_INS_TDUI, "tdui" },
1331*9a0e4156SSadaf Ebrahimi { PPC_INS_TLBREHI, "tlbrehi" },
1332*9a0e4156SSadaf Ebrahimi { PPC_INS_TLBRELO, "tlbrelo" },
1333*9a0e4156SSadaf Ebrahimi { PPC_INS_TLBWEHI, "tlbwehi" },
1334*9a0e4156SSadaf Ebrahimi { PPC_INS_TLBWELO, "tlbwelo" },
1335*9a0e4156SSadaf Ebrahimi { PPC_INS_TWLT, "twlt" },
1336*9a0e4156SSadaf Ebrahimi { PPC_INS_TWEQ, "tweq" },
1337*9a0e4156SSadaf Ebrahimi { PPC_INS_TWGT, "twgt" },
1338*9a0e4156SSadaf Ebrahimi { PPC_INS_TWNE, "twne" },
1339*9a0e4156SSadaf Ebrahimi { PPC_INS_TWLLT, "twllt" },
1340*9a0e4156SSadaf Ebrahimi { PPC_INS_TWLGT, "twlgt" },
1341*9a0e4156SSadaf Ebrahimi { PPC_INS_TWU, "twu" },
1342*9a0e4156SSadaf Ebrahimi { PPC_INS_TWLTI, "twlti" },
1343*9a0e4156SSadaf Ebrahimi { PPC_INS_TWEQI, "tweqi" },
1344*9a0e4156SSadaf Ebrahimi { PPC_INS_TWGTI, "twgti" },
1345*9a0e4156SSadaf Ebrahimi { PPC_INS_TWNEI, "twnei" },
1346*9a0e4156SSadaf Ebrahimi { PPC_INS_TWLLTI, "twllti" },
1347*9a0e4156SSadaf Ebrahimi { PPC_INS_TWLGTI, "twlgti" },
1348*9a0e4156SSadaf Ebrahimi { PPC_INS_TWUI, "twui" },
1349*9a0e4156SSadaf Ebrahimi { PPC_INS_WAITRSV, "waitrsv" },
1350*9a0e4156SSadaf Ebrahimi { PPC_INS_WAITIMPL, "waitimpl" },
1351*9a0e4156SSadaf Ebrahimi { PPC_INS_XNOP, "xnop" },
1352*9a0e4156SSadaf Ebrahimi { PPC_INS_XVMOVDP, "xvmovdp" },
1353*9a0e4156SSadaf Ebrahimi { PPC_INS_XVMOVSP, "xvmovsp" },
1354*9a0e4156SSadaf Ebrahimi { PPC_INS_XXSPLTD, "xxspltd" },
1355*9a0e4156SSadaf Ebrahimi { PPC_INS_XXMRGHD, "xxmrghd" },
1356*9a0e4156SSadaf Ebrahimi { PPC_INS_XXMRGLD, "xxmrgld" },
1357*9a0e4156SSadaf Ebrahimi { PPC_INS_XXSWAPD, "xxswapd" },
1358*9a0e4156SSadaf Ebrahimi { PPC_INS_BT, "bt" },
1359*9a0e4156SSadaf Ebrahimi { PPC_INS_BF, "bf" },
1360*9a0e4156SSadaf Ebrahimi { PPC_INS_BDNZT, "bdnzt" },
1361*9a0e4156SSadaf Ebrahimi { PPC_INS_BDNZF, "bdnzf" },
1362*9a0e4156SSadaf Ebrahimi { PPC_INS_BDZF, "bdzf" },
1363*9a0e4156SSadaf Ebrahimi { PPC_INS_BDZT, "bdzt" },
1364*9a0e4156SSadaf Ebrahimi { PPC_INS_BFA, "bfa" },
1365*9a0e4156SSadaf Ebrahimi { PPC_INS_BDNZTA, "bdnzta" },
1366*9a0e4156SSadaf Ebrahimi { PPC_INS_BDNZFA, "bdnzfa" },
1367*9a0e4156SSadaf Ebrahimi { PPC_INS_BDZTA, "bdzta" },
1368*9a0e4156SSadaf Ebrahimi { PPC_INS_BDZFA, "bdzfa" },
1369*9a0e4156SSadaf Ebrahimi { PPC_INS_BTCTR, "btctr" },
1370*9a0e4156SSadaf Ebrahimi { PPC_INS_BFCTR, "bfctr" },
1371*9a0e4156SSadaf Ebrahimi { PPC_INS_BTCTRL, "btctrl" },
1372*9a0e4156SSadaf Ebrahimi { PPC_INS_BFCTRL, "bfctrl" },
1373*9a0e4156SSadaf Ebrahimi { PPC_INS_BTL, "btl" },
1374*9a0e4156SSadaf Ebrahimi { PPC_INS_BFL, "bfl" },
1375*9a0e4156SSadaf Ebrahimi { PPC_INS_BDNZTL, "bdnztl" },
1376*9a0e4156SSadaf Ebrahimi { PPC_INS_BDNZFL, "bdnzfl" },
1377*9a0e4156SSadaf Ebrahimi { PPC_INS_BDZTL, "bdztl" },
1378*9a0e4156SSadaf Ebrahimi { PPC_INS_BDZFL, "bdzfl" },
1379*9a0e4156SSadaf Ebrahimi { PPC_INS_BTLA, "btla" },
1380*9a0e4156SSadaf Ebrahimi { PPC_INS_BFLA, "bfla" },
1381*9a0e4156SSadaf Ebrahimi { PPC_INS_BDNZTLA, "bdnztla" },
1382*9a0e4156SSadaf Ebrahimi { PPC_INS_BDNZFLA, "bdnzfla" },
1383*9a0e4156SSadaf Ebrahimi { PPC_INS_BDZTLA, "bdztla" },
1384*9a0e4156SSadaf Ebrahimi { PPC_INS_BDZFLA, "bdzfla" },
1385*9a0e4156SSadaf Ebrahimi { PPC_INS_BTLR, "btlr" },
1386*9a0e4156SSadaf Ebrahimi { PPC_INS_BFLR, "bflr" },
1387*9a0e4156SSadaf Ebrahimi { PPC_INS_BDNZTLR, "bdnztlr" },
1388*9a0e4156SSadaf Ebrahimi { PPC_INS_BDZTLR, "bdztlr" },
1389*9a0e4156SSadaf Ebrahimi { PPC_INS_BDZFLR, "bdzflr" },
1390*9a0e4156SSadaf Ebrahimi { PPC_INS_BTLRL, "btlrl" },
1391*9a0e4156SSadaf Ebrahimi { PPC_INS_BFLRL, "bflrl" },
1392*9a0e4156SSadaf Ebrahimi { PPC_INS_BDNZTLRL, "bdnztlrl" },
1393*9a0e4156SSadaf Ebrahimi { PPC_INS_BDNZFLRL, "bdnzflrl" },
1394*9a0e4156SSadaf Ebrahimi { PPC_INS_BDZTLRL, "bdztlrl" },
1395*9a0e4156SSadaf Ebrahimi { PPC_INS_BDZFLRL, "bdzflrl" },
1396*9a0e4156SSadaf Ebrahimi
1397*9a0e4156SSadaf Ebrahimi // QPX
1398*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFAND, "qvfand" },
1399*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFCLR, "qvfclr" },
1400*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFANDC, "qvfandc" },
1401*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFCTFB, "qvfctfb" },
1402*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFXOR, "qvfxor" },
1403*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFOR, "qvfor" },
1404*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFNOR, "qvfnor" },
1405*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFEQU, "qvfequ" },
1406*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFNOT, "qvfnot" },
1407*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFORC, "qvforc" },
1408*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFNAND, "qvfnand" },
1409*9a0e4156SSadaf Ebrahimi { PPC_INS_QVFSET, "qvfset" },
1410*9a0e4156SSadaf Ebrahimi };
1411*9a0e4156SSadaf Ebrahimi
1412*9a0e4156SSadaf Ebrahimi // special alias insn
1413*9a0e4156SSadaf Ebrahimi static const name_map alias_insn_names[] = {
1414*9a0e4156SSadaf Ebrahimi { 0, NULL }
1415*9a0e4156SSadaf Ebrahimi };
1416*9a0e4156SSadaf Ebrahimi #endif
1417*9a0e4156SSadaf Ebrahimi
PPC_insn_name(csh handle,unsigned int id)1418*9a0e4156SSadaf Ebrahimi const char *PPC_insn_name(csh handle, unsigned int id)
1419*9a0e4156SSadaf Ebrahimi {
1420*9a0e4156SSadaf Ebrahimi #ifndef CAPSTONE_DIET
1421*9a0e4156SSadaf Ebrahimi unsigned int i;
1422*9a0e4156SSadaf Ebrahimi
1423*9a0e4156SSadaf Ebrahimi if (id >= PPC_INS_ENDING)
1424*9a0e4156SSadaf Ebrahimi return NULL;
1425*9a0e4156SSadaf Ebrahimi
1426*9a0e4156SSadaf Ebrahimi // handle special alias first
1427*9a0e4156SSadaf Ebrahimi for (i = 0; i < ARR_SIZE(alias_insn_names); i++) {
1428*9a0e4156SSadaf Ebrahimi if (alias_insn_names[i].id == id)
1429*9a0e4156SSadaf Ebrahimi return alias_insn_names[i].name;
1430*9a0e4156SSadaf Ebrahimi }
1431*9a0e4156SSadaf Ebrahimi
1432*9a0e4156SSadaf Ebrahimi return insn_name_maps[id].name;
1433*9a0e4156SSadaf Ebrahimi #else
1434*9a0e4156SSadaf Ebrahimi return NULL;
1435*9a0e4156SSadaf Ebrahimi #endif
1436*9a0e4156SSadaf Ebrahimi }
1437*9a0e4156SSadaf Ebrahimi
1438*9a0e4156SSadaf Ebrahimi #ifndef CAPSTONE_DIET
1439*9a0e4156SSadaf Ebrahimi static const name_map group_name_maps[] = {
1440*9a0e4156SSadaf Ebrahimi // generic groups
1441*9a0e4156SSadaf Ebrahimi { PPC_GRP_INVALID, NULL },
1442*9a0e4156SSadaf Ebrahimi { PPC_GRP_JUMP, "jump" },
1443*9a0e4156SSadaf Ebrahimi
1444*9a0e4156SSadaf Ebrahimi // architecture-specific groups
1445*9a0e4156SSadaf Ebrahimi { PPC_GRP_ALTIVEC, "altivec" },
1446*9a0e4156SSadaf Ebrahimi { PPC_GRP_MODE32, "mode32" },
1447*9a0e4156SSadaf Ebrahimi { PPC_GRP_MODE64, "mode64" },
1448*9a0e4156SSadaf Ebrahimi { PPC_GRP_BOOKE, "booke" },
1449*9a0e4156SSadaf Ebrahimi { PPC_GRP_NOTBOOKE, "notbooke" },
1450*9a0e4156SSadaf Ebrahimi { PPC_GRP_SPE, "spe" },
1451*9a0e4156SSadaf Ebrahimi { PPC_GRP_VSX, "vsx" },
1452*9a0e4156SSadaf Ebrahimi { PPC_GRP_E500, "e500" },
1453*9a0e4156SSadaf Ebrahimi { PPC_GRP_PPC4XX, "ppc4xx" },
1454*9a0e4156SSadaf Ebrahimi { PPC_GRP_PPC6XX, "ppc6xx" },
1455*9a0e4156SSadaf Ebrahimi { PPC_GRP_ICBT, "icbt" },
1456*9a0e4156SSadaf Ebrahimi { PPC_GRP_P8ALTIVEC, "p8altivec" },
1457*9a0e4156SSadaf Ebrahimi { PPC_GRP_P8VECTOR, "p8vector" },
1458*9a0e4156SSadaf Ebrahimi { PPC_GRP_QPX, "qpx" },
1459*9a0e4156SSadaf Ebrahimi };
1460*9a0e4156SSadaf Ebrahimi #endif
1461*9a0e4156SSadaf Ebrahimi
PPC_group_name(csh handle,unsigned int id)1462*9a0e4156SSadaf Ebrahimi const char *PPC_group_name(csh handle, unsigned int id)
1463*9a0e4156SSadaf Ebrahimi {
1464*9a0e4156SSadaf Ebrahimi #ifndef CAPSTONE_DIET
1465*9a0e4156SSadaf Ebrahimi return id2name(group_name_maps, ARR_SIZE(group_name_maps), id);
1466*9a0e4156SSadaf Ebrahimi #else
1467*9a0e4156SSadaf Ebrahimi return NULL;
1468*9a0e4156SSadaf Ebrahimi #endif
1469*9a0e4156SSadaf Ebrahimi }
1470*9a0e4156SSadaf Ebrahimi
1471*9a0e4156SSadaf Ebrahimi // map internal raw register to 'public' register
PPC_map_register(unsigned int r)1472*9a0e4156SSadaf Ebrahimi ppc_reg PPC_map_register(unsigned int r)
1473*9a0e4156SSadaf Ebrahimi {
1474*9a0e4156SSadaf Ebrahimi static unsigned int map[] = { 0,
1475*9a0e4156SSadaf Ebrahimi 0, PPC_REG_CARRY, PPC_REG_CTR, 0, PPC_REG_LR,
1476*9a0e4156SSadaf Ebrahimi 0, PPC_REG_VRSAVE, PPC_REG_R0, 0, PPC_REG_CR0,
1477*9a0e4156SSadaf Ebrahimi PPC_REG_CR1, PPC_REG_CR2, PPC_REG_CR3, PPC_REG_CR4, PPC_REG_CR5,
1478*9a0e4156SSadaf Ebrahimi PPC_REG_CR6, PPC_REG_CR7, PPC_REG_CTR, PPC_REG_F0, PPC_REG_F1,
1479*9a0e4156SSadaf Ebrahimi PPC_REG_F2, PPC_REG_F3, PPC_REG_F4, PPC_REG_F5, PPC_REG_F6,
1480*9a0e4156SSadaf Ebrahimi PPC_REG_F7, PPC_REG_F8, PPC_REG_F9, PPC_REG_F10, PPC_REG_F11,
1481*9a0e4156SSadaf Ebrahimi PPC_REG_F12, PPC_REG_F13, PPC_REG_F14, PPC_REG_F15, PPC_REG_F16,
1482*9a0e4156SSadaf Ebrahimi PPC_REG_F17, PPC_REG_F18, PPC_REG_F19, PPC_REG_F20, PPC_REG_F21,
1483*9a0e4156SSadaf Ebrahimi PPC_REG_F22, PPC_REG_F23, PPC_REG_F24, PPC_REG_F25, PPC_REG_F26,
1484*9a0e4156SSadaf Ebrahimi PPC_REG_F27, PPC_REG_F28, PPC_REG_F29, PPC_REG_F30, PPC_REG_F31,
1485*9a0e4156SSadaf Ebrahimi 0, PPC_REG_LR, PPC_REG_Q0, PPC_REG_Q1, PPC_REG_Q2,
1486*9a0e4156SSadaf Ebrahimi PPC_REG_Q3, PPC_REG_Q4, PPC_REG_Q5, PPC_REG_Q6, PPC_REG_Q7,
1487*9a0e4156SSadaf Ebrahimi PPC_REG_Q8, PPC_REG_Q9, PPC_REG_Q10, PPC_REG_Q11, PPC_REG_Q12,
1488*9a0e4156SSadaf Ebrahimi PPC_REG_Q13, PPC_REG_Q14, PPC_REG_Q15, PPC_REG_Q16, PPC_REG_Q17,
1489*9a0e4156SSadaf Ebrahimi PPC_REG_Q18, PPC_REG_Q19, PPC_REG_Q20, PPC_REG_Q21, PPC_REG_Q22,
1490*9a0e4156SSadaf Ebrahimi PPC_REG_Q23, PPC_REG_Q24, PPC_REG_Q25, PPC_REG_Q26, PPC_REG_Q27,
1491*9a0e4156SSadaf Ebrahimi PPC_REG_Q28, PPC_REG_Q29, PPC_REG_Q30, PPC_REG_Q31, PPC_REG_R0,
1492*9a0e4156SSadaf Ebrahimi PPC_REG_R1, PPC_REG_R2, PPC_REG_R3, PPC_REG_R4, PPC_REG_R5,
1493*9a0e4156SSadaf Ebrahimi PPC_REG_R6, PPC_REG_R7, PPC_REG_R8, PPC_REG_R9, PPC_REG_R10,
1494*9a0e4156SSadaf Ebrahimi PPC_REG_R11, PPC_REG_R12, PPC_REG_R13, PPC_REG_R14, PPC_REG_R15,
1495*9a0e4156SSadaf Ebrahimi PPC_REG_R16, PPC_REG_R17, PPC_REG_R18, PPC_REG_R19, PPC_REG_R20,
1496*9a0e4156SSadaf Ebrahimi PPC_REG_R21, PPC_REG_R22, PPC_REG_R23, PPC_REG_R24, PPC_REG_R25,
1497*9a0e4156SSadaf Ebrahimi PPC_REG_R26, PPC_REG_R27, PPC_REG_R28, PPC_REG_R29, PPC_REG_R30,
1498*9a0e4156SSadaf Ebrahimi PPC_REG_R31, PPC_REG_V0, PPC_REG_V1, PPC_REG_V2, PPC_REG_V3,
1499*9a0e4156SSadaf Ebrahimi PPC_REG_V4, PPC_REG_V5, PPC_REG_V6, PPC_REG_V7, PPC_REG_V8,
1500*9a0e4156SSadaf Ebrahimi PPC_REG_V9, PPC_REG_V10, PPC_REG_V11, PPC_REG_V12, PPC_REG_V13,
1501*9a0e4156SSadaf Ebrahimi PPC_REG_V14, PPC_REG_V15, PPC_REG_V16, PPC_REG_V17, PPC_REG_V18,
1502*9a0e4156SSadaf Ebrahimi PPC_REG_V19, PPC_REG_V20, PPC_REG_V21, PPC_REG_V22, PPC_REG_V23,
1503*9a0e4156SSadaf Ebrahimi PPC_REG_V24, PPC_REG_V25, PPC_REG_V26, PPC_REG_V27, PPC_REG_V28,
1504*9a0e4156SSadaf Ebrahimi PPC_REG_V29, PPC_REG_V30, PPC_REG_V31, PPC_REG_VS32, PPC_REG_VS33,
1505*9a0e4156SSadaf Ebrahimi PPC_REG_VS34, PPC_REG_VS35, PPC_REG_VS36, PPC_REG_VS37, PPC_REG_VS38,
1506*9a0e4156SSadaf Ebrahimi PPC_REG_VS39, PPC_REG_VS40, PPC_REG_VS41, PPC_REG_VS42, PPC_REG_VS43,
1507*9a0e4156SSadaf Ebrahimi PPC_REG_VS44, PPC_REG_VS45, PPC_REG_VS46, PPC_REG_VS47, PPC_REG_VS48,
1508*9a0e4156SSadaf Ebrahimi PPC_REG_VS49, PPC_REG_VS50, PPC_REG_VS51, PPC_REG_VS52, PPC_REG_VS53,
1509*9a0e4156SSadaf Ebrahimi PPC_REG_VS54, PPC_REG_VS55, PPC_REG_VS56, PPC_REG_VS57, PPC_REG_VS58,
1510*9a0e4156SSadaf Ebrahimi PPC_REG_VS59, PPC_REG_VS60, PPC_REG_VS61, PPC_REG_VS62, PPC_REG_VS63,
1511*9a0e4156SSadaf Ebrahimi PPC_REG_VS32, PPC_REG_VS33, PPC_REG_VS34, PPC_REG_VS35, PPC_REG_VS36,
1512*9a0e4156SSadaf Ebrahimi PPC_REG_VS37, PPC_REG_VS38, PPC_REG_VS39, PPC_REG_VS40, PPC_REG_VS41,
1513*9a0e4156SSadaf Ebrahimi PPC_REG_VS42, PPC_REG_VS43, PPC_REG_VS44, PPC_REG_VS45, PPC_REG_VS46,
1514*9a0e4156SSadaf Ebrahimi PPC_REG_VS47, PPC_REG_VS48, PPC_REG_VS49, PPC_REG_VS50, PPC_REG_VS51,
1515*9a0e4156SSadaf Ebrahimi PPC_REG_VS52, PPC_REG_VS53, PPC_REG_VS54, PPC_REG_VS55, PPC_REG_VS56,
1516*9a0e4156SSadaf Ebrahimi PPC_REG_VS57, PPC_REG_VS58, PPC_REG_VS59, PPC_REG_VS60, PPC_REG_VS61,
1517*9a0e4156SSadaf Ebrahimi PPC_REG_VS62, PPC_REG_VS63, PPC_REG_VS0, PPC_REG_VS1, PPC_REG_VS2,
1518*9a0e4156SSadaf Ebrahimi PPC_REG_VS3, PPC_REG_VS4, PPC_REG_VS5, PPC_REG_VS6, PPC_REG_VS7,
1519*9a0e4156SSadaf Ebrahimi PPC_REG_VS8, PPC_REG_VS9, PPC_REG_VS10, PPC_REG_VS11, PPC_REG_VS12,
1520*9a0e4156SSadaf Ebrahimi PPC_REG_VS13, PPC_REG_VS14, PPC_REG_VS15, PPC_REG_VS16, PPC_REG_VS17,
1521*9a0e4156SSadaf Ebrahimi PPC_REG_VS18, PPC_REG_VS19, PPC_REG_VS20, PPC_REG_VS21, PPC_REG_VS22,
1522*9a0e4156SSadaf Ebrahimi PPC_REG_VS23, PPC_REG_VS24, PPC_REG_VS25, PPC_REG_VS26, PPC_REG_VS27,
1523*9a0e4156SSadaf Ebrahimi PPC_REG_VS28, PPC_REG_VS29, PPC_REG_VS30, PPC_REG_VS31, PPC_REG_R0,
1524*9a0e4156SSadaf Ebrahimi PPC_REG_R1, PPC_REG_R2, PPC_REG_R3, PPC_REG_R4, PPC_REG_R5,
1525*9a0e4156SSadaf Ebrahimi PPC_REG_R6, PPC_REG_R7, PPC_REG_R8, PPC_REG_R9, PPC_REG_R10,
1526*9a0e4156SSadaf Ebrahimi PPC_REG_R11, PPC_REG_R12, PPC_REG_R13, PPC_REG_R14, PPC_REG_R15,
1527*9a0e4156SSadaf Ebrahimi PPC_REG_R16, PPC_REG_R17, PPC_REG_R18, PPC_REG_R19, PPC_REG_R20,
1528*9a0e4156SSadaf Ebrahimi PPC_REG_R21, PPC_REG_R22, PPC_REG_R23, PPC_REG_R24, PPC_REG_R25,
1529*9a0e4156SSadaf Ebrahimi PPC_REG_R26, PPC_REG_R27, PPC_REG_R28, PPC_REG_R29, PPC_REG_R30,
1530*9a0e4156SSadaf Ebrahimi PPC_REG_R31, PPC_REG_R0, PPC_REG_R2, PPC_REG_R6, PPC_REG_R10,
1531*9a0e4156SSadaf Ebrahimi PPC_REG_R14, PPC_REG_R18, PPC_REG_R22, PPC_REG_R26, PPC_REG_R30,
1532*9a0e4156SSadaf Ebrahimi PPC_REG_R1, PPC_REG_R5, PPC_REG_R9, PPC_REG_R13, PPC_REG_R17,
1533*9a0e4156SSadaf Ebrahimi PPC_REG_R21, PPC_REG_R25, PPC_REG_R29, PPC_REG_R0, PPC_REG_R4,
1534*9a0e4156SSadaf Ebrahimi PPC_REG_R8, PPC_REG_R12, PPC_REG_R16, PPC_REG_R20, PPC_REG_R24,
1535*9a0e4156SSadaf Ebrahimi PPC_REG_R28, PPC_REG_R3, PPC_REG_R7, PPC_REG_R11, PPC_REG_R15,
1536*9a0e4156SSadaf Ebrahimi PPC_REG_R19, PPC_REG_R23, PPC_REG_R27, PPC_REG_R31 };
1537*9a0e4156SSadaf Ebrahimi
1538*9a0e4156SSadaf Ebrahimi if (r < ARR_SIZE(map))
1539*9a0e4156SSadaf Ebrahimi return map[r];
1540*9a0e4156SSadaf Ebrahimi
1541*9a0e4156SSadaf Ebrahimi // cannot find this register
1542*9a0e4156SSadaf Ebrahimi return 0;
1543*9a0e4156SSadaf Ebrahimi }
1544*9a0e4156SSadaf Ebrahimi
1545*9a0e4156SSadaf Ebrahimi static const struct ppc_alias alias_insn_name_maps[] = {
1546*9a0e4156SSadaf Ebrahimi //{ PPC_INS_BTA, "bta" },
1547*9a0e4156SSadaf Ebrahimi { PPC_INS_B, PPC_BC_LT, "blt" },
1548*9a0e4156SSadaf Ebrahimi { PPC_INS_B, PPC_BC_LE, "ble" },
1549*9a0e4156SSadaf Ebrahimi { PPC_INS_B, PPC_BC_EQ, "beq" },
1550*9a0e4156SSadaf Ebrahimi { PPC_INS_B, PPC_BC_GE, "bge" },
1551*9a0e4156SSadaf Ebrahimi { PPC_INS_B, PPC_BC_GT, "bgt" },
1552*9a0e4156SSadaf Ebrahimi { PPC_INS_B, PPC_BC_NE, "bne" },
1553*9a0e4156SSadaf Ebrahimi { PPC_INS_B, PPC_BC_UN, "bun" },
1554*9a0e4156SSadaf Ebrahimi { PPC_INS_B, PPC_BC_NU, "bnu" },
1555*9a0e4156SSadaf Ebrahimi { PPC_INS_B, PPC_BC_SO, "bso" },
1556*9a0e4156SSadaf Ebrahimi { PPC_INS_B, PPC_BC_NS, "bns" },
1557*9a0e4156SSadaf Ebrahimi
1558*9a0e4156SSadaf Ebrahimi { PPC_INS_BA, PPC_BC_LT, "blta" },
1559*9a0e4156SSadaf Ebrahimi { PPC_INS_BA, PPC_BC_LE, "blea" },
1560*9a0e4156SSadaf Ebrahimi { PPC_INS_BA, PPC_BC_EQ, "beqa" },
1561*9a0e4156SSadaf Ebrahimi { PPC_INS_BA, PPC_BC_GE, "bgea" },
1562*9a0e4156SSadaf Ebrahimi { PPC_INS_BA, PPC_BC_GT, "bgta" },
1563*9a0e4156SSadaf Ebrahimi { PPC_INS_BA, PPC_BC_NE, "bnea" },
1564*9a0e4156SSadaf Ebrahimi { PPC_INS_BA, PPC_BC_UN, "buna" },
1565*9a0e4156SSadaf Ebrahimi { PPC_INS_BA, PPC_BC_NU, "bnua" },
1566*9a0e4156SSadaf Ebrahimi { PPC_INS_BA, PPC_BC_SO, "bsoa" },
1567*9a0e4156SSadaf Ebrahimi { PPC_INS_BA, PPC_BC_NS, "bnsa" },
1568*9a0e4156SSadaf Ebrahimi
1569*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTR, PPC_BC_LT, "bltctr" },
1570*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTR, PPC_BC_LE, "blectr" },
1571*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTR, PPC_BC_EQ, "beqctr" },
1572*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTR, PPC_BC_GE, "bgectr" },
1573*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTR, PPC_BC_GT, "bgtctr" },
1574*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTR, PPC_BC_NE, "bnectr" },
1575*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTR, PPC_BC_UN, "bunctr" },
1576*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTR, PPC_BC_NU, "bnuctr" },
1577*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTR, PPC_BC_SO, "bsoctr" },
1578*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTR, PPC_BC_NS, "bnsctr" },
1579*9a0e4156SSadaf Ebrahimi
1580*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTRL, PPC_BC_LT, "bltctrl" },
1581*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTRL, PPC_BC_LE, "blectrl" },
1582*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTRL, PPC_BC_EQ, "beqctrl" },
1583*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTRL, PPC_BC_GE, "bgectrl" },
1584*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTRL, PPC_BC_GT, "bgtctrl" },
1585*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTRL, PPC_BC_NE, "bnectrl" },
1586*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTRL, PPC_BC_UN, "bunctrl" },
1587*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTRL, PPC_BC_NU, "bnuctrl" },
1588*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTRL, PPC_BC_SO, "bsoctrl" },
1589*9a0e4156SSadaf Ebrahimi { PPC_INS_BCTRL, PPC_BC_NS, "bnsctrl" },
1590*9a0e4156SSadaf Ebrahimi
1591*9a0e4156SSadaf Ebrahimi { PPC_INS_BL, PPC_BC_LT, "bltl" },
1592*9a0e4156SSadaf Ebrahimi { PPC_INS_BL, PPC_BC_LE, "blel" },
1593*9a0e4156SSadaf Ebrahimi { PPC_INS_BL, PPC_BC_EQ, "beql" },
1594*9a0e4156SSadaf Ebrahimi { PPC_INS_BL, PPC_BC_GE, "bgel" },
1595*9a0e4156SSadaf Ebrahimi { PPC_INS_BL, PPC_BC_GT, "bgtl" },
1596*9a0e4156SSadaf Ebrahimi { PPC_INS_BL, PPC_BC_NE, "bnel" },
1597*9a0e4156SSadaf Ebrahimi { PPC_INS_BL, PPC_BC_UN, "bunl" },
1598*9a0e4156SSadaf Ebrahimi { PPC_INS_BL, PPC_BC_NU, "bnul" },
1599*9a0e4156SSadaf Ebrahimi { PPC_INS_BL, PPC_BC_SO, "bsol" },
1600*9a0e4156SSadaf Ebrahimi { PPC_INS_BL, PPC_BC_NS, "bnsl" },
1601*9a0e4156SSadaf Ebrahimi
1602*9a0e4156SSadaf Ebrahimi { PPC_INS_BLA, PPC_BC_LT, "bltla" },
1603*9a0e4156SSadaf Ebrahimi { PPC_INS_BLA, PPC_BC_LE, "blela" },
1604*9a0e4156SSadaf Ebrahimi { PPC_INS_BLA, PPC_BC_EQ, "beqla" },
1605*9a0e4156SSadaf Ebrahimi { PPC_INS_BLA, PPC_BC_GE, "bgela" },
1606*9a0e4156SSadaf Ebrahimi { PPC_INS_BLA, PPC_BC_GT, "bgtla" },
1607*9a0e4156SSadaf Ebrahimi { PPC_INS_BLA, PPC_BC_NE, "bnela" },
1608*9a0e4156SSadaf Ebrahimi { PPC_INS_BLA, PPC_BC_UN, "bunla" },
1609*9a0e4156SSadaf Ebrahimi { PPC_INS_BLA, PPC_BC_NU, "bnula" },
1610*9a0e4156SSadaf Ebrahimi { PPC_INS_BLA, PPC_BC_SO, "bsola" },
1611*9a0e4156SSadaf Ebrahimi { PPC_INS_BLA, PPC_BC_NS, "bnsla" },
1612*9a0e4156SSadaf Ebrahimi
1613*9a0e4156SSadaf Ebrahimi { PPC_INS_BLR, PPC_BC_LT, "bltlr" },
1614*9a0e4156SSadaf Ebrahimi { PPC_INS_BLR, PPC_BC_LE, "blelr" },
1615*9a0e4156SSadaf Ebrahimi { PPC_INS_BLR, PPC_BC_EQ, "beqlr" },
1616*9a0e4156SSadaf Ebrahimi { PPC_INS_BLR, PPC_BC_GE, "bgelr" },
1617*9a0e4156SSadaf Ebrahimi { PPC_INS_BLR, PPC_BC_GT, "bgtlr" },
1618*9a0e4156SSadaf Ebrahimi { PPC_INS_BLR, PPC_BC_NE, "bnelr" },
1619*9a0e4156SSadaf Ebrahimi { PPC_INS_BLR, PPC_BC_UN, "bunlr" },
1620*9a0e4156SSadaf Ebrahimi { PPC_INS_BLR, PPC_BC_NU, "bnulr" },
1621*9a0e4156SSadaf Ebrahimi { PPC_INS_BLR, PPC_BC_SO, "bsolr" },
1622*9a0e4156SSadaf Ebrahimi { PPC_INS_BLR, PPC_BC_NS, "bnslr" },
1623*9a0e4156SSadaf Ebrahimi
1624*9a0e4156SSadaf Ebrahimi { PPC_INS_BLRL, PPC_BC_LT, "bltlrl" },
1625*9a0e4156SSadaf Ebrahimi { PPC_INS_BLRL, PPC_BC_LE, "blelrl" },
1626*9a0e4156SSadaf Ebrahimi { PPC_INS_BLRL, PPC_BC_EQ, "beqlrl" },
1627*9a0e4156SSadaf Ebrahimi { PPC_INS_BLRL, PPC_BC_GE, "bgelrl" },
1628*9a0e4156SSadaf Ebrahimi { PPC_INS_BLRL, PPC_BC_GT, "bgtlrl" },
1629*9a0e4156SSadaf Ebrahimi { PPC_INS_BLRL, PPC_BC_NE, "bnelrl" },
1630*9a0e4156SSadaf Ebrahimi { PPC_INS_BLRL, PPC_BC_UN, "bunlrl" },
1631*9a0e4156SSadaf Ebrahimi { PPC_INS_BLRL, PPC_BC_NU, "bnulrl" },
1632*9a0e4156SSadaf Ebrahimi { PPC_INS_BLRL, PPC_BC_SO, "bsolrl" },
1633*9a0e4156SSadaf Ebrahimi { PPC_INS_BLRL, PPC_BC_NS, "bnslrl" },
1634*9a0e4156SSadaf Ebrahimi };
1635*9a0e4156SSadaf Ebrahimi
1636*9a0e4156SSadaf Ebrahimi // given alias mnemonic, return instruction ID & CC
PPC_alias_insn(const char * name,struct ppc_alias * alias)1637*9a0e4156SSadaf Ebrahimi bool PPC_alias_insn(const char *name, struct ppc_alias *alias)
1638*9a0e4156SSadaf Ebrahimi {
1639*9a0e4156SSadaf Ebrahimi size_t i;
1640*9a0e4156SSadaf Ebrahimi #ifndef CAPSTONE_DIET
1641*9a0e4156SSadaf Ebrahimi int x;
1642*9a0e4156SSadaf Ebrahimi #endif
1643*9a0e4156SSadaf Ebrahimi
1644*9a0e4156SSadaf Ebrahimi for(i = 0; i < ARR_SIZE(alias_insn_name_maps); i++) {
1645*9a0e4156SSadaf Ebrahimi if (!strcmp(name, alias_insn_name_maps[i].mnem)) {
1646*9a0e4156SSadaf Ebrahimi alias->id = alias_insn_name_maps[i].id;
1647*9a0e4156SSadaf Ebrahimi alias->cc = alias_insn_name_maps[i].cc;
1648*9a0e4156SSadaf Ebrahimi return true;
1649*9a0e4156SSadaf Ebrahimi }
1650*9a0e4156SSadaf Ebrahimi }
1651*9a0e4156SSadaf Ebrahimi
1652*9a0e4156SSadaf Ebrahimi #ifndef CAPSTONE_DIET
1653*9a0e4156SSadaf Ebrahimi // not really an alias insn
1654*9a0e4156SSadaf Ebrahimi x = name2id(&insn_name_maps[1], ARR_SIZE(insn_name_maps) - 1, name);
1655*9a0e4156SSadaf Ebrahimi if (x != -1) {
1656*9a0e4156SSadaf Ebrahimi alias->id = insn_name_maps[x].id;
1657*9a0e4156SSadaf Ebrahimi alias->cc = PPC_BC_INVALID;
1658*9a0e4156SSadaf Ebrahimi return true;
1659*9a0e4156SSadaf Ebrahimi }
1660*9a0e4156SSadaf Ebrahimi #endif
1661*9a0e4156SSadaf Ebrahimi
1662*9a0e4156SSadaf Ebrahimi // not found
1663*9a0e4156SSadaf Ebrahimi return false;
1664*9a0e4156SSadaf Ebrahimi }
1665*9a0e4156SSadaf Ebrahimi
1666*9a0e4156SSadaf Ebrahimi // list all relative branch instructions
1667*9a0e4156SSadaf Ebrahimi static const unsigned int insn_abs[] = {
1668*9a0e4156SSadaf Ebrahimi PPC_BA,
1669*9a0e4156SSadaf Ebrahimi PPC_BCCA,
1670*9a0e4156SSadaf Ebrahimi PPC_BCCLA,
1671*9a0e4156SSadaf Ebrahimi PPC_BDNZA,
1672*9a0e4156SSadaf Ebrahimi PPC_BDNZAm,
1673*9a0e4156SSadaf Ebrahimi PPC_BDNZAp,
1674*9a0e4156SSadaf Ebrahimi PPC_BDNZLA,
1675*9a0e4156SSadaf Ebrahimi PPC_BDNZLAm,
1676*9a0e4156SSadaf Ebrahimi PPC_BDNZLAp,
1677*9a0e4156SSadaf Ebrahimi PPC_BDZA,
1678*9a0e4156SSadaf Ebrahimi PPC_BDZAm,
1679*9a0e4156SSadaf Ebrahimi PPC_BDZAp,
1680*9a0e4156SSadaf Ebrahimi PPC_BDZLAm,
1681*9a0e4156SSadaf Ebrahimi PPC_BDZLAp,
1682*9a0e4156SSadaf Ebrahimi PPC_BLA,
1683*9a0e4156SSadaf Ebrahimi PPC_gBCA,
1684*9a0e4156SSadaf Ebrahimi PPC_gBCLA,
1685*9a0e4156SSadaf Ebrahimi 0
1686*9a0e4156SSadaf Ebrahimi };
1687*9a0e4156SSadaf Ebrahimi
1688*9a0e4156SSadaf Ebrahimi // check if this insn is relative branch
PPC_abs_branch(cs_struct * h,unsigned int id)1689*9a0e4156SSadaf Ebrahimi bool PPC_abs_branch(cs_struct *h, unsigned int id)
1690*9a0e4156SSadaf Ebrahimi {
1691*9a0e4156SSadaf Ebrahimi int i;
1692*9a0e4156SSadaf Ebrahimi
1693*9a0e4156SSadaf Ebrahimi for (i = 0; insn_abs[i]; i++) {
1694*9a0e4156SSadaf Ebrahimi if (id == insn_abs[i]) {
1695*9a0e4156SSadaf Ebrahimi return true;
1696*9a0e4156SSadaf Ebrahimi }
1697*9a0e4156SSadaf Ebrahimi }
1698*9a0e4156SSadaf Ebrahimi
1699*9a0e4156SSadaf Ebrahimi // not found
1700*9a0e4156SSadaf Ebrahimi return false;
1701*9a0e4156SSadaf Ebrahimi }
1702*9a0e4156SSadaf Ebrahimi
1703*9a0e4156SSadaf Ebrahimi #endif
1704