10/16 Revision of instructions in Chapter 7
[dyninst.git] / instructionAPI / src / power_opcode_tables.C
1 /*
2  * See the dyninst/COPYRIGHT file for copyright information.
3  * 
4  * We provide the Paradyn Tools (below described as "Paradyn")
5  * on an AS IS basis, and do not warrant its validity or performance.
6  * We reserve the right to update, modify, or discontinue this
7  * software at any time.  We shall have no obligation to supply such
8  * updates or modifications or any other form of support to you.
9  * 
10  * By your use of Paradyn, you understand and agree that we (or any
11  * other person or entity with proprietary rights in Paradyn) are
12  * under no obligation to provide either maintenance services,
13  * update services, notices of latent defects, or correction of
14  * defects for Paradyn.
15  * 
16  * This library is free software; you can redistribute it and/or
17  * modify it under the terms of the GNU Lesser General Public
18  * License as published by the Free Software Foundation; either
19  * version 2.1 of the License, or (at your option) any later version.
20  * 
21  * This library is distributed in the hope that it will be useful,
22  * but WITHOUT ANY WARRANTY; without even the implied warranty of
23  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
24  * Lesser General Public License for more details.
25  * 
26  * You should have received a copy of the GNU Lesser General Public
27  * License along with this library; if not, write to the Free Software
28  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
29  */
30 bool power_entry::built_tables = false;
31
32 std::vector<power_entry> power_entry::main_opcode_table;
33 power_table power_entry::extended_op_0;
34 power_table power_entry::extended_op_4;
35 power_table power_entry::extended_op_19;
36 power_table power_entry::extended_op_30;
37 power_table power_entry::extended_op_31;
38 power_table power_entry::extended_op_58;
39 power_table power_entry::extended_op_59;
40 power_table power_entry::extended_op_63;
41
42 void power_entry::buildTables()
43 {
44     if(built_tables) return;
45     main_opcode_table.push_back(power_entry(power_op_extended, "extended", fn(extended_op_0), operandSpec()));
46     main_opcode_table.push_back(power_entry(power_op_INVALID, "INVALID", NULL, operandSpec()));
47     main_opcode_table.push_back(power_entry(power_op_tdi, "tdi", NULL, list_of(fn(TO))(fn(RA))(fn(SI))));
48     main_opcode_table.push_back(power_entry(power_op_twi, "twi", NULL, list_of(fn(TO))(fn(RA))(fn(SI))));
49     main_opcode_table.push_back(power_entry(power_op_INVALID, "INVALID", NULL, operandSpec()));
50     main_opcode_table.push_back(power_entry(power_op_INVALID, "INVALID", NULL, operandSpec()));
51     main_opcode_table.push_back(power_entry(power_op_INVALID, "INVALID", NULL, operandSpec()));
52     main_opcode_table.push_back(power_entry(power_op_mulli, "mulli", NULL, list_of(fn(RT))(fn(RA))(fn(SI))));
53     main_opcode_table.push_back(power_entry(power_op_subfic, "subfic", NULL, list_of(fn(RT))(fn(RA))(fn(SI))));
54     main_opcode_table.push_back(power_entry(power_op_dozi, "dozi", NULL, list_of(fn(RT))(fn(RA))(fn(SI))));
55     main_opcode_table.push_back(power_entry(power_op_cmpli, "cmpli", NULL, list_of(fn(BF))(fn(L))(fn(RA))(fn(UI))));
56     main_opcode_table.push_back(power_entry(power_op_cmpi, "cmpi", NULL, list_of(fn(BF))(fn(L))(fn(RA))(fn(SI))));
57     main_opcode_table.push_back(power_entry(power_op_addic, "addic", NULL, list_of(fn(RT))(fn(RA))(fn(SI))));
58     main_opcode_table.push_back(power_entry(power_op_addic_rc, "addic.", NULL, list_of(fn(RT))(fn(RA))(fn(SI))));
59     main_opcode_table.push_back(power_entry(power_op_addi, "addi", NULL, list_of(fn(RT))(fn(RA))(fn(SI))));
60     main_opcode_table.push_back(power_entry(power_op_addis, "addis", NULL, list_of(fn(RT))(fn(RA))(fn(SI))));
61     main_opcode_table.push_back(power_entry(power_op_bc, "bc", NULL, list_of(fn(BO))(fn(BI))(fn(BD))(fn(AA))(fn(LK))));
62     main_opcode_table.push_back(power_entry(power_op_svcs, "sc", NULL, list_of(fn(syscall))));
63     main_opcode_table.push_back(power_entry(power_op_b, "b", NULL, list_of(fn(LL))(fn(AA))(fn(LK))));
64     main_opcode_table.push_back(power_entry(power_op_extended, "extended", fn(extended_op_19), operandSpec()));
65     main_opcode_table.push_back(power_entry(power_op_rlwimi, "rlwimi", NULL,
66                                 list_of(fn(RA))(fn(RS))(fn(SH))(fn(ME))(fn(MB))(fn(Rc))));
67     main_opcode_table.push_back(power_entry(power_op_rlwinm, "rlwinm", NULL,
68                                 list_of(fn(RA))(fn(RS))(fn(SH))(fn(MB))(fn(ME))(fn(Rc))));
69     main_opcode_table.push_back(power_entry(power_op_rlmi, "rlmi", NULL,
70                                 list_of(fn(RA))(fn(RS))(fn(RB))(fn(MB))(fn(ME))(fn(Rc))));
71     main_opcode_table.push_back(power_entry(power_op_rlwnm, "rlwnm", NULL,
72                                 list_of(fn(RA))(fn(RS))(fn(RB))(fn(MB))(fn(ME))(fn(Rc))));
73     main_opcode_table.push_back(power_entry(power_op_ori, "ori", NULL, list_of(fn(RA))(fn(RS))(fn(UI))));
74     main_opcode_table.push_back(power_entry(power_op_oris, "oris", NULL, list_of(fn(RA))(fn(RS))(fn(UI))));
75     main_opcode_table.push_back(power_entry(power_op_xori, "xori", NULL, list_of(fn(RA))(fn(RS))(fn(UI))));
76     main_opcode_table.push_back(power_entry(power_op_xoris, "xoris", NULL, list_of(fn(RA))(fn(RS))(fn(UI))));
77     main_opcode_table.push_back(power_entry(power_op_andi_rc, "andi.", NULL, list_of(fn(RA))(fn(RS))(fn(UI))));
78     main_opcode_table.push_back(power_entry(power_op_andis_rc, "andis.", NULL, list_of(fn(RA))(fn(RS))(fn(UI))));
79     main_opcode_table.push_back(power_entry(power_op_extended, "extended", fn(extended_op_30), operandSpec()));
80     main_opcode_table.push_back(power_entry(power_op_extended, "extended", fn(extended_op_31), operandSpec()));
81     main_opcode_table.push_back(power_entry(power_op_lwz, "lwz", NULL, list_of(fn(RT))(fn(L<u32>))));
82     main_opcode_table.push_back(power_entry(power_op_lwzu, "lwzu", NULL, list_of(fn(RT))(fn(LU<u32>))));
83     main_opcode_table.push_back(power_entry(power_op_lbz, "lbz", NULL, list_of(fn(RT))(fn(L<u8>))));
84     main_opcode_table.push_back(power_entry(power_op_lbzu, "lbzu", NULL, list_of(fn(RT))(fn(LU<u8>))));
85     main_opcode_table.push_back(power_entry(power_op_stw, "stw", NULL, list_of(fn(RS))(fn(ST<u32>))));
86     main_opcode_table.push_back(power_entry(power_op_stwu, "stwu", NULL, list_of(fn(RS))(fn(STU<u32>))));
87     main_opcode_table.push_back(power_entry(power_op_stb, "stb", NULL, list_of(fn(RS))(fn(ST<u8>))));
88     main_opcode_table.push_back(power_entry(power_op_stbu, "stbu", NULL, list_of(fn(RS))(fn(STU<u8>))));
89     main_opcode_table.push_back(power_entry(power_op_lhz, "lhz", NULL, list_of(fn(RT))(fn(L<u16>))));
90     main_opcode_table.push_back(power_entry(power_op_lhzu, "lhzu", NULL, list_of(fn(RT))(fn(LU<u16>))));
91     main_opcode_table.push_back(power_entry(power_op_lha, "lha", NULL, list_of(fn(RT))(fn(L<u16>))));
92     main_opcode_table.push_back(power_entry(power_op_lhau, "lhau", NULL, list_of(fn(RT))(fn(LU<u16>))));
93     main_opcode_table.push_back(power_entry(power_op_sth, "sth", NULL, list_of(fn(RS))(fn(ST<u16>))));
94     main_opcode_table.push_back(power_entry(power_op_sthu, "sthu", NULL, list_of(fn(RS))(fn(STU<u16>))));
95     main_opcode_table.push_back(power_entry(power_op_lmw, "lmw", NULL, list_of(fn(RT))(fn(L<u32>))));
96     main_opcode_table.push_back(power_entry(power_op_stmw, "stmw", NULL, list_of(fn(RT))(fn(ST<u32>))));
97     main_opcode_table.push_back(power_entry(power_op_lfs, "lfs", NULL, list_of(fn(FRT))(fn(L<sp_float>))));
98     main_opcode_table.push_back(power_entry(power_op_lfsu, "lfsu", NULL, list_of(fn(FRT))(fn(LU<sp_float>))));
99     main_opcode_table.push_back(power_entry(power_op_lfd, "lfd", NULL, list_of(fn(FRT))(fn(L<dp_float>))));
100     main_opcode_table.push_back(power_entry(power_op_lfdu, "lfdu", NULL, list_of(fn(FRT))(fn(LU<dp_float>))));
101     main_opcode_table.push_back(power_entry(power_op_stfs, "stfs", NULL, list_of(fn(FRS))(fn(ST<sp_float>))));
102     main_opcode_table.push_back(power_entry(power_op_stfsu, "stfsu", NULL, list_of(fn(FRS))(fn(STU<sp_float>))));
103     main_opcode_table.push_back(power_entry(power_op_stfd, "stfd", NULL, list_of(fn(FRS))(fn(ST<dp_float>))));
104     main_opcode_table.push_back(power_entry(power_op_stfdu, "stfdu", NULL, list_of(fn(FRS))(fn(STU<dp_float>))));
105     main_opcode_table.push_back(power_entry(power_op_lfq, "lfq", NULL, list_of(fn(FRT2))(fn(L<dbl128>))));
106         //opcode57: revised, previous:lfqu
107                 //main_opcode_table.push_back(power_entry(power_op_lfqu, "lfqu", NULL, list_of(fn(FRT2))(fn(LU<dbl128>))));i
108                 //new extended opcode 57        
109                 main_opcode_table.push_back(power_entry(power_op_extended, "extended", fn(extended_op_57), operandSpec()));
110                 
111                 main_opcode_table.push_back(power_entry(power_op_extended, "extended", fn(extended_op_58), operandSpec()));
112     main_opcode_table.push_back(power_entry(power_op_extended, "extended", fn(extended_op_59), operandSpec()));
113     //opcode60 revised, previous:stfq
114     //new extended opcode 60
115                 main_opcode_table.push_back(power_entry(power_op_extended, "extended", fn(extended_op_60), operandSpec()));
116
117     //opcode61 revised, previous:stfqu
118                 //main_opcode_table.push_back(power_entry(power_op_stfqu, "stfqu", NULL, list_of(fn(FRS2))(fn(STU<dbl128>))));
119     //new extended opcode 61 
120     main_opcode_table.push_back(power_entry(power_op_extended, "extended", fn(extended_op_61), operandSpec()));
121                 
122                 main_opcode_table.push_back(power_entry(power_op_stdu, "stdu", NULL, list_of(fn(RS))(fn(STU<u64>))));
123     main_opcode_table.push_back(power_entry(power_op_extended, "extended", fn(extended_op_63), operandSpec()));
124
125     extended_op_0[1] = power_entry(power_op_qvfxxmadds, "qvfxxmadds", NULL,
126                                        list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QFRCP)));
127     extended_op_0[3] = power_entry(power_op_qvfxxcpnmadds, "qvfxxcpnmadds", NULL,
128                                        list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QFRCP)));
129     extended_op_0[5] = power_entry(power_op_fpsel, "fpsel", NULL,
130         list_of(fn(setFPMode))(fn(FRTP))(fn(FRAP))(fn(FRBP))(fn(FRCP)));
131     extended_op_0[8] = power_entry(power_op_fpmul, "fpmul", NULL, list_of(fn(setFPMode))(fn(FRTP))(fn(FRAP))(fn(FRCP)));
132        extended_op_0[10] = power_entry(power_op_fxpmul, "fxpmul", NULL, list_of(fn(setFPMode))(fn(FRTP))(fn(FRA))(fn(FRCP)));
133        extended_op_0[12] = power_entry(power_op_fpadd, "fpadd", NULL, list_of(fn(setFPMode))(fn(FRTP))(fn(FRAP))(fn(FRBP)));
134        extended_op_0[13] = power_entry(power_op_fpsub, "fpsub", NULL, list_of(fn(setFPMode))(fn(FRTP))(fn(FRAP))(fn(FRBP)));
135        extended_op_0[14] = power_entry(power_op_fpre, "fpre", NULL, list_of(fn(setFPMode))(fn(FRTP))(fn(FRBP)));
136        extended_op_0[15] = power_entry(power_op_fprsqrte, "fprsqrte", NULL, list_of(fn(setFPMode))(fn(FRTP))(fn(FRBP)));
137        extended_op_0[16] = power_entry(power_op_fpmadd, "fpmadd", NULL,
138 list_of(fn(setFPMode))(fn(FRTP))(fn(FRAP))(fn(FRBP))(fn(FRCP)));
139        extended_op_0[17] = power_entry(power_op_fxmadd, "fxmadd", NULL,
140 list_of(fn(setFPMode))(fn(FRTP))(fn(FRAP))(fn(FRBP))(fn(FRCP)));
141        extended_op_0[18] = power_entry(power_op_fxcpmadd, "fxcpmadd", NULL,
142 list_of(fn(setFPMode))(fn(FRTP))(fn(FRA))(fn(FRBP))(fn(FRCP)));
143        extended_op_0[19] = power_entry(power_op_fxcsmadd, "fxcsmadd", NULL,
144 list_of(fn(setFPMode))(fn(FRTP))(fn(FRAS))(fn(FRBP))(fn(FRCP)));
145 #ifdef os_bgq
146        extended_op_0[9] = power_entry(power_op_qvfxmadds, "qvfxmadds", NULL,
147                                        list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QFRCP)));
148        extended_op_0[11] = power_entry(power_op_qvfxxnpmadds, "qvfxxnpmadds", NULL,
149                                        list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QFRCP)));
150        extended_op_0[17] = power_entry(power_op_qvfxmuls, "qvfxmuls", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QFRCP)));
151        extended_op_0[20] = power_entry(power_op_qvfsubs, "qvfsubs", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB)));
152        extended_op_0[21] = power_entry(power_op_qvfadds, "qvfadds", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB)));
153        extended_op_0[24] = power_entry(power_op_qvfres, "qvfres", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
154        extended_op_0[25] = power_entry(power_op_qvfmuls, "qvfmuls", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QFRCP)));
155        extended_op_0[26] = power_entry(power_op_qvfrsqrtes, "qvfrsqrtes", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
156        extended_op_0[28] = power_entry(power_op_qvfmsubs, "qvfmsubs", NULL,
157           list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QFRCP)));
158        extended_op_0[29] = power_entry(power_op_qvfmadds, "qvfmadds", NULL,
159           list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QFRCP)));
160        extended_op_0[30] = power_entry(power_op_qvfnmsubs, "qvfnmsubs", NULL,
161           list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QFRCP)));
162        extended_op_0[31] = power_entry(power_op_qvfnmadds, "qvfnmadds", NULL,
163           list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QFRCP)));
164 #else
165        extended_op_0[9] = power_entry(power_op_fxmul, "fxmul", NULL, list_of(fn(setFPMode))(fn(FRTP))(fn(FRAP))(fn(FRCP)));
166        extended_op_0[11] = power_entry(power_op_fxsmul, "fxsmul", NULL, list_of(fn(setFPMode))(fn(FRTP))(fn(FRAS))(fn(FRCP)));
167        extended_op_0[20] = power_entry(power_op_fpnmadd, "fpnmadd", NULL,
168 list_of(fn(setFPMode))(fn(FRTP))(fn(FRAP))(fn(FRBP))(fn(FRCP)));
169        extended_op_0[21] = power_entry(power_op_fxnmadd, "fxnmadd", NULL,
170 list_of(fn(setFPMode))(fn(FRTP))(fn(FRAP))(fn(FRBP))(fn(FRCP)));
171        extended_op_0[24] = power_entry(power_op_fpmsub, "fpmsub", NULL,
172 list_of(fn(setFPMode))(fn(FRTP))(fn(FRAP))(fn(FRBP))(fn(FRCP)));
173        extended_op_0[25] = power_entry(power_op_fxmsub, "fxmsub", NULL,
174 list_of(fn(setFPMode))(fn(FRTP))(fn(FRAP))(fn(FRBP))(fn(FRCP)));
175        extended_op_0[26] = power_entry(power_op_fxcpmsub, "fxcpmsub", NULL,
176 list_of(fn(setFPMode))(fn(FRTP))(fn(FRA))(fn(FRBP))(fn(FRCP)));
177        extended_op_0[28] = power_entry(power_op_fpnmsub, "fpnmsub", NULL,
178 list_of(fn(setFPMode))(fn(FRTP))(fn(FRAP))(fn(FRBP))(fn(FRCP)));
179        extended_op_0[29] = power_entry(power_op_fxnmsub, "fxnmsub", NULL,
180 list_of(fn(setFPMode))(fn(FRTP))(fn(FRAP))(fn(FRBP))(fn(FRCP)));
181        extended_op_0[30] = power_entry(power_op_fxcpnmsub, "fxcpnmsub", NULL,
182 list_of(fn(setFPMode))(fn(FRTP))(fn(FRA))(fn(FRBP))(fn(FRCP)));
183        extended_op_0[31] = power_entry(power_op_fxcsnmsub, "fxcsnmsub", NULL,
184 list_of(fn(setFPMode))(fn(FRTP))(fn(FRAS))(fn(FRBP))(fn(FRCP)));
185 #endif
186        extended_op_0[22] = power_entry(power_op_fxcpnmadd, "fxcpnmadd", NULL,
187 list_of(fn(setFPMode))(fn(FRTP))(fn(FRA))(fn(FRBP))(fn(FRCP)));
188        extended_op_0[23] = power_entry(power_op_fxcsnmadd, "fxcsnmadd", NULL,
189 list_of(fn(setFPMode))(fn(FRTP))(fn(FRAS))(fn(FRBP))(fn(FRCP)));
190        extended_op_0[27] = power_entry(power_op_fxcsmsub, "fxcsmsub", NULL,
191 list_of(fn(setFPMode))(fn(FRTP))(fn(FRAS))(fn(FRBP))(fn(FRCP)));
192        extended_op_0[32] = power_entry(power_op_fpmr, "fpmr", NULL, list_of(fn(setFPMode))(fn(FRTP))(fn(FRBP)));
193        extended_op_0[96] = power_entry(power_op_fpabs, "fpabs", NULL, list_of(fn(setFPMode))(fn(FRTP))(fn(FRBP)));
194        extended_op_0[160] = power_entry(power_op_fpneg, "fpneg", NULL, list_of(fn(setFPMode))(fn(FRTP))(fn(FRBP)));
195        extended_op_0[192] = power_entry(power_op_fprsp, "fprsp", NULL, list_of(fn(setFPMode))(fn(FRTP))(fn(FRBP)));
196        extended_op_0[224] = power_entry(power_op_fpnabs, "fpnabs", NULL, list_of(fn(setFPMode))(fn(FRTP))(fn(FRBP)));
197        extended_op_0[288] = power_entry(power_op_fsmr, "fsmr", NULL, list_of(fn(setFPMode))(fn(FRTS))(fn(FRBS)));
198        extended_op_0[320] = power_entry(power_op_fscmp, "fscmp", NULL, list_of(fn(setFPMode))(fn(BF))(fn(FRAS))(fn(FRBS)));
199        extended_op_0[352] = power_entry(power_op_fsabs, "fsabs", NULL, list_of(fn(setFPMode))(fn(FRTS))(fn(FRBS)));
200        extended_op_0[416] = power_entry(power_op_fsneg, "fsneg", NULL, list_of(fn(setFPMode))(fn(FRTS))(fn(FRBS)));
201        extended_op_0[480] = power_entry(power_op_fsnabs, "fsnabs", NULL, list_of(fn(setFPMode))(fn(FRTS))(fn(FRBS)));
202        extended_op_0[544] = power_entry(power_op_fxmr, "fxmr", NULL, list_of(fn(setFPMode))(fn(FRTP))(fn(FRBP)));
203        extended_op_0[576] = power_entry(power_op_fpctiw, "fpctiw", NULL, list_of(fn(setFPMode))(fn(FRTP))(fn(FRBP)));
204        extended_op_0[704] = power_entry(power_op_fpctiwz, "fpctiwz", NULL, list_of(fn(setFPMode))(fn(FRTP))(fn(FRBP)));
205        extended_op_0[800] = power_entry(power_op_fsmfp, "fpmr", NULL, list_of(fn(setFPMode))(fn(FRTS))(fn(FRB)));
206        extended_op_0[846] = power_entry(power_op_qvfcfids, "qvfcfids", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
207        extended_op_0[928] = power_entry(power_op_fsmtp, "fpmr", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRBS)));
208        extended_op_0[974] = power_entry(power_op_qvfcfidus, "qvfcfidus", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
209        extended_op_4[0] = power_entry(power_op_qvfcmpeq, "qvfcmpeq", NULL,
210                                        list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB)));
211        extended_op_4[1]   = power_entry(power_op_qvfxxmadd, "qvfxxmadd", NULL,
212                                        list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QFRCP)));
213        extended_op_4[3] = power_entry(power_op_qvfxxcpnmadd, "qvfxxcpnmadd", NULL,
214                                        list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QFRCP)));
215        extended_op_4[4] = power_entry(power_op_qvflogical, "qvflogical", NULL,
216                                        list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QTT)));
217        extended_op_4[5] = power_entry(power_op_qvfaligni, "qvfaligni", NULL,
218                                        list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QVD)));
219        extended_op_4[6] = power_entry(power_op_qvfperm, "qvfperm", NULL,
220                                        list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QFRCP)));
221        extended_op_4[8] = power_entry(power_op_qvfcpsgn, "qvfcpsgn", NULL,
222                                        list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB)));
223        extended_op_4[9] = power_entry(power_op_qvfxmadd, "qvfxmadd", NULL,
224                                        list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QFRCP)));
225        extended_op_4[11] = power_entry(power_op_qvfxxnpmadd, "qvfxxnpmadd", NULL,
226                                        list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QFRCP)));
227        extended_op_4[12] = power_entry(power_op_qvfrsp, "qvfrsp", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
228        extended_op_4[14] = power_entry(power_op_qvfctiw, "qvfctiw", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
229        extended_op_4[15] = power_entry(power_op_qvfctiwz, "qvfctiwz", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
230        extended_op_4[17] = power_entry(power_op_qvfxmul, "qvfxmul", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QFRCP)));
231        extended_op_4[20] = power_entry(power_op_qvfsub, "qvfsub", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB)));
232        extended_op_4[21] = power_entry(power_op_qvfadd, "qvfadd", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB)));
233        extended_op_4[23] = power_entry(power_op_qvfsel, "qvfsel", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QFRCP)));
234 #ifdef os_bgq
235   extended_op_4[24] = power_entry(power_op_qvfre, "qvfre", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
236   extended_op_4[25] = power_entry(power_op_qvfmul, "qvfmul", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QFRCP)));
237   extended_op_4[26] = power_entry(power_op_qvfrsqrte, "qvfrsqrte", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
238   extended_op_4[28] = power_entry(power_op_qvfmsub, "qvfmsub", NULL,
239     list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QFRCP)));
240   extended_op_4[29] = power_entry(power_op_qvfmadd, "qvfmadd", NULL,
241     list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QFRCP)));
242   extended_op_4[30] = power_entry(power_op_qvfnmsub, "qvfnmsub", NULL,
243     list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QFRCP)));
244   extended_op_4[31] = power_entry(power_op_qvfnmadd, "qvfnmadd", NULL,
245     list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB))(fn(QFRCP)));
246 #else
247    extended_op_4[24] = power_entry(power_op_fxcpnpma, "fxcpnpma", NULL,
248      list_of(fn(setFPMode))(fn(FRTP))(fn(FRA))(fn(FRBP))(fn(FRCP)));
249    extended_op_4[25] = power_entry(power_op_fxcsnpma, "fxcsnpma", NULL,
250      list_of(fn(setFPMode))(fn(FRTP))(fn(FRAS))(fn(FRBP))(fn(FRCP)));
251    extended_op_4[26] = power_entry(power_op_fxcpnsma, "fxcpnsma", NULL,
252      list_of(fn(setFPMode))(fn(FRTP))(fn(FRA))(fn(FRBP))(fn(FRCP)));
253    extended_op_4[28] = power_entry(power_op_fxcxnpma, "fxcxnpma", NULL,
254      list_of(fn(setFPMode))(fn(FRTP))(fn(FRAS))(fn(FRBP))(fn(FRCP)));
255    extended_op_4[29] = power_entry(power_op_fxcxnsma, "fxcxnsma", NULL,
256      list_of(fn(setFPMode))(fn(FRTP))(fn(FRAS))(fn(FRBP))(fn(FRCP)));
257    extended_op_4[30] = power_entry(power_op_fxcxma, "fxcxma", NULL, list_of(fn(setFPMode))(fn(FRTP))(fn(FRAS))(fn(FRBP))(fn(FRCP)));
258    extended_op_4[31] = power_entry(power_op_fxcxnms, "fxcxnms", NULL,
259      list_of(fn(setFPMode))(fn(FRTP))(fn(FRAS))(fn(FRBP))(fn(FRCP)));
260 #endif
261 extended_op_4[27] = power_entry(power_op_fxcsnsma, "fxcsnsma", NULL,
262 list_of(fn(setFPMode))(fn(FRTP))(fn(FRAS))(fn(FRBP))(fn(FRCP)));
263 extended_op_4[32] = power_entry(power_op_qvfcmpgt, "qvfcmpgt", NULL,
264                                        list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB)));
265 extended_op_4[37] = power_entry(power_op_qvesplati, "qvesplati", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QVD)));
266 extended_op_4[40] = power_entry(power_op_qvfneg, "fpneg", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
267 extended_op_4[64] = power_entry(power_op_qvftstnan, "qvftstnan", NULL,
268                                        list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB)));
269 extended_op_4[72] = power_entry(power_op_qvfmr, "qvfmr", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
270 extended_op_4[96] = power_entry(power_op_qvfcmplt, "qvfcmplt", NULL,
271                                        list_of(fn(setFPMode))(fn(QFRTP))(fn(QFRA))(fn(QRB)));
272 extended_op_4[133] = power_entry(power_op_qvgpci, "qvgpci", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QGPC)));
273 extended_op_4[136] = power_entry(power_op_qvfnabs, "qvfnabs", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
274 extended_op_4[142] = power_entry(power_op_qvfctiwu, "qvfctiwu", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
275 extended_op_4[143] = power_entry(power_op_qvfctiwuz, "qvfctiwuz", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
276 extended_op_4[264] = power_entry(power_op_qvfabs, "fpabs", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
277 extended_op_4[392] = power_entry(power_op_qvfrin, "qvfrin", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
278 extended_op_4[424] = power_entry(power_op_qvfriz, "qvfriz", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
279 extended_op_4[456] = power_entry(power_op_qvfrip, "qvfrip", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
280 extended_op_4[488] = power_entry(power_op_qvfrim, "qvfrim", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
281 extended_op_4[814] = power_entry(power_op_qvfctid, "qvfctid", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
282 extended_op_4[815] = power_entry(power_op_qvfctidz, "qvfctidz", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
283 extended_op_4[846] = power_entry(power_op_qvfcfid, "qvfcfid", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
284 extended_op_4[942] = power_entry(power_op_qvfctidu, "qvfctidu", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
285 extended_op_4[943] = power_entry(power_op_qvfctiduz, "qvfctiduz", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
286 extended_op_4[974] = power_entry(power_op_qvfcfidu, "qvfcfidu", NULL, list_of(fn(setFPMode))(fn(QFRTP))(fn(QRB)));
287 extended_op_19[0] = power_entry(power_op_mcrf, "mcrf", NULL, list_of(fn(BF))(fn(BFA)));
288 extended_op_19[16] = power_entry(power_op_bclr, "bclr", NULL, list_of(fn(BO))(fn(BI))(fn(LK)));
289 extended_op_19[18] = power_entry(power_op_rfid, "rfid", NULL, operandSpec());
290 extended_op_19[33] = power_entry(power_op_crnor, "crnor", NULL, list_of(fn(BT))(fn(BA))(fn(BB)));
291 extended_op_19[50] = power_entry(power_op_rfi, "rfi", NULL, operandSpec());
292 extended_op_19[82] = power_entry(power_op_rfsvc, "rfsvc", NULL, list_of(fn(LK)));
293 extended_op_19[129] = power_entry(power_op_crandc, "crandc", NULL, list_of(fn(BT))(fn(BA))(fn(BB)));
294 extended_op_19[150] = power_entry(power_op_isync, "isync", NULL, operandSpec());
295 extended_op_19[193] = power_entry(power_op_crxor, "crxor", NULL, list_of(fn(BT))(fn(BA))(fn(BB)));
296 extended_op_19[225] = power_entry(power_op_crnand, "crnand", NULL, list_of(fn(BT))(fn(BA))(fn(BB)));
297 extended_op_19[257] = power_entry(power_op_crand, "crand", NULL, list_of(fn(BT))(fn(BA))(fn(BB)));
298 extended_op_19[289] = power_entry(power_op_creqv, "creqv", NULL, list_of(fn(BT))(fn(BA))(fn(BB)));
299 extended_op_19[417] = power_entry(power_op_crorc, "crorc", NULL, list_of(fn(BT))(fn(BA))(fn(BB)));
300 extended_op_19[449] = power_entry(power_op_cror, "cror", NULL, list_of(fn(BT))(fn(BA))(fn(BB)));
301 extended_op_19[528] = power_entry(power_op_bcctr, "bcctr", NULL, list_of(fn(BO))(fn(BI))(fn(LK)));
302
303     power_entry::extended_op_30[1] = power_entry(power_op_rldicr, "rldicr", NULL,
304             list_of(fn(RA))(fn(RS))(fn(SH))(fn(ME))(fn(Rc)));
305 extended_op_30[2] = power_entry(power_op_rldic, "rldic", NULL, list_of(fn(RA))(fn(RS))(fn(SH))(fn(MB))(fn(Rc)));
306 extended_op_30[3] = power_entry(power_op_rldimi, "rldimi", NULL, list_of(fn(RA))(fn(RS))(fn(SH))(fn(MB))(fn(Rc)));
307 extended_op_30[8] = power_entry(power_op_rldcl, "rldcl", NULL, list_of(fn(RA))(fn(RS))(fn(RB))(fn(MB))(fn(Rc)));
308 extended_op_30[9] = power_entry(power_op_rldcr, "rldcr", NULL, list_of(fn(RA))(fn(RS))(fn(RB))(fn(ME))(fn(Rc)));
309 extended_op_30[0] = power_entry(power_op_rldicl, "rldicl", NULL, list_of(fn(RA))(fn(RS))(fn(SH))(fn(MB))(fn(SH))(fn(Rc)));
310
311     power_entry::extended_op_31[0] = power_entry(power_op_cmp, "cmp", NULL, list_of(fn(BF))(fn(L))(fn(RA))(fn(RB)));
312 extended_op_31[4] = power_entry(power_op_tw, "tw", NULL, list_of(fn(TO))(fn(RA))(fn(RB)));
313 extended_op_31[6] = power_entry(power_op_qvlpcrsx, "qvlpcrsx", NULL, list_of(fn(QFRTP))(fn(LX<sp_float>)));
314 extended_op_31[7] = power_entry(power_op_qvlfcsx, "qvlfcsx", NULL, list_of(fn(QFRTP))(fn(LX<sp_float>)));
315 extended_op_31[8] = power_entry(power_op_subfc, "subfc", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(OE))(fn(Rc)));
316 extended_op_31[9] = power_entry(power_op_mulhdu, "mulhdu", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(Rc)));
317 extended_op_31[10] = power_entry(power_op_addc, "addc", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(OE))(fn(Rc)));
318 extended_op_31[11] = power_entry(power_op_mulhwu, "mulhwu", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(Rc)));
319 extended_op_31[12] = power_entry(power_op_lxsiwzx, "lxsiwzx", NULL, list_of(fn(XT))(fn(RA))(fn(RB)));
320 extended_op_31[19] = power_entry(power_op_mfcr, "mfcr", NULL, list_of(fn(RT))(fn(Rc)));
321 extended_op_31[20] = power_entry(power_op_lwarx, "lwarx", NULL, list_of(fn(RT))(fn(LX<u32>)));
322 extended_op_31[21] = power_entry(power_op_ldx, "ldx", NULL, list_of(fn(RT))(fn(LX<u64>)));
323 extended_op_31[23] = power_entry(power_op_lwzx, "lwzx", NULL, list_of(fn(RT))(fn(LX<u32>)));
324 extended_op_31[24] = power_entry(power_op_slw, "slw", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
325 extended_op_31[26] = power_entry(power_op_cntlzw, "cntlzw", NULL, list_of(fn(RS))(fn(RA))(fn(Rc)));
326 extended_op_31[27] = power_entry(power_op_sld, "sld", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
327 extended_op_31[28] = power_entry(power_op_and, "and", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
328 extended_op_31[29] = power_entry(power_op_maskg, "maskg", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
329 extended_op_31[32] = power_entry(power_op_cmpl, "cmpl", NULL, list_of(fn(BF))(fn(L))(fn(RA))(fn(RB)));
330 extended_op_31[39] = power_entry(power_op_qvlfcsux, "qvlfcsux", NULL, list_of(fn(QFRTP))(fn(LUX<sp_float>)));
331 extended_op_31[40] = power_entry(power_op_subf, "subf", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(OE))(fn(Rc)));
332 extended_op_31[53] = power_entry(power_op_ldux, "ldux", NULL, list_of(fn(RT))(fn(LUX<u64>)));
333 extended_op_31[54] = power_entry(power_op_dcbst, "dcbst", NULL, list_of(fn(RA))(fn(RB)));
334 extended_op_31[55] = power_entry(power_op_lwzux, "lwzux", NULL, list_of(fn(RT))(fn(LUX<u32>)));
335 extended_op_31[58] = power_entry(power_op_cntlzd, "cntlzd", NULL, list_of(fn(RS))(fn(RA))(fn(Rc)));
336 extended_op_31[60] = power_entry(power_op_andc, "andc", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
337 extended_op_31[62] = power_entry(power_op_wait, "wait", NULL, list_of(fn(WC)));
338 extended_op_31[68] = power_entry(power_op_td, "td", NULL, list_of(fn(TO))(fn(RA))(fn(RB)));
339 extended_op_31[70] = power_entry(power_op_qvlpcrdx, "qvlpcrdx", NULL, list_of(fn(QFRTP))(fn(LX<dbl128>)));
340 extended_op_31[71] = power_entry(power_op_qvlfcdx, "qvlfcdx", NULL, list_of(fn(QFRTP))(fn(LX<dbl128>)));
341 extended_op_31[73] = power_entry(power_op_mulhd, "mulhd", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(Rc)));
342 extended_op_31[75] = power_entry(power_op_mulhw, "mulhw", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(Rc)));
343 extended_op_31[78] = power_entry(power_op_lxsiwax, "lxsiwax", NULL, list_of(fn(XT))(fn(RA))(fn(RB)));
344 extended_op_31[83] = power_entry(power_op_mfmsr, "mfmsr", NULL, list_of(fn(RT)));
345 extended_op_31[84] = power_entry(power_op_ldarx, "ldarx", NULL, list_of(fn(RT))(fn(LX<u64>)));
346 extended_op_31[86] = power_entry(power_op_dcbf, "dcbf", NULL, list_of(fn(RA))(fn(RB)));
347 extended_op_31[87] = power_entry(power_op_lbzx, "lbzx", NULL, list_of(fn(RT))(fn(LX<u8>)));
348 extended_op_31[103] = power_entry(power_op_qvlfcdux, "qvlfcdux", NULL, list_of(fn(QFRTP))(fn(LUX<dbl128>)));
349 extended_op_31[104] = power_entry(power_op_neg, "neg", NULL, list_of(fn(RT))(fn(RA))(fn(OE))(fn(Rc)));
350 extended_op_31[107] = power_entry(power_op_mul, "mul", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(OE))(fn(Rc)));
351 extended_op_31[118] = power_entry(power_op_clf, "clf", NULL, list_of(fn(RA))(fn(RB))(fn(Rc)));
352 extended_op_31[119] = power_entry(power_op_lbzux, "lbzux", NULL, list_of(fn(RT))(fn(LUX<u8>)));
353 extended_op_31[122] = power_entry(power_op_popcntb, "popcntb", NULL, list_of(fn(RS))(fn(RA)));
354 extended_op_31[124] = power_entry(power_op_nor, "nor", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
355 extended_op_31[133] = power_entry(power_op_qvstfcsxi, "qvstfcsxi", NULL,  list_of(fn(QFRSP))(fn(STX<sp_float>)));
356 extended_op_31[135] = power_entry(power_op_qvstfcsx, "qvstfcsx", NULL,  list_of(fn(QFRSP))(fn(STX<sp_float>)));
357 extended_op_31[136] = power_entry(power_op_subfe, "subfe", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(OE))(fn(Rc)));
358 extended_op_31[138] = power_entry(power_op_adde, "adde", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(OE))(fn(Rc)));
359 extended_op_31[140] = power_entry(power_op_stxsiwx, "stxsiwx", NULL, list_of(fn(XS))(fn(RA))(fn(RB)));
360 extended_op_31[142] = power_entry(power_op_lfssx, "lfssx", NULL, list_of(fn(FRTS))(fn(LX<u32>)));
361 extended_op_31[144] = power_entry(power_op_mtcrf, "mtcrf", NULL, list_of(fn(RS))(fn(FXM))(fn(Rc)));
362 extended_op_31[149] = power_entry(power_op_stdx, "stdx", NULL, list_of(fn(RS))(fn(STX<u64>)));
363 extended_op_31[150] = power_entry(power_op_stwcx_rc, "stwcx.", NULL, list_of(fn(RS))(fn(STX<u32>)));
364 extended_op_31[151] = power_entry(power_op_stwx, "stwx", NULL, list_of(fn(RS))(fn(STX<u32>)));
365 extended_op_31[152] = power_entry(power_op_slq, "slq", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
366 extended_op_31[153] = power_entry(power_op_sle, "sle", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
367 extended_op_31[165] = power_entry(power_op_qvstfcsuxi, "qvstfcsuxi", NULL, list_of(fn(QFRSP))(fn(STUX<sp_float>)));
368 extended_op_31[167] = power_entry(power_op_qvstfcsux, "qvstfcsux", NULL, list_of(fn(QFRSP))(fn(STUX<sp_float>)));
369 extended_op_31[174] = power_entry(power_op_lfssux, "lfssux", NULL, list_of(fn(FRTS))(fn(LUX<u32>)));
370 extended_op_31[181] = power_entry(power_op_stdux, "stdux", NULL, list_of(fn(RS))(fn(STUX<u64>)));
371 extended_op_31[183] = power_entry(power_op_stwux, "stwux", NULL, list_of(fn(RS))(fn(STUX<u32>)));
372 extended_op_31[184] = power_entry(power_op_sliq, "sliq", NULL, list_of(fn(RS))(fn(RA))(fn(SH))(fn(Rc)));
373 extended_op_31[197] = power_entry(power_op_qvstfcdxi, "qvstfcdxi", NULL, list_of(fn(QFRSP))(fn(STX<dbl128>)));
374 extended_op_31[199] = power_entry(power_op_qvstfcdx, "qvstfcdx", NULL, list_of(fn(QFRSP))(fn(STX<dbl128>)));
375 extended_op_31[202] = power_entry(power_op_addze, "addze", NULL, list_of(fn(RT))(fn(RA))(fn(OE))(fn(Rc)));
376 extended_op_31[206] = power_entry(power_op_lfsdx, "lfsdx", NULL, list_of(fn(FRTS))(fn(LX<dbl128>)));
377 extended_op_31[214] = power_entry(power_op_stdcx_rc, "stdcx.", NULL, list_of(fn(RS))(fn(STX<u64>)));
378 extended_op_31[215] = power_entry(power_op_stbx, "stbx", NULL, list_of(fn(RS))(fn(STX<u8>)));
379 extended_op_31[216] = power_entry(power_op_sllq, "sllq", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
380 extended_op_31[217] = power_entry(power_op_sleq, "sleq", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
381 extended_op_31[229] = power_entry(power_op_qvstfcduxi, "qvstfcduxi", NULL, list_of(fn(QFRSP))(fn(STUX<dbl128>)));
382 extended_op_31[231] = power_entry(power_op_qvstfcdux, "qvstfcdux", NULL, list_of(fn(QFRSP))(fn(STUX<dbl128>)));
383 extended_op_31[232] = power_entry(power_op_subfme, "subfme", NULL, list_of(fn(RT))(fn(RA))(fn(OE))(fn(Rc)));
384 extended_op_31[233] = power_entry(power_op_mulld, "mulld", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(OE))(fn(Rc)));
385 extended_op_31[234] = power_entry(power_op_addme, "addme", NULL, list_of(fn(RT))(fn(RA))(fn(OE))(fn(Rc)));
386 extended_op_31[235] = power_entry(power_op_mullw, "mullw", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(OE))(fn(Rc)));
387 extended_op_31[238] = power_entry(power_op_lfsdux, "lfsdux", NULL, list_of(fn(FRTS))(fn(LUX<dbl128>)));
388 extended_op_31[246] = power_entry(power_op_dcbtst, "dcbtst", NULL, list_of(fn(RA))(fn(RB)));
389 extended_op_31[247] = power_entry(power_op_stbux, "stbux", NULL, list_of(fn(RS))(fn(STUX<u8>)));
390 extended_op_31[248] = power_entry(power_op_slliq, "slliq", NULL, list_of(fn(RS))(fn(RA))(fn(SH))(fn(Rc)));
391 extended_op_31[264] = power_entry(power_op_doz, "doz", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(OE))(fn(Rc)));
392 extended_op_31[266] = power_entry(power_op_add, "add", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(OE))(fn(Rc)));
393 extended_op_31[268] = power_entry(power_op_lxvx, "lxvx", NULL, list_of(fn(XT))(fn(RA))(fn(RB)));
394 extended_op_31[269] = power_entry(power_op_lxvl, "lxvl", NULL, list_of(fn(XT))(fn(RA))(fn(RB)));
395 extended_op_31[270] = power_entry(power_op_lfxsx, "lfxsx", NULL, list_of(fn(FRTP))(fn(LX<dp_float>)));
396 extended_op_31[277] = power_entry(power_op_lscbx, "lscbx", NULL, list_of(fn(RT))(fn(LX<u8>))(fn(Rc)));
397 extended_op_31[278] = power_entry(power_op_dcbt, "dcbt", NULL, list_of(fn(RA))(fn(RB)));
398 extended_op_31[279] = power_entry(power_op_lhzx, "lhzx", NULL, list_of(fn(RT))(fn(LX<u16>)));
399 extended_op_31[284] = power_entry(power_op_eqv, "eqv", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
400 extended_op_31[300] = power_entry(power_op_lxvx, "lxvx", NULL, list_of(fn(XT))(fn(RA))(fn(RB)));
401 extended_op_31[301] = power_entry(power_op_lxvll, "lxvll", NULL, list_of(fn(XT))(fn(RA))(fn(RB)));
402 extended_op_31[302] = power_entry(power_op_lfxsux, "lfxsux", NULL, list_of(fn(FRTP))(fn(LUX<dp_float>)));
403 extended_op_31[306] = power_entry(power_op_tlbie, "tlbie", NULL, list_of(fn(RB)));
404 extended_op_31[310] = power_entry(power_op_eciwx, "eciwx", NULL, list_of(fn(RT))(fn(RA))(fn(RB)));
405 extended_op_31[316] = power_entry(power_op_xor, "xor", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
406 extended_op_31[311] = power_entry(power_op_lhzux, "lhzux", NULL, list_of(fn(RT))(fn(LUX<u16>)));
407 extended_op_31[332] = power_entry(power_op_lxvdsx, "lxvdsx", NULL, list_of(fn(XT))(fn(RA))(fn(RB)));
408 extended_op_31[334] = power_entry(power_op_lfxdx, "lfxdx", NULL, list_of(fn(FRTP))(fn(LX<dbl128>)));
409 extended_op_31[339] = power_entry(power_op_mfspr, "mfspr", NULL, list_of(fn(RT))(fn(spr))(fn(Rc)));
410 extended_op_31[341] = power_entry(power_op_lwax, "lwax", NULL, list_of(fn(RT))(fn(LX<u32>)));
411 extended_op_31[343] = power_entry(power_op_lhax, "lhax", NULL, list_of(fn(RT))(fn(LX<u16>)));
412 extended_op_31[360] = power_entry(power_op_abs, "abs", NULL, list_of(fn(RT))(fn(RA))(fn(OE))(fn(Rc)));
413 extended_op_31[363] = power_entry(power_op_divs, "divs", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(Rc)));
414 extended_op_31[364] = power_entry(power_op_lxvwsx, "lxvwsx", NULL, list_of(fn(XT))(fn(RA))(fn(RB)));
415 extended_op_31[366] = power_entry(power_op_lfxdux, "lfxdux", NULL, list_of(fn(FRTP))(fn(LUX<dbl128>)));
416
417 // xop 371 is mftb (Move from time base). It is phased-out and equivalent to mfspr Rx, 268
418 extended_op_31[371] = power_entry(power_op_mfspr, "mfspr", NULL, list_of(fn(RT))(fn(spr))(fn(Rc)));
419 extended_op_31[373] = power_entry(power_op_lwaux, "lwaux", NULL, list_of(fn(RT))(fn(LUX<u32>)));
420 extended_op_31[375] = power_entry(power_op_lhaux, "lhaux", NULL, list_of(fn(RT))(fn(LUX<u16>)));
421 extended_op_31[378] = power_entry(power_op_popcntw, "popcntw", NULL, list_of(fn(RS))(fn(RA)));
422 extended_op_31[396] = power_entry(power_op_stxvx, "stxvx", NULL, list_of(fn(XS))(fn(RA))(fn(RB)));
423 extended_op_31[397] = power_entry(power_op_stxvl, "stxvl", NULL, list_of(fn(XS))(fn(RA))(fn(RB)));
424 extended_op_31[398] = power_entry(power_op_lfpsx, "lfpsx", NULL, list_of(fn(FRTP))(fn(LX<sp_float>)));
425 extended_op_31[407] = power_entry(power_op_sthx, "sthx", NULL, list_of(fn(RS))(fn(STX<u16>)));
426 extended_op_31[412] = power_entry(power_op_orc, "orc", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
427 extended_op_31[413] = power_entry(power_op_sradi, "sradi", NULL, list_of(fn(RS))(fn(RA))(fn(SH))(fn(Rc)));
428 extended_op_31[429] = power_entry(power_op_stxvll, "stxvll", NULL, list_of(fn(XS))(fn(RA))(fn(RB)));
429 extended_op_31[430] = power_entry(power_op_lfpsux, "lfpsux", NULL, list_of(fn(FRTP))(fn(LUX<sp_float>)));
430 extended_op_31[438] = power_entry(power_op_ecowx, "ecowx", NULL, list_of(fn(RS))(fn(RA))(fn(RB)));
431 extended_op_31[439] = power_entry(power_op_sthux, "sthux", NULL, list_of(fn(RS))(fn(STUX<u16>)));
432 extended_op_31[444] = power_entry(power_op_or, "or", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
433 extended_op_31[457] = power_entry(power_op_divdu, "divdu", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(OE))(fn(Rc)));
434 extended_op_31[459] = power_entry(power_op_divwu, "divwu", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(OE))(fn(Rc)));
435 extended_op_31[462] = power_entry(power_op_lfpdx, "lfpdx", NULL, list_of(fn(FRTP))(fn(LX<dbl128>)));
436 extended_op_31[467] = power_entry(power_op_mtspr, "mtspr", NULL, list_of(fn(RS))(fn(spr))(fn(Rc)));
437 extended_op_31[470] = power_entry(power_op_dcbi, "dcbi", NULL, list_of(fn(RA))(fn(RB)));
438 extended_op_31[476] = power_entry(power_op_nand, "nand", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
439 extended_op_31[488] = power_entry(power_op_nabs, "nabs", NULL, list_of(fn(RT))(fn(RA))(fn(OE))(fn(Rc)));
440 extended_op_31[489] = power_entry(power_op_divd, "divd", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(OE))(fn(Rc)));
441 extended_op_31[491] = power_entry(power_op_divw, "divw", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(OE))(fn(Rc)));
442 extended_op_31[494] = power_entry(power_op_lfpdux, "lfpdux", NULL, list_of(fn(FRTP))(fn(LUX<dbl128>)));
443 extended_op_31[502] = power_entry(power_op_cli, "cli", NULL, list_of(fn(RA))(fn(RB))(fn(Rc)));
444 extended_op_31[506] = power_entry(power_op_popcntd, "popcntd", NULL, list_of(fn(RS))(fn(RA)));
445 extended_op_31[512] = power_entry(power_op_mcrxr, "mcrxr", NULL, list_of(fn(BF)));
446 extended_op_31[518] = power_entry(power_op_qvlpclsx, "qvlpclsx", NULL, list_of(fn(QFRTP))(fn(LX<sp_float>)));
447 extended_op_31[519] = power_entry(power_op_qvlfsx, "qvlfsx", NULL,  list_of(fn(QFRTP))(fn(LX<sp_float>)));
448 extended_op_31[524] = power_entry(power_op_lxsspx, "lxsspx", NULL,  list_of(fn(XT))(fn(RA))(fn(RB)));
449 extended_op_31[526] = power_entry(power_op_stfpiwx, "stfpiwx", NULL, list_of(fn(FRSP))(fn(STUX<u64>)));
450 extended_op_31[531] = power_entry(power_op_clcs, "clcs", NULL, list_of(fn(RT))(fn(RA))(fn(Rc)));
451 extended_op_31[533] = power_entry(power_op_lswx, "lswx", NULL, list_of(fn(RT))(fn(LX<u8>)));
452 extended_op_31[534] = power_entry(power_op_lwbrx, "lwbrx", NULL, list_of(fn(RT))(fn(LX<u32>)));
453 extended_op_31[535] = power_entry(power_op_lfsx, "lfsx", NULL, list_of(fn(FRT))(fn(LX<sp_float>)));
454 extended_op_31[536] = power_entry(power_op_srw, "srw", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
455 extended_op_31[537] = power_entry(power_op_rrib, "rrib", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
456 extended_op_31[539] = power_entry(power_op_srd, "srd", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
457 extended_op_31[541] = power_entry(power_op_maskir, "maskir", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
458 extended_op_31[551] = power_entry(power_op_qvlfsux, "qvlfsux", NULL, list_of(fn(QFRTP))(fn(LUX<sp_float>)));
459 extended_op_31[566] = power_entry(power_op_tlbsync, "tlbsync", NULL, operandSpec());
460 extended_op_31[567] = power_entry(power_op_lfsux, "lfsux", NULL, list_of(fn(FRT))(fn(LUX<sp_float>)));
461 extended_op_31[582] = power_entry(power_op_qvlpcldx, "qvlpcldx", NULL, list_of(fn(QFRTP))(fn(LX<dbl128>)));
462 extended_op_31[583] = power_entry(power_op_qvlfdx, "qvlfdx", NULL, list_of(fn(QFRTP))(fn(LX<dbl128>)));
463
464 // fn(STU<u64>) = RA+DS
465 extended_op_31[588] = power_entry(power_op_lxsdx, "lxsdx", NULL, list_of(fn(XT))(fn(RA))(fn(RB)));
466
467 extended_op_31[595] = power_entry(power_op_mfsr, "mfsr", NULL, list_of(fn(RT))(fn(SR)));
468 extended_op_31[597] = power_entry(power_op_lswi, "lswi", NULL, list_of(fn(RT))(fn(L<u8>))(fn(NB)));
469 extended_op_31[598] = power_entry(power_op_sync, "sync", NULL, operandSpec());
470 extended_op_31[599] = power_entry(power_op_lfdx, "lfdx", NULL, list_of(fn(FRT))(fn(LX<dp_float>)));
471 extended_op_31[615] = power_entry(power_op_qvlfdux, "qvlfdux", NULL, list_of(fn(QFRTP))(fn(LUX<dbl128>)));
472 extended_op_31[627] = power_entry(power_op_mfsri, "mfsri", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
473 extended_op_31[630] = power_entry(power_op_dclst, "dclst", NULL, list_of(fn(RA))(fn(RB))(fn(Rc)));
474 extended_op_31[631] = power_entry(power_op_lfdux, "lfdux", NULL, list_of(fn(FRT))(fn(LUX<dp_float>)));
475 extended_op_31[645] = power_entry(power_op_qvstfsxi, "qvstfsxi", NULL, list_of(fn(QFRSP))(fn(STX<sp_float>)));
476 extended_op_31[647] = power_entry(power_op_qvstfsx, "qvstfsx", NULL, list_of(fn(QFRSP))(fn(STX<sp_float>)));
477 extended_op_31[652] = power_entry(power_op_stxsspx, "stxsspx", NULL, list_of(fn(XS))(fn(RA))(fn(RB)));
478 extended_op_31[654] = power_entry(power_op_stfssx, "stfssx", NULL, list_of(fn(FRSS))(fn(STX<u32>)));
479 extended_op_31[659] = power_entry(power_op_mfsrin, "mfsrin", NULL, list_of(fn(RT))(fn(RB)));
480 extended_op_31[661] = power_entry(power_op_stswx, "stswx", NULL, list_of(fn(RS))(fn(STX<u8>)));
481 extended_op_31[662] = power_entry(power_op_stwbrx, "stwbrx", NULL, list_of(fn(RS))(fn(STX<u32>)));
482 extended_op_31[663] = power_entry(power_op_stfsx, "stfsx", NULL, list_of(fn(FRS))(fn(STX<sp_float>)));
483 extended_op_31[664] = power_entry(power_op_srq, "srq", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
484 extended_op_31[665] = power_entry(power_op_sre, "sre", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
485 extended_op_31[679] = power_entry(power_op_qvstfsux, "qvstfsux", NULL, list_of(fn(QFRSP))(fn(STUX<sp_float>)));
486 extended_op_31[686] = power_entry(power_op_stfssux, "stfssux", NULL, list_of(fn(FRSS))(fn(STUX<u32>)));
487 extended_op_31[695] = power_entry(power_op_stfsux, "stfsux", NULL, list_of(fn(FRS))(fn(STUX<sp_float>)));
488 extended_op_31[696] = power_entry(power_op_sriq, "sriq", NULL, list_of(fn(RS))(fn(RA))(fn(SH))(fn(Rc)));
489 extended_op_31[709] = power_entry(power_op_qvstfdxi, "qvstfdxi", NULL, list_of(fn(QFRSP))(fn(STX<dbl128>)));
490 extended_op_31[711] = power_entry(power_op_qvstfdx, "qvstfdx", NULL, list_of(fn(QFRSP))(fn(STX<dbl128>)));
491 extended_op_31[716] = power_entry(power_op_stxsdx, "stxsdx", NULL, list_of(fn(XS))(fn(RA))(fn(RB)));
492 extended_op_31[718] = power_entry(power_op_stfsdx, "stfsdx", NULL, list_of(fn(FRSS))(fn(STX<u32>)));
493 extended_op_31[725] = power_entry(power_op_stswi, "stswi", NULL, list_of(fn(RS))(fn(ST<u8>))(fn(NB)));
494 extended_op_31[727] = power_entry(power_op_stfdx, "stfdx", NULL, list_of(fn(FRS))(fn(STX<dp_float>)));
495 extended_op_31[728] = power_entry(power_op_srlq, "srlq", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
496 extended_op_31[729] = power_entry(power_op_sreq, "sreq", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
497 extended_op_31[741] = power_entry(power_op_qvlstduxi, "qvstfduxi", NULL, list_of(fn(QFRSP))(fn(STUX<dbl128>)));
498 extended_op_31[743] = power_entry(power_op_qvlstdux, "qvstfdux", NULL, list_of(fn(QFRSP))(fn(STUX<dbl128>)));
499 extended_op_31[750] = power_entry(power_op_stfsdux, "stfsdux", NULL, list_of(fn(FRSS))(fn(STUX<u32>)));
500 extended_op_31[759] = power_entry(power_op_stfdux, "stfdux", NULL, list_of(fn(FRS))(fn(STUX<dp_float>)));
501 extended_op_31[760] = power_entry(power_op_srliq, "srliq", NULL, list_of(fn(RS))(fn(RA))(fn(SH))(fn(Rc)));
502 extended_op_31[780] = power_entry(power_op_lxvw4x, "lxvw4x", NULL, list_of(fn(XT))(fn(RA))(fn(RB)));
503 extended_op_31[781] = power_entry(power_op_lxsibzx, "lxsibzx", NULL, list_of(fn(XT))(fn(RA))(fn(RB)));
504 extended_op_31[782] = power_entry(power_op_stfxsx, "stfxsx", NULL, list_of(fn(FRSP))(fn(STX<u64>)));
505 extended_op_31[790] = power_entry(power_op_lhbrx, "lhbrx", NULL, list_of(fn(RT))(fn(LX<u16>)));
506 extended_op_31[791] = power_entry(power_op_lfqx, "lfqx", NULL, list_of(fn(FRT))(fn(LX<dbl128>))(fn(Rc)));
507 extended_op_31[792] = power_entry(power_op_sraw, "sraw", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
508 extended_op_31[794] = power_entry(power_op_srad, "srad", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
509 extended_op_31[812] = power_entry(power_op_lxvh8x, "lxvh8x", NULL, list_of(fn(XT))(fn(RA))(fn(RB)));
510 extended_op_31[813] = power_entry(power_op_lxsihzx, "lxsihzx", NULL, list_of(fn(XT))(fn(RA))(fn(RB)));
511 extended_op_31[813] = power_entry(power_op_lxsihzx, "lxsihzx", NULL, list_of(fn(XT))(fn(RA))(fn(RB)));
512 extended_op_31[814] = power_entry(power_op_stfxsux, "stfxsux", NULL, list_of(fn(FRSP))(fn(STUX<u64>)));
513 extended_op_31[818] = power_entry(power_op_rac, "rac", NULL, list_of(fn(RT))(fn(RA))(fn(RB))(fn(Rc)));
514 extended_op_31[823] = power_entry(power_op_lfqux, "lfqux", NULL, list_of(fn(FRT))(fn(LUX<dbl128>))(fn(Rc)));
515 extended_op_31[824] = power_entry(power_op_srawi, "srawi", NULL, list_of(fn(RS))(fn(RA))(fn(SH))(fn(Rc)));
516 extended_op_31[839] = power_entry(power_op_qvlfiwzx, "qvlfiwzx", NULL, list_of(fn(QFRTP))(fn(LX<u32>)));
517 extended_op_31[844] = power_entry(power_op_lxvd2x, "lxvd2x", NULL, list_of(fn(XT))(fn(RA))(fn(RB)));
518 extended_op_31[846] = power_entry(power_op_stfxdx, "stfxdx", NULL, list_of(fn(FRSP))(fn(STX<dbl128>)));
519 extended_op_31[854] = power_entry(power_op_eieio, "eieio", NULL, operandSpec());
520 extended_op_31[871] = power_entry(power_op_qvlfiwax, "qvlfiwax", NULL, list_of(fn(QFRTP))(fn(LX<u32>)));
521 extended_op_31[876] = power_entry(power_op_lxvb16x, "lxvb16x", NULL, list_of(fn(XT))(fn(RA))(fn(RB)));
522 extended_op_31[878] = power_entry(power_op_stfxdux, "stfxdux", NULL, list_of(fn(FRSP))(fn(STUX<dbl128>)));
523 extended_op_31[908] = power_entry(power_op_stxvw4x, "stxvw4x", NULL, list_of(fn(XS))(fn(RA))(fn(RB)));
524 extended_op_31[909] = power_entry(power_op_stxsibx, "stxsibx", NULL, list_of(fn(XS))(fn(RA))(fn(RB)));
525 extended_op_31[910] = power_entry(power_op_stfpsx, "stfpsx", NULL, list_of(fn(FRSP))(fn(STX<u32>)));
526 extended_op_31[918] = power_entry(power_op_sthbrx, "sthbrx", NULL, list_of(fn(RS))(fn(STX<u16>)));
527 extended_op_31[919] = power_entry(power_op_stfqx, "stfqx", NULL, list_of(fn(FRS))(fn(STX<dbl128>))(fn(Rc)));
528 extended_op_31[920] = power_entry(power_op_sraq, "sraq", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
529 extended_op_31[921] = power_entry(power_op_srea, "srea", NULL, list_of(fn(RS))(fn(RA))(fn(RB))(fn(Rc)));
530 extended_op_31[922] = power_entry(power_op_extsh, "extsh", NULL, list_of(fn(RS))(fn(RA))(fn(OE))(fn(Rc)));
531 extended_op_31[940] = power_entry(power_op_stxvh8x, "stxvh8x", NULL, list_of(fn(XS))(fn(RA))(fn(RB)));
532 extended_op_31[941] = power_entry(power_op_stxsihx, "stxsihx", NULL, list_of(fn(XS))(fn(RA))(fn(RB)));
533 extended_op_31[942] = power_entry(power_op_stfpsux, "stfpsux", NULL, list_of(fn(FRSP))(fn(STUX<u32>)));
534 extended_op_31[951] = power_entry(power_op_stfqux, "stfqux", NULL, list_of(fn(FRS))(fn(STUX<dbl128>))(fn(Rc)));
535 extended_op_31[952] = power_entry(power_op_sraiq, "sraiq", NULL, list_of(fn(RS))(fn(RA))(fn(SH))(fn(Rc)));
536 extended_op_31[954] = power_entry(power_op_extsb, "extsb", NULL, list_of(fn(RS))(fn(RA))(fn(Rc)));
537 extended_op_31[967] = power_entry(power_op_qvstfiwx, "qvstfiwx", NULL, list_of(fn(QFRSP))(fn(STX<u32>)));
538 extended_op_31[972] = power_entry(power_op_stxsibx, "stxvd2x", NULL, list_of(fn(XS))(fn(RA))(fn(RB)));
539 extended_op_31[974] = power_entry(power_op_stfpdx, "stfpdx", NULL, list_of(fn(FRSP))(fn(STX<dbl128>)));
540 extended_op_31[978] = power_entry(power_op_tlbld, "tlbld", NULL, list_of(fn(RB)));
541 extended_op_31[982] = power_entry(power_op_icbi, "icbi", NULL, list_of(fn(RA))(fn(RB)));
542 extended_op_31[983] = power_entry(power_op_stfiwx, "stfiwx", NULL, list_of(fn(FRS))(fn(STX<u32>)));
543 extended_op_31[986] = power_entry(power_op_extsw, "extsw", NULL, list_of(fn(RS))(fn(RA))(fn(Rc)));
544 extended_op_31[1004] = power_entry(power_op_stxvb16x, "stxvb16x", NULL, list_of(fn(XS))(fn(RA))(fn(RB)));
545 extended_op_31[1006] = power_entry(power_op_stfpdux, "stfpdux", NULL, list_of(fn(FRSP))(fn(STUX<dbl128>)));
546 extended_op_31[1010] = power_entry(power_op_tlbli, "tlbli", NULL, list_of(fn(RB)));
547 extended_op_31[1014] = power_entry(power_op_dcbz, "dcbz", NULL, list_of(fn(RA))(fn(RB)));
548
549 //new extended opcode added by Yuhan
550 extended_op_57[2] = power_entry(power_op_lxsd, "lxsd", NULL, list_of(fn(VRT))(fn(STU<u64>)));
551 extended_op_57[3] = power_entry(power_op_lxssp, "lxssp", NULL, list_of(fn(VRT))(fn(STU<u64>)));
552
553
554 extended_op_58[0] = power_entry(power_op_ld, "ld", NULL, list_of(fn(RT))(fn(L<u64>)));
555 extended_op_58[1] = power_entry(power_op_ldu, "ldu", NULL, list_of(fn(RT))(fn(LU<u64>)));
556 extended_op_58[2] = power_entry(power_op_lwa, "lwa", NULL, list_of(fn(RT))(fn(L<s32>)));
557
558 extended_op_59[18] = power_entry(power_op_fdivs, "fdivs", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRA))(fn(FRB))(fn(Rc)));
559 extended_op_59[20] = power_entry(power_op_fsubs, "fsubs", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRA))(fn(FRB))(fn(Rc)));
560 extended_op_59[21] = power_entry(power_op_fadds, "fadds", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRA))(fn(FRB))(fn(Rc)));
561 extended_op_59[22] = power_entry(power_op_fsqrts, "fsqrts", NULL, list_of(fn(setFPMode))(fn(RT))(fn(RB))(fn(Rc)));
562 extended_op_59[24] = power_entry(power_op_fres, "fres", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRB))(fn(Rc)));
563 extended_op_59[25] = power_entry(power_op_fmuls, "fmuls", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRA))(fn(FRC))(fn(Rc)));
564 extended_op_59[28] = power_entry(power_op_fmsubs, "fmsubs", NULL,
565 list_of(fn(setFPMode))(fn(FRT))(fn(FRA))(fn(FRB))(fn(FRC))(fn(Rc)));
566 extended_op_59[29] = power_entry(power_op_fmadds, "fmadds", NULL,
567 list_of(fn(setFPMode))(fn(FRT))(fn(FRA))(fn(FRB))(fn(FRC))(fn(Rc)));
568 extended_op_59[30] = power_entry(power_op_fnmsubs, "fnmsubs", NULL,
569 list_of(fn(setFPMode))(fn(FRT))(fn(FRA))(fn(FRB))(fn(FRC))(fn(Rc)));
570 extended_op_59[31] = power_entry(power_op_fnmadds, "fnmadds", NULL,
571 list_of(fn(setFPMode))(fn(FRT))(fn(FRA))(fn(FRB))(fn(FRC))(fn(Rc)));
572
573 //Yuhan: new extended opcode
574     extended_op_60[0] = power_entry(power_op_xsaddsp, "xsaddsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
575 extended_op_60[1] = power_entry(power_op_xsaddsp, "xsaddsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
576 extended_op_60[2] = power_entry(power_op_xsmaddasp, "xsmaddasp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
577 extended_op_60[3] = power_entry(power_op_xsmaddasp, "xsmaddasp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
578 extended_op_60[6] = power_entry(power_op_xscmpeqdp, "xscmpeqdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
579 extended_op_60[7] = power_entry(power_op_xscmpeqdp, "xscmpeqdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
580 extended_op_60[10] = power_entry(power_op_xsrsqrtesp, "xsrsqrtesp", NULL, list_of(fn(XT))(fn(XB)));
581 extended_op_60[11] = power_entry(power_op_xssqrtsp, "xssqrtsp", NULL, list_of(fn(XT))(fn(XB)));
582 extended_op_60[16] = power_entry(power_op_xssubsp, "xssubsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
583 extended_op_60[17] = power_entry(power_op_xssubsp, "xssubsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
584 extended_op_60[18] = power_entry(power_op_xsmaddmsp, "xsmaddmsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
585 extended_op_60[19] = power_entry(power_op_xsmaddmsp, "xsmaddmsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
586 extended_op_60[22] = power_entry(power_op_xscmpgtdp, "xscmpgtdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
587 extended_op_60[23] = power_entry(power_op_xscmpgtdp, "xscmpgtdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
588 extended_op_60[26] = power_entry(power_op_xsresp, "xsresp", NULL, list_of(fn(XT))(fn(XB)));
589 extended_op_60[32] = power_entry(power_op_xsmulsp, "xsmulsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
590 extended_op_60[33] = power_entry(power_op_xsmulsp, "xsmulsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
591 extended_op_60[34] = power_entry(power_op_xsmsubasp, "xsmsubasp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
592 extended_op_60[35] = power_entry(power_op_xsmsubasp, "xsmsubasp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
593 extended_op_60[36] = power_entry(power_op_xxmrghw, "xxmrghw", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
594 extended_op_60[37] = power_entry(power_op_xxmrghw, "xxmrghw", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
595 extended_op_60[38] = power_entry(power_op_xscmpgedp, "xscmpgedp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
596 extended_op_60[39] = power_entry(power_op_xscmpgedp, "xscmpgedp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
597 extended_op_60[48] = power_entry(power_op_xsdivsp, "xsdivsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
598 extended_op_60[49] = power_entry(power_op_xsdivsp, "xsdivsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
599 extended_op_60[50] = power_entry(power_op_xsmsubmsp, "xsmsubmsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
600 extended_op_60[51] = power_entry(power_op_xsmsubmsp, "xsmsubmsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
601 extended_op_60[52] = power_entry(power_op_xxperm, "xxperm", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
602 extended_op_60[53] = power_entry(power_op_xxperm, "xxperm", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
603 extended_op_60[64] = power_entry(power_op_xsadddp, "xsadddp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
604 extended_op_60[65] = power_entry(power_op_xsadddp, "xsadddp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
605 extended_op_60[66] = power_entry(power_op_xsmaddadp, "xsmaddadp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
606 extended_op_60[67] = power_entry(power_op_xsmaddadp, "xsmaddadp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
607 extended_op_60[70] = power_entry(power_op_xscmpudp, "xscmpudp", NULL, list_of(fn(BF))(fn(XA))(fn(XB)));
608 extended_op_60[71] = power_entry(power_op_xscmpudp, "xscmpudp", NULL, list_of(fn(BF))(fn(XA))(fn(XB)));
609 extended_op_60[72] = power_entry(power_op_xscvdpuxws, "xscvdpuxws", NULL, list_of(fn(XT))(fn(XB)));
610 extended_op_60[74] = power_entry(power_op_xsrsqrtedp, "xsrsqrtedp", NULL, list_of(fn(XT))(fn(XB)));
611 extended_op_60[75] = power_entry(power_op_xssqrtdp, "xssqrtdp", NULL, list_of(fn(XT))(fn(XB)));
612 extended_op_60[78] = power_entry(power_op_xsrdpi, "xsrdpi", NULL, list_of(fn(XT))(fn(XB)));
613 extended_op_60[80] = power_entry(power_op_xssubdp, "xssubdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
614 extended_op_60[81] = power_entry(power_op_xssubdp, "xssubdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
615 extended_op_60[82] = power_entry(power_op_xsmaddmdp, "xsmaddmdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
616 extended_op_60[83] = power_entry(power_op_xsmaddmdp, "xsmaddmdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
617 extended_op_60[86] = power_entry(power_op_xscmpodp, "xscmpodp", NULL, list_of(fn(BF))(fn(XA))(fn(XB)));
618 extended_op_60[87] = power_entry(power_op_xscmpodp, "xscmpodp", NULL, list_of(fn(BF))(fn(XA))(fn(XB)));
619 extended_op_60[88] = power_entry(power_op_xscvdpsxws, "xscvdpsxws", NULL, list_of(fn(XT))(fn(XB)));
620 extended_op_60[89] = power_entry(power_op_xsrdpiz, "xsrdpiz", NULL, list_of(fn(XT))(fn(XB)));
621 extended_op_60[90] = power_entry(power_op_xsredp, "xsredp", NULL, list_of(fn(XT))(fn(XB)));
622 extended_op_60[96] = power_entry(power_op_xsmuldp, "xsmuldp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
623 extended_op_60[97] = power_entry(power_op_xsmuldp, "xsmuldp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
624 extended_op_60[98] = power_entry(power_op_xsmsubadp, "xsmsubadp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
625 extended_op_60[99] = power_entry(power_op_xsmsubadp, "xsmsubadp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
626 extended_op_60[100] = power_entry(power_op_xxmrglw, "xxmrglw", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
627 extended_op_60[101] = power_entry(power_op_xxmrglw, "xxmrglw", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
628 extended_op_60[105] = power_entry(power_op_xsrdpip, "xsrdpip", NULL, list_of(fn(XT))(fn(XB)));
629 extended_op_60[106] = power_entry(power_op_xstsqrtdp, "xstsqrtdp", NULL, list_of(fn(BF))(fn(XB)));
630 extended_op_60[107] = power_entry(power_op_xsrdpic, "xsrdpic", NULL, list_of(fn(XT))(fn(XB)));
631 extended_op_60[112] = power_entry(power_op_xsdivdp, "xsdivdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
632 extended_op_60[113] = power_entry(power_op_xsdivdp, "xsdivdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
633 extended_op_60[114] = power_entry(power_op_xsmsubmdp, "xsmsubmdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
634 extended_op_60[115] = power_entry(power_op_xsmsubmdp, "xsmsubmdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
635 extended_op_60[116] = power_entry(power_op_xxpermr, "xxpermr", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
636 extended_op_60[117] = power_entry(power_op_xxpermr, "xxpermr", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
637 extended_op_60[118] = power_entry(power_op_xscmpexpdp, "xscmpexpdp", NULL, list_of(fn(BF))(fn(XA))(fn(XB)));
638 extended_op_60[119] = power_entry(power_op_xscmpexpdp, "xscmpexpdp", NULL, list_of(fn(BF))(fn(XA))(fn(XB)));
639 extended_op_60[121] = power_entry(power_op_xsrdpim, "xsrdpim", NULL, list_of(fn(XT))(fn(XB)));
640 extended_op_60[122] = power_entry(power_op_xstdivdp, "xstdivdp", NULL, list_of(fn(BF))(fn(XA))(fn(XB)));
641 extended_op_60[123] = power_entry(power_op_xstdivdp, "xstdivdp", NULL, list_of(fn(BF))(fn(XA))(fn(XB)));
642 extended_op_60[128] = power_entry(power_op_xvaddsp, "xvaddsp", NULL, list_of(fn(BF))(fn(XA))(fn(XB)));
643 extended_op_60[129] = power_entry(power_op_xvaddsp, "xvaddsp", NULL, list_of(fn(BF))(fn(XA))(fn(XB)));
644 extended_op_60[130] = power_entry(power_op_xvmaddasp, "xvmaddasp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
645 extended_op_60[131] = power_entry(power_op_xvmaddasp, "xvmaddasp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
646 extended_op_60[134] = power_entry(power_op_xvcmpeqsp, "xvcmpeqsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
647 extended_op_60[135] = power_entry(power_op_xvcmpeqsp, "xvcmpeqsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
648 extended_op_60[136] = power_entry(power_op_xvcvspuxws, "xvcvspuxws", NULL, list_of(fn(XT))(fn(XB)));
649 extended_op_60[137] = power_entry(power_op_xvrspi, "xvrspi", NULL, list_of(fn(XT))(fn(XB)));
650 extended_op_60[138] = power_entry(power_op_xvrsqrtesp, "xvrsqrtesp",  NULL, list_of(fn(XT))(fn(XB)));
651 extended_op_60[139] = power_entry(power_op_xvsqrtsp, "xvsqrtsp", NULL, list_of(fn(XT))(fn(XB)));
652 extended_op_60[144] = power_entry(power_op_xvsubsp, "xvsubsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
653 extended_op_60[145] = power_entry(power_op_xvsubsp, "xvsubsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
654 extended_op_60[146] = power_entry(power_op_xvmaddmsp, "xvmaddmsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
655 extended_op_60[147] = power_entry(power_op_xvmaddmsp, "xvmaddmsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
656 extended_op_60[150] = power_entry(power_op_xvcmpgtsp, "xvcmpgtsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
657 extended_op_60[151] = power_entry(power_op_xvcmpgtsp, "xvcmpgtsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
658 extended_op_60[152] = power_entry(power_op_xvcvspsxws, "xvcvspsxws", NULL, list_of(fn(XT))(fn(XB)));
659 extended_op_60[153] = power_entry(power_op_xvrspiz, "xvrspiz", NULL, list_of(fn(XT))(fn(XB)));
660 extended_op_60[154] = power_entry(power_op_xvresp, "xvresp", NULL, list_of(fn(XT))(fn(XB)));
661 extended_op_60[160] = power_entry(power_op_xvmulsp, "xvmulsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
662 extended_op_60[161] = power_entry(power_op_xvmulsp, "xvmulsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
663 extended_op_60[162] = power_entry(power_op_xvmsubasp, "xvmsubasp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
664 extended_op_60[164] = power_entry(power_op_xxspltw, "xxspltw", NULL, list_of(fn(XT))(fn(XB))(fn(UIM)));
665 extended_op_60[165] = power_entry(power_op_xxextractuw, "xxextractuw", NULL, list_of(fn(XT))(fn(XB))(fn(UIM)));
666 extended_op_60[166] = power_entry(power_op_xvcmpgesp, "xvcmpgesp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
667 extended_op_60[167] = power_entry(power_op_xvcmpgesp, "xvcmpgesp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
668 extended_op_60[168] = power_entry(power_op_xvcvuxwsp, "xvcvuxwsp", NULL, list_of(fn(XT))(fn(XB)));
669 extended_op_60[169] = power_entry(power_op_xvrspip, "xvrspip", NULL, list_of(fn(XT))(fn(XB)));
670 extended_op_60[170] = power_entry(power_op_xvtsqrtsp, "xvtsqrtsp", NULL, list_of(fn(BF))(fn(XB)));
671 extended_op_60[171] = power_entry(power_op_xvrspic, "xvrspic", NULL, list_of(fn(XT))(fn(XB)));
672 extended_op_60[178] = power_entry(power_op_xvmsubmsp, "xvmsubmsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
673 extended_op_60[181] = power_entry(power_op_xxinsertw, "xxextractuw", NULL, list_of(fn(XT))(fn(XB))(fn(UIM)));
674 extended_op_60[184] = power_entry(power_op_xvcvsxwsp, "xvcvsxwsp", NULL, list_of(fn(XT))(fn(XB)));
675 extended_op_60[185] = power_entry(power_op_xvrspim, "xvrspim", NULL, list_of(fn(XT))(fn(XB)));
676 extended_op_60[186] = power_entry(power_op_xvdivsp, "xvdivsp", NULL, list_of(fn(BF))(fn(XA))(fn(XB)));
677 extended_op_60[187] = power_entry(power_op_xvdivsp, "xvdivsp", NULL, list_of(fn(BF))(fn(XA))(fn(XB)));
678 extended_op_60[192] = power_entry(power_op_xvadddp, "xvadddp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
679 extended_op_60[193] = power_entry(power_op_xvadddp, "xvadddp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
680 extended_op_60[194] = power_entry(power_op_xvmaddadp, "xvmaddadp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
681 extended_op_60[195] = power_entry(power_op_xvmaddadp, "xvmaddadp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
682 extended_op_60[198] = power_entry(power_op_xvcmpeqdp, "xvcmpeqdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
683 extended_op_60[199] = power_entry(power_op_xvcmpeqdp, "xvcmpeqdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
684 extended_op_60[200] = power_entry(power_op_xvcvdpuxws, "xvcvdpuxws", NULL, list_of(fn(XT))(fn(XB)));
685 extended_op_60[201] = power_entry(power_op_xvrdpi, "xvrdpi", NULL, list_of(fn(XT))(fn(XB)));
686 extended_op_60[202] = power_entry(power_op_xvrsqrtedp, "xvrsqrteds", NULL, list_of(fn(XT))(fn(XB)));
687 extended_op_60[203] = power_entry(power_op_xvsqrtdp, "xvsqrtdp", NULL, list_of(fn(XT))(fn(XB)));
688 extended_op_60[208] = power_entry(power_op_xvsubdp, "xvsubdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
689 extended_op_60[209] = power_entry(power_op_xvsubdp, "xvsubdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
690 extended_op_60[210] = power_entry(power_op_xvmaddmdp, "xvmaddmdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
691 extended_op_60[211] = power_entry(power_op_xvmaddmdp, "xvmaddmdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
692 extended_op_60[214] = power_entry(power_op_xvcmpgtdp, "xvcmpgtdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
693 extended_op_60[215] = power_entry(power_op_xvcmpgtdp, "xvcmpgtdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
694 extended_op_60[216] = power_entry(power_op_xvcvdpsxws, "xvcvdpsxws", NULL, list_of(fn(XT))(fn(XB)));
695 extended_op_60[217] = power_entry(power_op_xvrdpiz, "xvrdpiz", NULL, list_of(fn(XT))(fn(XB)));
696 extended_op_60[218] = power_entry(power_op_xvredp, "xvredp", NULL, list_of(fn(XT))(fn(XB)));
697 extended_op_60[224] = power_entry(power_op_xvmuldp, "xvmuldp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
698 extended_op_60[226] = power_entry(power_op_xvmsubadp, "xvmsubadp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
699 extended_op_60[227] = power_entry(power_op_xvmsubadp, "xvmsubadp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
700 extended_op_60[230] = power_entry(power_op_xvcmpgedp, "xvcmpgedp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
701 extended_op_60[231] = power_entry(power_op_xvcmpgedp, "xvcmpgedp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
702 extended_op_60[232] = power_entry(power_op_xvcvuxwdp, "xvcvuxwdp", NULL, list_of(fn(XT))(fn(XB)));
703 extended_op_60[233] = power_entry(power_op_xvrdpip, "xvrdpip", NULL, list_of(fn(XT))(fn(XB)));
704 extended_op_60[234] = power_entry(power_op_xvtsqrtdp, "xvtsqrtdp", NULL, list_of(fn(BF))(fn(XB)));
705 extended_op_60[235] = power_entry(power_op_xvrdpic, "xvrdpic", NULL, list_of(fn(XT))(fn(XB)));
706 extended_op_60[240] = power_entry(power_op_xvdivdp, "xvdivdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
707 extended_op_60[241] = power_entry(power_op_xvdivdp, "xvdivdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
708 extended_op_60[242] = power_entry(power_op_xvmsubmdp, "xvmsubmdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
709 extended_op_60[243] = power_entry(power_op_xvmsubmdp, "xvmsubmdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
710 extended_op_60[248] = power_entry(power_op_xvcvsxwdp, "xvcvsxwdp", NULL, list_of(fn(XT))(fn(XB)));
711 extended_op_60[249] = power_entry(power_op_xvrdpim, "xvrdpim", NULL, list_of(fn(XT))(fn(XB)));
712 extended_op_60[250] = power_entry(power_op_xvtdivdp, "xvtdivdp", NULL, list_of(fn(BF))(fn(XA))(fn(XB)));
713 extended_op_60[251] = power_entry(power_op_xvtdivdp, "xvtdivdp", NULL, list_of(fn(BF))(fn(XA))(fn(XB)));
714 extended_op_60[256] = power_entry(power_op_xsmaxcdp, "xsmaxcdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
715 extended_op_60[257] = power_entry(power_op_xsmaxcdp, "xsmaxcdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
716 extended_op_60[258] = power_entry(power_op_xsnmaddasp, "xsnmaddasp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
717 extended_op_60[259] = power_entry(power_op_xsnmaddasp, "xsnmaddasp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
718 extended_op_60[260] = power_entry(power_op_xxland, "xxland", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
719 extended_op_60[261] = power_entry(power_op_xxland, "xxland", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
720 extended_op_60[265] = power_entry(power_op_xscvdpsp, "xscvdpsp", NULL, list_of(fn(XT))(fn(XB)));
721 extended_op_60[267] = power_entry(power_op_xscvdpspn, "xscvdpspn", NULL, list_of(fn(XT))(fn(XB)));
722 extended_op_60[272] = power_entry(power_op_xsmincdp, "xsmincdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
723 extended_op_60[273] = power_entry(power_op_xsmincdp, "xsmincdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
724 extended_op_60[274] = power_entry(power_op_xsnmaddmsp, "xsnmaddmsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
725 extended_op_60[275] = power_entry(power_op_xsnmaddmsp, "xsnmaddmsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
726 extended_op_60[276] = power_entry(power_op_xxlandc, "xxlandc", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
727 extended_op_60[277] = power_entry(power_op_xxlandc, "xxlandc", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
728 extended_op_60[281] = power_entry(power_op_xsrsp, "xsrsp", NULL, list_of(fn(XT))(fn(XB)));
729 extended_op_60[288] = power_entry(power_op_xsmaxjdp, "xsmaxjdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
730 extended_op_60[289] = power_entry(power_op_xsmaxjdp, "xsmaxjdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
731 extended_op_60[290] = power_entry(power_op_xsnmsubasp, "xsnmsubasp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
732 extended_op_60[291] = power_entry(power_op_xsnmsubasp, "xsnmsubasp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
733 extended_op_60[292] = power_entry(power_op_xxlor, "xxlor", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
734 extended_op_60[293] = power_entry(power_op_xxlor, "xxlor", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
735 extended_op_60[296] = power_entry(power_op_xscvuxdsp, "xscvuxdsp", NULL, list_of(fn(XT))(fn(XB)));
736 extended_op_60[298] = power_entry(power_op_xststdcsp, "xststdcsp", NULL, list_of(fn(BF))(fn(DCMX))(fn(XB)));
737 extended_op_60[304] = power_entry(power_op_xsminjdp, "xsminjdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
738 extended_op_60[305] = power_entry(power_op_xsminjdp, "xsminjdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
739 extended_op_60[306] = power_entry(power_op_xsnmsubmsp, "xsnmsubmsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
740 extended_op_60[307] = power_entry(power_op_xsnmsubmsp, "xsnmsubmsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
741 extended_op_60[308] = power_entry(power_op_xxlxor, "xxlxor", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
742 extended_op_60[309] = power_entry(power_op_xxlxor, "xxlxor", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
743 extended_op_60[312] = power_entry(power_op_xscvsxdsp, "xscvsxdsp", NULL, list_of(fn(XT))(fn(XB)));
744 extended_op_60[320] = power_entry(power_op_xsmaxdp, "xsmaxdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
745 extended_op_60[321] = power_entry(power_op_xsmaxdp, "xsmaxdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
746 extended_op_60[322] = power_entry(power_op_xsnmaddadp, "xsnmaddadp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
747 extended_op_60[323] = power_entry(power_op_xsnmaddadp, "xsnmaddadp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
748 extended_op_60[324] = power_entry(power_op_xxlnor, "xxlnor", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
749 extended_op_60[325] = power_entry(power_op_xxlnor, "xxlnor", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
750 extended_op_60[328] = power_entry(power_op_xscmpexpdp, "xscmpexpdp", NULL, list_of(fn(BF))(fn(XB)));
751 extended_op_60[329] = power_entry(power_op_xscvspdp, "xscvspdp", NULL, list_of(fn(XT))(fn(XB)));
752 extended_op_60[331] = power_entry(power_op_xscvspdpn, "xscvspdpn", NULL, list_of(fn(XT))(fn(XB)));
753 extended_op_60[336] = power_entry(power_op_xsmindp, "xsmindp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
754 extended_op_60[337] = power_entry(power_op_xsmindp, "xsmindp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
755 extended_op_60[338] = power_entry(power_op_xsnmaddmdp, "xsnmaddmdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
756 extended_op_60[339] = power_entry(power_op_xsnmaddmdp, "xsnmaddmdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
757 extended_op_60[340] = power_entry(power_op_xxlorc, "xxlorc", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
758 extended_op_60[341] = power_entry(power_op_xxlorc, "xxlorc", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
759 extended_op_60[344] = power_entry(power_op_xscvdpsxds, "xscvdpsxds", NULL, list_of(fn(XT))(fn(XB)));
760 extended_op_60[345] = power_entry(power_op_xsabsdp, "xsabsdp", NULL, list_of(fn(XT))(fn(XB)));
761 extended_op_60[352] = power_entry(power_op_xscpsgndp, "xscpsgndp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
762 extended_op_60[353] = power_entry(power_op_xscpsgndp, "xscpsgndp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
763 extended_op_60[354] = power_entry(power_op_xsnmsubadp, "xsnmsubadp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
764 extended_op_60[355] = power_entry(power_op_xsnmsubadp, "xsnmsubadp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
765 extended_op_60[356] = power_entry(power_op_xxlnand, "xxlnand", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
766 extended_op_60[357] = power_entry(power_op_xxlnand, "xxlnand", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
767 extended_op_60[370] = power_entry(power_op_xsnmsubmdp, "xsnmsubmdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
768 extended_op_60[371] = power_entry(power_op_xsnmsubmdp, "xsnmsubmdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
769 extended_op_60[372] = power_entry(power_op_xxleqv, "xxleqv", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
770 extended_op_60[373] = power_entry(power_op_xxleqv, "xxleqv", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
771 extended_op_60[382] = power_entry(power_op_xvnmaddasp, "xvnmaddasp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
772 extended_op_60[383] = power_entry(power_op_xvnmaddasp, "xvnmaddasp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
773 extended_op_60[384] = power_entry(power_op_xvmaxsp, "xvmaxsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
774 extended_op_60[390] = power_entry(power_op_xvcmpeqsp, "xvcmpeqsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
775 extended_op_60[391] = power_entry(power_op_xvcmpeqsp, "xvcmpeqsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
776 extended_op_60[400] = power_entry(power_op_xvminsp, "xvminsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
777 extended_op_60[401] = power_entry(power_op_xvminsp, "xvminsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
778 extended_op_60[402] = power_entry(power_op_xvnmaddmsp, "xvnmaddmsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
779 extended_op_60[403] = power_entry(power_op_xvnmaddmsp, "xvnmaddmsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
780 extended_op_60[406] = power_entry(power_op_xvcmpgtsp, "xvcmpgtsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
781 extended_op_60[407] = power_entry(power_op_xvcmpgtsp, "xvcmpgtsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
782 extended_op_60[416] = power_entry(power_op_xvcpsgnsp, "xvcpsgnsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
783 extended_op_60[417] = power_entry(power_op_xvcpsgnsp, "xvcpsgnsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
784 extended_op_60[422] = power_entry(power_op_xvcmpgesp, "xvcmpgesp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
785 extended_op_60[423] = power_entry(power_op_xvcmpgesp, "xvcmpgesp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
786 extended_op_60[424] = power_entry(power_op_xvcvuxdsp, "xvcvuxdsp", NULL, list_of(fn(XT))(fn(XB)));
787 extended_op_60[425] = power_entry(power_op_xvnabssp, "xvnabssp", NULL, list_of(fn(XT))(fn(XB)));
788 extended_op_60[432] = power_entry(power_op_xviexpsp, "xviexpsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
789 extended_op_60[433] = power_entry(power_op_xviexpsp, "xviexpsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
790 extended_op_60[440] = power_entry(power_op_xvcvsxdsp, "xvcvsxdsp", NULL, list_of(fn(XT))(fn(XB)));
791 extended_op_60[441] = power_entry(power_op_xvnegsp, "xscvuxdsp", NULL, list_of(fn(XT))(fn(XB)));
792 extended_op_60[448] = power_entry(power_op_xvmaxdp, "xvmaxdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
793 extended_op_60[449] = power_entry(power_op_xvmaxdp, "xvmaxdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
794 extended_op_60[450] = power_entry(power_op_xvnmaddadp, "xvnmaddadp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
795 extended_op_60[451] = power_entry(power_op_xvnmaddadp, "xvnmaddadp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
796 extended_op_60[454] = power_entry(power_op_xvcmpeqdp, "xvcmpeqdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
797 extended_op_60[455] = power_entry(power_op_xvcmpeqdp, "xvcmpeqdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
798 extended_op_60[464] = power_entry(power_op_xvmindp, "xvmindp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
799 extended_op_60[466] = power_entry(power_op_xvnmaddmdp, "xvnmaddmdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
800 extended_op_60[467] = power_entry(power_op_xvnmaddmdp, "xvnmaddmdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
801 extended_op_60[470] = power_entry(power_op_xvcmpgtdp, "xvcmpgtdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
802 extended_op_60[471] = power_entry(power_op_xvcmpgtdp, "xvcmpgtdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
803 extended_op_60[480] = power_entry(power_op_xvcpsgndp, "xvcpsgndp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
804 extended_op_60[481] = power_entry(power_op_xvcpsgndp, "xvcpsgndp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
805 extended_op_60[482] = power_entry(power_op_xvnmsubadp, "xvnmsubadp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
806 extended_op_60[483] = power_entry(power_op_xvnmsubadp, "xvnmsubadp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
807 extended_op_60[486] = power_entry(power_op_xvcmpgedp, "xvcmpgedp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
808 extended_op_60[487] = power_entry(power_op_xvcmpgedp, "xvcmpgedp", NULL, list_of(fn(XT))(fn(XA))(fn(XB))(fn(Rc)));
809 extended_op_60[488] = power_entry(power_op_xvcvuxddp, "xvcvuxddp", NULL, list_of(fn(XT))(fn(XB)));
810 extended_op_60[489] = power_entry(power_op_xvnabsdp, "xvnabsdp", NULL, list_of(fn(XT))(fn(XB)));
811 extended_op_60[496] = power_entry(power_op_xviexpdp, "xviexpdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
812 extended_op_60[497] = power_entry(power_op_xviexpdp, "xviexpdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
813 extended_op_60[498] = power_entry(power_op_xvnmsubmdp, "xvnmsubmdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
814 extended_op_60[499] = power_entry(power_op_xvnmsubmdp, "xvnmsubmdp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
815 extended_op_60[504] = power_entry(power_op_xvcvsxddp, "xvcvsxddp", NULL, list_of(fn(XT))(fn(XB)));
816 extended_op_60[505] = power_entry(power_op_xvnegdp, "xvnegdp", list_of(fn(XT))(fn(XB)));
817 //third level opcode included:
818 extended_op_60[347] = power_entry(power_op_extended, "extended", fn(extended_op_60_347), operandSpec()));
819 extended_op_60[360] = power_entry(power_op_xscvuxddp, "xscvuxddp", NULL, list_of(fn(XT))(fn(XB)));
820 extended_op_60[361] = power_entry(power_op_xsnabsdp, "xsnabsdp", NULL, list_of(fn(XT))(fn(XB)));
821 extended_op_60[362] = power_entry(power_op_xststdcdp, "xststdcdp", NULL, list_of(fn(BF))(fn(DCMX))(fn(XB)));
822 extended_op_60[376] = power_entry(power_op_xscvsxddp, "xscvsxddp", NULL, list_of(fn(XT))(fn(XB)));
823 extended_op_60[377] = power_entry(power_op_xsnegdp, "xsnegdp", NULL, list_of(fn(XT))(fn(XB)));
824 extended_op_60[392] = power_entry(power_op_xvcvspuxds, "xvcvspuxds", NULL, list_of(fn(XT))(fn(XB)));
825 extended_op_60[393] = power_entry(power_op_xvcvdpsp, "xvcvdpsp", NULL, list_of(fn(XT))(fn(XB)));
826 extended_op_60[408] = power_entry(power_op_xvcvspsxds, "xvcvspsxds", NULL, list_of(fn(XT))(fn(XB)));
827 extended_op_60[409] = power_entry(power_op_xvabssp, "xvabssp", NULL, list_of(fn(XT))(fn(XB)));
828 extended_op_60[418] = power_entry(power_op_xvnmsubasp, "xvnmsubasp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
829 extended_op_60[419] = power_entry(power_op_xvnmsubasp, "xvnmsubasp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
830 extended_op_60[426] = power_entry(power_op_xvtstdcsp, "xvtstdcsp", NULL, list_of(fn(XT))(fn(XB))(fn(DCMX)));
831 extended_op_60[427] = power_entry(power_op_xvtstdcsp, "xvtstdcsp", NULL, list_of(fn(XT))(fn(XB))(fn(DCMX)));
832 extended_op_60[434] = power_entry(power_op_xvnmsubmsp, "xvnmsubmsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
833 extended_op_60[435] = power_entry(power_op_xvnmsubmsp, "xvnmsubmsp", NULL, list_of(fn(XT))(fn(XA))(fn(XB)));
834 extended_op_60[442] = power_entry(power_op_xvtstdcsp, "xvtstdcsp", NULL, list_of(fn(XT))(fn(XB))(fn(DCMX)));
835 extended_op_60[443] = power_entry(power_op_xvtstdcsp, "xvtstdcsp", NULL, list_of(fn(XT))(fn(XB))(fn(DCMX)));
836 extended_op_60[456] = power_entry(power_op_xvcvdpuxds, "xvcvdpuxds", NULL, list_of(fn(XT))(fn(XB)));
837 extended_op_60[457] = power_entry(power_op_xvcvspdp, "xvcvspdp", NULL, list_of(fn(XT))(fn(XB)));
838 extended_op_60[459] = power_entry(power_op_xsiexpdp, "xsiexpdp", NULL, list_of(fn(XT))(fn(RA))(fn(RB)));
839 extended_op_60[472] = power_entry(power_op_xvcvdpsxds, "xvcvdpsxds", NULL, list_of(fn(XT))(fn(XB)));
840 extended_op_60[473] = power_entry(power_op_xvabsdp, "xvabsdp", NULL, list_of(fn(XT))(fn(XB)));
841 extended_op_60[475] = power_entry(power_op_extended, "extended", fn(extended_op_60_475), operandSpec()));
842 extended_op_60[490] = power_entry(power_op_xvtstdcdp, "xvtstdcdp", NULL, list_of(fn(XT))(fn(XB))(fn(DCMX)));
843 extended_op_60[491] = power_entry(power_op_xvtstdcdp, "xvtstdcdp", NULL, list_of(fn(XT))(fn(XB))(fn(DCMX)));
844 extended_op_60[506] = power_entry(power_op_xvtstdcdp, "xvtstdcdp", NULL, list_of(fn(XT))(fn(XB))(fn(DCMX)));
845 extended_op_60[507] = power_entry(power_op_xvtstdcdp, "xvtstdcdp", NULL, list_of(fn(XT))(fn(XB))(fn(DCMX)));
846
847                 extended_op_61[2] = power_entry(power_op_stxsd, "stxsd", NULL, list_of(fn(VRS))(fn(STU<u64>)));
848                 extended_op_61[3] = power_entry(power_op_stxssp, "stxssp", NULL, list_of(fn(VRS))(fn(STU<u64>)));
849         
850     
851                 extended_op_63[0] = power_entry(power_op_fcmpu, "fcmpu", NULL, list_of(fn(setFPMode))(fn(BF))(fn(FRA))(fn(FRB)));
852
853 extended_op_63[4] = power_entry(power_op_xsaddqp, "xsaddqp", NULL, list_of(fn(VRT))(fn(VRA))(fn(VRB))(fn(RO)));
854 extended_op_63[5] = power_entry(power_op_xsrqpi, "xsrqpi", NULL, list_of(fn(R))(fn(VRT))(fn(VRB))(fn(RMC))(fn(EX)));
855 extended_op_63[12] = power_entry(power_op_frsp, "frsp", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRB))(fn(Rc)));
856 extended_op_63[14] = power_entry(power_op_fctiw, "fctiw", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRB))(fn(Rc)));
857 extended_op_63[15] = power_entry(power_op_fctiwz, "fctiwz", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRB))(fn(Rc)));
858 extended_op_63[18] = power_entry(power_op_fdiv, "fdiv", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRA))(fn(FRB))(fn(Rc)));
859 extended_op_63[20] = power_entry(power_op_fsub, "fsub", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRA))(fn(FRB))(fn(Rc)));
860 extended_op_63[21] = power_entry(power_op_fadd, "fadd", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRA))(fn(FRB))(fn(Rc)));
861 extended_op_63[22] = power_entry(power_op_fsqrt, "fsqrt", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRB))(fn(Rc)));
862 extended_op_63[23] = power_entry(power_op_fsel, "fsel", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRA))(fn(FRB))(fn(FRC))(fn(Rc)));
863 extended_op_63[25] = power_entry(power_op_fmul, "fmul", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRA))(fn(FRC))(fn(Rc)));
864 extended_op_63[26] = power_entry(power_op_frsqrte, "frsqrte", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRB))(fn(Rc)));
865 extended_op_63[28] = power_entry(power_op_fmsub, "fmsub", NULL,
866 list_of(fn(setFPMode))(fn(FRT))(fn(FRA))(fn(FRB))(fn(FRC))(fn(Rc)));
867 extended_op_63[29] = power_entry(power_op_fmadd, "fmadd", NULL,
868 list_of(fn(setFPMode))(fn(FRT))(fn(FRA))(fn(FRB))(fn(FRC))(fn(Rc)));
869 extended_op_63[30] = power_entry(power_op_fnmsub, "fnmsub", NULL,
870 list_of(fn(setFPMode))(fn(FRT))(fn(FRA))(fn(FRB))(fn(FRC))(fn(Rc)));
871 extended_op_63[31] = power_entry(power_op_fnmadd, "fnmadd", NULL,
872 list_of(fn(setFPMode))(fn(FRT))(fn(FRA))(fn(FRB))(fn(FRC))(fn(Rc)));
873 extended_op_63[32] = power_entry(power_op_fcmpo, "fcmpo", NULL, list_of(fn(setFPMode))(fn(BF))(fn(FRA))(fn(FRB)));
874 extended_op_63[36] = power_entry(power_op_xsmulqp, "xsmulqp", NULL, list_of(fn(VRT))(fn(VRA))(fn(VRB))(fn(RO)));
875 extended_op_63[37] = power_entry(power_op_xsrqpxp, "xsrqpxp", NULL, list_of((fn(R))fn(VRT))(fn(VRB))(fn(RMC)));
876 extended_op_63[38] = power_entry(power_op_mtfsb1, "mtfsb1", NULL, list_of(fn(setFPMode))(fn(BT))(fn(Rc)));
877 extended_op_63[40] = power_entry(power_op_fneg, "fneg", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRB))(fn(Rc)));
878 extended_op_63[64] = power_entry(power_op_mcrfs, "mcrfs", NULL, list_of(fn(BF))(fn(BFA)));
879 extended_op_63[70] = power_entry(power_op_mtfsb0, "mtfsb0", NULL, list_of(fn(BT))(fn(Rc)));
880 extended_op_63[72] = power_entry(power_op_fmr, "fmr", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRB))(fn(Rc)));
881 extended_op_63[132] = power_entry(power_op_xscmpoqp, "xscmpoqp", NULL, list_of(fn(BF))(fn(VRA))(fn(VRB)));
882 extended_op_63[134] = power_entry(power_op_mtfsfi, "mtfsfi", NULL, list_of(fn(BF))(fn(U))(fn(Rc)));
883 extended_op_63[136] = power_entry(power_op_fnabs, "fnabs", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRB)));
884 extended_op_63[164] = power_entry(power_op_xscmpexpqp, "xscmpexpqp", NULL, list_of(fn(BF))(fn(VRA))(fn(VRB)));
885 extended_op_63[264] = power_entry(power_op_fabs, "fabs", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRB))(fn(Rc)));
886 extended_op_63[388] = power_entry(power_op_xsmaddqp, "xsmaddqp", NULL, list_of(fn(VRT))(fn(VRA))(fn(VRB))(fn(RO)));
887 extended_op_63[420] = power_entry(power_op_xsmsubqp, "xsmsubqp", NULL, list_of(fn(VRT))(fn(VRA))(fn(VRB))(fn(RO)));
888 extended_op_63[452] = power_entry(power_op_xsnmaddqp, "xsnmaddqp", NULL, list_of(fn(VRT))(fn(VRA))(fn(VRB))(fn(RO)));
889 extended_op_63[484] = power_entry(power_op_xsnmsubqp, "xsnmsubqp", NULL, list_of(fn(VRT))(fn(VRA))(fn(VRB))(fn(RO)));
890 extended_op_63[516] = power_entry(power_op_xssubqp, "xssubqp", NULL, list_of(fn(VRT))(fn(VRA))(fn(VRB))(fn(RO)));
891 extended_op_63[548] = power_entry(power_op_xsdivqp, "xsdivqp", NULL, list_of(fn(VRT))(fn(VRA))(fn(VRB))(fn(RO)));
892 extended_op_63[583] = power_entry(power_op_mffs, "mffs", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(Rc)));
893 extended_op_63[644] = power_entry(power_op_xscmpuqp, "xscmpuqp", NULL, list_of(fn(BF))(fn(VRA))(fn(VRB)));
894 extended_op_63[708] = power_entry(power_op_xststdcqp, "xststdcqp", NULL, list_of(fn(BF))(fn(DCMX))(fn(VRB)));
895 extended_op_63[711] = power_entry(power_op_mtfsf, "mtfsf", NULL, list_of(fn(setFPMode))(fn(FLM))(fn(FRB))(fn(Rc)));
896
897 //third level opcode included
898 extended_op_63[804] = power_entry(power_op_extended, "extended", fn(extended_op_63_804), operandSpec()));
899
900 extended_op_63[814] = power_entry(power_op_fctid, "fctid", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRB))(fn(Rc)));
901 extended_op_63[815] = power_entry(power_op_fctidz, "fctidz", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRB))(fn(Rc)));
902 extended_op_63[836] = power_entry(power_op_extended, "extended", fn(extended_op_63_836), operandSpec()));
903 extended_op_63[846] = power_entry(power_op_fcfid, "fcfid", NULL, list_of(fn(setFPMode))(fn(FRT))(fn(FRB))(fn(Rc)));
904 extended_op_63[868] = power_entry(power_op_xsiexpqp, "xsiexpqp", NULL, list_of(fn(VRT))(fn(VRA))(fn(VRB)));
905
906 //-------------------------
907 //Third level opcode follows:
908   
909     extended_op_60_347[0] = power_entry(power_op_xsxexpdp, "xsxexpdp", NULL, list_of(fn(RT))(fn(XB)));
910 extended_op_60_347[1] = power_entry(power_op_xsxsigdp, "xsxsigdp", NULL, list_of(fn(RT))(fn(XB)));
911 extended_op_60_347[16] = power_entry(power_op_xscvdphp, "xscvhpdp", NULL, list_of(fn(XT))(fn(XB)));
912 extended_op_60_347[17] = power_entry(power_op_xscvhphp, "xscvdphp", NULL, list_of(fn(XT))(fn(XB)));
913
914
915     extended_op_60_475[0] = power_entry(power_op_xvxexpdp, "xvxexpdp", NULL, list_of(fn(XT))(fn(XB)));
916 extended_op_60_475[1] = power_entry(power_op_xvxsigdp, "xvxsigdp", NULL, list_of(fn(XT))(fn(XB)));
917 extended_op_60_475[7] = power_entry(power_op_xxbrh, "xxbrh", NULL, list_of(fn(XT))(fn(XB)));
918 extended_op_60_475[8] = power_entry(power_op_xvxexpsp, "xvxexpsp", NULL, list_of(fn(XT))(fn(XB)));
919 extended_op_60_475[9] = power_entry(power_op_xvxsigsp, "xvxsigsp", NULL, list_of(fn(XT))(fn(XB)));
920 extended_op_60_475[15] = power_entry(power_op_xxbrw, "xxbrw", NULL, list_of(fn(XT))(fn(XB)));
921 extended_op_60_475[23] = power_entry(power_op_xxbrd, "xxbrd", NULL, list_of(fn(XT))(fn(XB)));
922 extended_op_60_475[24] = power_entry(power_op_xvcvhpsp, "xvcvhpsp", NULL, list_of(fn(XT))(fn(XB)));
923 extended_op_60_475[25] = power_entry(power_op_xvcvsphp, "xvcvsphp", NULL, list_of(fn(XT))(fn(XB)));
924 extended_op_60_475[31] = power_entry(power_op_xxbrq, "xxbrq", NULL, list_of(fn(XT))(fn(XB)));
925
926     extended_op_63_804[0] = power_entry(power_op_xsabsqp, "xsabsqp", list_of(fn(VRT))(fn(VRB)));
927 extended_op_63_804[2] = power_entry(power_op_xsxexpqp, "xsxexpqp", list_of(fn(VRT))(fn(VRB)));
928 extended_op_63_804[16] = power_entry(power_op_xsnegqp, "xsnegqp", list_of(fn(VRT))(fn(VRB)));
929 extended_op_63_804[18] = power_entry(power_op_xsxsigqp, "xsxsigqp", list_of(fn(VRT))(fn(VRB)));
930 extended_op_63_804[27] = power_entry(power_op_xssqrtqp, "xssqrtqp", list_of(fn(VRT))(fn(VRB))(fn(RO)));
931
932     extended_op_63_836[1] = power_entry(power_op_xscvqpuwz, "xscvqpuwz", list_of(fn(VRT))(fn(VRB)));
933 extended_op_63_836[2] = power_entry(power_op_xscvudqp, "xscvudqp", list_of(fn(VRT))(fn(VRB)));
934 extended_op_63_836[9] = power_entry(power_op_xscvqpswz, "xscvqpswz", list_of(fn(VRT))(fn(VRB)));
935 extended_op_63_836[10] = power_entry(power_op_xscvsdqp, "xscvsdqp", list_of(fn(VRT))(fn(VRB)));
936 extended_op_63_836[17] = power_entry(power_op_xscvqpudz "xscvqpudz", list_of(fn(VRT))(fn(VRB)));
937 extended_op_63_836[20] = power_entry(power_op_xscvqpdp, "xscvqpdp", list_of(fn(VRT))(fn(VRB))(fn(RO)));
938 extended_op_63_836[22] = power_entry(power_op_xscvdpqp, "xscvdpqp", list_of(fn(VRT))(fn(VRB)));
939 extended_op_63_836[25] = power_entry(power_op_xscvqpsdz, "xscvqpsdz", list_of(fn(VRT))(fn(VRB)));
940
941
942
943 built_tables = true;
944 }