xref: /openbmc/qemu/target/ppc/translate/vsx-ops.c.inc (revision 139c1837db7eaee53e1c441629b5bcc159e1deb0)
1*139c1837SPaolo BonziniGEN_HANDLER_E(lxsdx, 0x1F, 0x0C, 0x12, 0, PPC_NONE, PPC2_VSX),
2*139c1837SPaolo BonziniGEN_HANDLER_E(lxsiwax, 0x1F, 0x0C, 0x02, 0, PPC_NONE, PPC2_VSX207),
3*139c1837SPaolo BonziniGEN_HANDLER_E(lxsiwzx, 0x1F, 0x0C, 0x00, 0, PPC_NONE, PPC2_VSX207),
4*139c1837SPaolo BonziniGEN_HANDLER_E(lxsibzx, 0x1F, 0x0D, 0x18, 0, PPC_NONE, PPC2_ISA300),
5*139c1837SPaolo BonziniGEN_HANDLER_E(lxsihzx, 0x1F, 0x0D, 0x19, 0, PPC_NONE, PPC2_ISA300),
6*139c1837SPaolo BonziniGEN_HANDLER_E(lxsspx, 0x1F, 0x0C, 0x10, 0, PPC_NONE, PPC2_VSX207),
7*139c1837SPaolo BonziniGEN_HANDLER_E(lxvd2x, 0x1F, 0x0C, 0x1A, 0, PPC_NONE, PPC2_VSX),
8*139c1837SPaolo BonziniGEN_HANDLER_E(lxvdsx, 0x1F, 0x0C, 0x0A, 0, PPC_NONE, PPC2_VSX),
9*139c1837SPaolo BonziniGEN_HANDLER_E(lxvw4x, 0x1F, 0x0C, 0x18, 0, PPC_NONE, PPC2_VSX),
10*139c1837SPaolo BonziniGEN_HANDLER_E(lxvh8x, 0x1F, 0x0C, 0x19, 0, PPC_NONE,  PPC2_ISA300),
11*139c1837SPaolo BonziniGEN_HANDLER_E(lxvb16x, 0x1F, 0x0C, 0x1B, 0, PPC_NONE, PPC2_ISA300),
12*139c1837SPaolo BonziniGEN_HANDLER_E(lxvx, 0x1F, 0x0C, 0x08, 0x00000040, PPC_NONE, PPC2_ISA300),
13*139c1837SPaolo Bonzini#if defined(TARGET_PPC64)
14*139c1837SPaolo BonziniGEN_HANDLER_E(lxvl, 0x1F, 0x0D, 0x08, 0, PPC_NONE, PPC2_ISA300),
15*139c1837SPaolo BonziniGEN_HANDLER_E(lxvll, 0x1F, 0x0D, 0x09, 0, PPC_NONE, PPC2_ISA300),
16*139c1837SPaolo Bonzini#endif
17*139c1837SPaolo Bonzini
18*139c1837SPaolo BonziniGEN_HANDLER_E(stxsdx, 0x1F, 0xC, 0x16, 0, PPC_NONE, PPC2_VSX),
19*139c1837SPaolo BonziniGEN_HANDLER_E(stxsibx, 0x1F, 0xD, 0x1C, 0, PPC_NONE, PPC2_ISA300),
20*139c1837SPaolo BonziniGEN_HANDLER_E(stxsihx, 0x1F, 0xD, 0x1D, 0, PPC_NONE, PPC2_ISA300),
21*139c1837SPaolo BonziniGEN_HANDLER_E(stxsiwx, 0x1F, 0xC, 0x04, 0, PPC_NONE, PPC2_VSX207),
22*139c1837SPaolo BonziniGEN_HANDLER_E(stxsspx, 0x1F, 0xC, 0x14, 0, PPC_NONE, PPC2_VSX207),
23*139c1837SPaolo BonziniGEN_HANDLER_E(stxvd2x, 0x1F, 0xC, 0x1E, 0, PPC_NONE, PPC2_VSX),
24*139c1837SPaolo BonziniGEN_HANDLER_E(stxvw4x, 0x1F, 0xC, 0x1C, 0, PPC_NONE, PPC2_VSX),
25*139c1837SPaolo BonziniGEN_HANDLER_E(stxvh8x, 0x1F, 0x0C, 0x1D, 0, PPC_NONE,  PPC2_ISA300),
26*139c1837SPaolo BonziniGEN_HANDLER_E(stxvb16x, 0x1F, 0x0C, 0x1F, 0, PPC_NONE, PPC2_ISA300),
27*139c1837SPaolo BonziniGEN_HANDLER_E(stxvx, 0x1F, 0x0C, 0x0C, 0, PPC_NONE, PPC2_ISA300),
28*139c1837SPaolo Bonzini#if defined(TARGET_PPC64)
29*139c1837SPaolo BonziniGEN_HANDLER_E(stxvl, 0x1F, 0x0D, 0x0C, 0, PPC_NONE, PPC2_ISA300),
30*139c1837SPaolo BonziniGEN_HANDLER_E(stxvll, 0x1F, 0x0D, 0x0D, 0, PPC_NONE, PPC2_ISA300),
31*139c1837SPaolo Bonzini#endif
32*139c1837SPaolo Bonzini
33*139c1837SPaolo BonziniGEN_HANDLER_E(mfvsrwz, 0x1F, 0x13, 0x03, 0x0000F800, PPC_NONE, PPC2_VSX207),
34*139c1837SPaolo BonziniGEN_HANDLER_E(mtvsrwa, 0x1F, 0x13, 0x06, 0x0000F800, PPC_NONE, PPC2_VSX207),
35*139c1837SPaolo BonziniGEN_HANDLER_E(mtvsrwz, 0x1F, 0x13, 0x07, 0x0000F800, PPC_NONE, PPC2_VSX207),
36*139c1837SPaolo Bonzini#if defined(TARGET_PPC64)
37*139c1837SPaolo BonziniGEN_HANDLER_E(mfvsrd, 0x1F, 0x13, 0x01, 0x0000F800, PPC_NONE, PPC2_VSX207),
38*139c1837SPaolo BonziniGEN_HANDLER_E(mtvsrd, 0x1F, 0x13, 0x05, 0x0000F800, PPC_NONE, PPC2_VSX207),
39*139c1837SPaolo BonziniGEN_HANDLER_E(mfvsrld, 0X1F, 0x13, 0x09, 0x0000F800, PPC_NONE, PPC2_ISA300),
40*139c1837SPaolo BonziniGEN_HANDLER_E(mtvsrdd, 0X1F, 0x13, 0x0D, 0x0, PPC_NONE, PPC2_ISA300),
41*139c1837SPaolo BonziniGEN_HANDLER_E(mtvsrws, 0x1F, 0x13, 0x0C, 0x0000F800, PPC_NONE, PPC2_ISA300),
42*139c1837SPaolo Bonzini#endif
43*139c1837SPaolo Bonzini
44*139c1837SPaolo Bonzini#define GEN_XX1FORM(name, opc2, opc3, fl2)                              \
45*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0, opc3, 0, PPC_NONE, fl2), \
46*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 1, opc3, 0, PPC_NONE, fl2)
47*139c1837SPaolo Bonzini
48*139c1837SPaolo Bonzini#define GEN_XX2FORM(name, opc2, opc3, fl2)                           \
49*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0, opc3, 0, PPC_NONE, fl2), \
50*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 1, opc3, 0, PPC_NONE, fl2)
51*139c1837SPaolo Bonzini
52*139c1837SPaolo Bonzini#define GEN_XX2FORM_EXT(name, opc2, opc3, fl2)                          \
53*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0, opc3, 0x00100000, PPC_NONE, fl2), \
54*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 1, opc3, 0x00100000, PPC_NONE, fl2)
55*139c1837SPaolo Bonzini
56*139c1837SPaolo Bonzini#define GEN_XX2FORM_EO(name, opc2, opc3, opc4, fl2)                          \
57*139c1837SPaolo BonziniGEN_HANDLER2_E_2(name, #name, 0x3C, opc2 | 0, opc3, opc4, 0, PPC_NONE, fl2), \
58*139c1837SPaolo BonziniGEN_HANDLER2_E_2(name, #name, 0x3C, opc2 | 1, opc3, opc4, 0, PPC_NONE, fl2)
59*139c1837SPaolo Bonzini
60*139c1837SPaolo Bonzini#define GEN_XX3FORM(name, opc2, opc3, fl2)                           \
61*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0, opc3, 0, PPC_NONE, fl2), \
62*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 1, opc3, 0, PPC_NONE, fl2), \
63*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 2, opc3, 0, PPC_NONE, fl2), \
64*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 3, opc3, 0, PPC_NONE, fl2)
65*139c1837SPaolo Bonzini
66*139c1837SPaolo Bonzini#define GEN_XX3FORM_NAME(name, opcname, opc2, opc3, fl2)               \
67*139c1837SPaolo BonziniGEN_HANDLER2_E(name, opcname, 0x3C, opc2 | 0, opc3, 0, PPC_NONE, fl2), \
68*139c1837SPaolo BonziniGEN_HANDLER2_E(name, opcname, 0x3C, opc2 | 1, opc3, 0, PPC_NONE, fl2), \
69*139c1837SPaolo BonziniGEN_HANDLER2_E(name, opcname, 0x3C, opc2 | 2, opc3, 0, PPC_NONE, fl2), \
70*139c1837SPaolo BonziniGEN_HANDLER2_E(name, opcname, 0x3C, opc2 | 3, opc3, 0, PPC_NONE, fl2)
71*139c1837SPaolo Bonzini
72*139c1837SPaolo Bonzini#define GEN_XX2IFORM(name, opc2, opc3, fl2)                           \
73*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0, opc3, 1, PPC_NONE, fl2), \
74*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 1, opc3, 1, PPC_NONE, fl2), \
75*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 2, opc3, 1, PPC_NONE, fl2), \
76*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 3, opc3, 1, PPC_NONE, fl2)
77*139c1837SPaolo Bonzini
78*139c1837SPaolo Bonzini#define GEN_XX3_RC_FORM(name, opc2, opc3, fl2)                          \
79*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x00, opc3 | 0x00, 0, PPC_NONE, fl2), \
80*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x01, opc3 | 0x00, 0, PPC_NONE, fl2), \
81*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x02, opc3 | 0x00, 0, PPC_NONE, fl2), \
82*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x03, opc3 | 0x00, 0, PPC_NONE, fl2), \
83*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x00, opc3 | 0x10, 0, PPC_NONE, fl2), \
84*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x01, opc3 | 0x10, 0, PPC_NONE, fl2), \
85*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x02, opc3 | 0x10, 0, PPC_NONE, fl2), \
86*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x03, opc3 | 0x10, 0, PPC_NONE, fl2)
87*139c1837SPaolo Bonzini
88*139c1837SPaolo Bonzini#define GEN_XX3FORM_DM(name, opc2, opc3) \
89*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
90*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
91*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
92*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
93*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
94*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
95*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
96*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
97*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
98*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
99*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
100*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
101*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x0C, 0, PPC_NONE, PPC2_VSX),\
102*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x0C, 0, PPC_NONE, PPC2_VSX),\
103*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x0C, 0, PPC_NONE, PPC2_VSX),\
104*139c1837SPaolo BonziniGEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x0C, 0, PPC_NONE, PPC2_VSX)
105*139c1837SPaolo Bonzini
106*139c1837SPaolo Bonzini#define GEN_VSX_XFORM_300(name, opc2, opc3, inval) \
107*139c1837SPaolo BonziniGEN_HANDLER_E(name, 0x3F, opc2, opc3, inval, PPC_NONE, PPC2_ISA300)
108*139c1837SPaolo Bonzini
109*139c1837SPaolo Bonzini#define GEN_VSX_XFORM_300_EO(name, opc2, opc3, opc4, inval)             \
110*139c1837SPaolo BonziniGEN_HANDLER_E_2(name, 0x3F, opc2, opc3, opc4, inval, PPC_NONE, PPC2_ISA300)
111*139c1837SPaolo Bonzini
112*139c1837SPaolo Bonzini#define GEN_VSX_Z23FORM_300(name, opc2, opc3, opc4, inval) \
113*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(name, opc2, opc3 | 0x00, opc4 | 0x0, inval), \
114*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(name, opc2, opc3 | 0x08, opc4 | 0x0, inval), \
115*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(name, opc2, opc3 | 0x10, opc4 | 0x0, inval), \
116*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(name, opc2, opc3 | 0x18, opc4 | 0x0, inval), \
117*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(name, opc2, opc3 | 0x00, opc4 | 0x1, inval), \
118*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(name, opc2, opc3 | 0x08, opc4 | 0x1, inval), \
119*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(name, opc2, opc3 | 0x10, opc4 | 0x1, inval), \
120*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(name, opc2, opc3 | 0x18, opc4 | 0x1, inval)
121*139c1837SPaolo Bonzini
122*139c1837SPaolo BonziniGEN_VSX_Z23FORM_300(xsrqpi, 0x05, 0x0, 0x0, 0x0),
123*139c1837SPaolo BonziniGEN_VSX_Z23FORM_300(xsrqpxp, 0x05, 0x1, 0x0, 0x0),
124*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(xssqrtqp, 0x04, 0x19, 0x1B, 0x0),
125*139c1837SPaolo BonziniGEN_VSX_XFORM_300(xssubqp, 0x04, 0x10, 0x0),
126*139c1837SPaolo Bonzini
127*139c1837SPaolo BonziniGEN_XX2FORM(xsabsdp, 0x12, 0x15, PPC2_VSX),
128*139c1837SPaolo BonziniGEN_XX2FORM(xsnabsdp, 0x12, 0x16, PPC2_VSX),
129*139c1837SPaolo BonziniGEN_XX2FORM(xsnegdp, 0x12, 0x17, PPC2_VSX),
130*139c1837SPaolo BonziniGEN_XX3FORM(xscpsgndp, 0x00, 0x16, PPC2_VSX),
131*139c1837SPaolo Bonzini
132*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(xsabsqp, 0x04, 0x19, 0x00, 0x00000001),
133*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(xsnabsqp, 0x04, 0x19, 0x08, 0x00000001),
134*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(xsnegqp, 0x04, 0x19, 0x10, 0x00000001),
135*139c1837SPaolo BonziniGEN_VSX_XFORM_300(xscpsgnqp, 0x04, 0x03, 0x00000001),
136*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(xscvdpqp, 0x04, 0x1A, 0x16, 0x00000001),
137*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(xscvqpdp, 0x04, 0x1A, 0x14, 0x0),
138*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(xscvqpsdz, 0x04, 0x1A, 0x19, 0x00000001),
139*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(xscvqpswz, 0x04, 0x1A, 0x09, 0x00000001),
140*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(xscvqpudz, 0x04, 0x1A, 0x11, 0x00000001),
141*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(xscvqpuwz, 0x04, 0x1A, 0x01, 0x00000001),
142*139c1837SPaolo Bonzini
143*139c1837SPaolo Bonzini#ifdef TARGET_PPC64
144*139c1837SPaolo BonziniGEN_XX2FORM_EO(xsxexpdp, 0x16, 0x15, 0x00, PPC2_ISA300),
145*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(xsxexpqp, 0x04, 0x19, 0x02, 0x00000001),
146*139c1837SPaolo BonziniGEN_XX2FORM_EO(xsxsigdp, 0x16, 0x15, 0x01, PPC2_ISA300),
147*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(xsxsigqp, 0x04, 0x19, 0x12, 0x00000001),
148*139c1837SPaolo BonziniGEN_HANDLER_E(xsiexpdp, 0x3C, 0x16, 0x1C, 0, PPC_NONE, PPC2_ISA300),
149*139c1837SPaolo BonziniGEN_VSX_XFORM_300(xsiexpqp, 0x4, 0x1B, 0x00000001),
150*139c1837SPaolo Bonzini#endif
151*139c1837SPaolo Bonzini
152*139c1837SPaolo BonziniGEN_XX2FORM(xststdcdp, 0x14, 0x16, PPC2_ISA300),
153*139c1837SPaolo BonziniGEN_XX2FORM(xststdcsp, 0x14, 0x12, PPC2_ISA300),
154*139c1837SPaolo BonziniGEN_VSX_XFORM_300(xststdcqp, 0x04, 0x16, 0x00000001),
155*139c1837SPaolo Bonzini
156*139c1837SPaolo BonziniGEN_XX3FORM(xviexpsp, 0x00, 0x1B, PPC2_ISA300),
157*139c1837SPaolo BonziniGEN_XX3FORM(xviexpdp, 0x00, 0x1F, PPC2_ISA300),
158*139c1837SPaolo BonziniGEN_XX2FORM_EO(xvxexpdp, 0x16, 0x1D, 0x00, PPC2_ISA300),
159*139c1837SPaolo BonziniGEN_XX2FORM_EO(xvxsigdp, 0x16, 0x1D, 0x01, PPC2_ISA300),
160*139c1837SPaolo BonziniGEN_XX2FORM_EO(xvxexpsp, 0x16, 0x1D, 0x08, PPC2_ISA300),
161*139c1837SPaolo BonziniGEN_XX2FORM_EO(xvxsigsp, 0x16, 0x1D, 0x09, PPC2_ISA300),
162*139c1837SPaolo Bonzini
163*139c1837SPaolo Bonzini/* DCMX  =  bit[25] << 6 | bit[29] << 5 | bit[11:15] */
164*139c1837SPaolo Bonzini#define GEN_XX2FORM_DCMX(name, opc2, opc3, fl2) \
165*139c1837SPaolo BonziniGEN_XX3FORM(name, opc2, opc3 | 0, fl2),         \
166*139c1837SPaolo BonziniGEN_XX3FORM(name, opc2, opc3 | 1, fl2)
167*139c1837SPaolo Bonzini
168*139c1837SPaolo BonziniGEN_XX2FORM_DCMX(xvtstdcdp, 0x14, 0x1E, PPC2_ISA300),
169*139c1837SPaolo BonziniGEN_XX2FORM_DCMX(xvtstdcsp, 0x14, 0x1A, PPC2_ISA300),
170*139c1837SPaolo Bonzini
171*139c1837SPaolo BonziniGEN_XX2FORM(xvabsdp, 0x12, 0x1D, PPC2_VSX),
172*139c1837SPaolo BonziniGEN_XX2FORM(xvnabsdp, 0x12, 0x1E, PPC2_VSX),
173*139c1837SPaolo BonziniGEN_XX2FORM(xvnegdp, 0x12, 0x1F, PPC2_VSX),
174*139c1837SPaolo BonziniGEN_XX3FORM(xvcpsgndp, 0x00, 0x1E, PPC2_VSX),
175*139c1837SPaolo BonziniGEN_XX2FORM(xvabssp, 0x12, 0x19, PPC2_VSX),
176*139c1837SPaolo BonziniGEN_XX2FORM(xvnabssp, 0x12, 0x1A, PPC2_VSX),
177*139c1837SPaolo BonziniGEN_XX2FORM(xvnegsp, 0x12, 0x1B, PPC2_VSX),
178*139c1837SPaolo BonziniGEN_XX3FORM(xvcpsgnsp, 0x00, 0x1A, PPC2_VSX),
179*139c1837SPaolo Bonzini
180*139c1837SPaolo BonziniGEN_XX3FORM(xsadddp, 0x00, 0x04, PPC2_VSX),
181*139c1837SPaolo BonziniGEN_VSX_XFORM_300(xsaddqp, 0x04, 0x00, 0x0),
182*139c1837SPaolo BonziniGEN_XX3FORM(xssubdp, 0x00, 0x05, PPC2_VSX),
183*139c1837SPaolo BonziniGEN_XX3FORM(xsmuldp, 0x00, 0x06, PPC2_VSX),
184*139c1837SPaolo BonziniGEN_VSX_XFORM_300(xsmulqp, 0x04, 0x01, 0x0),
185*139c1837SPaolo BonziniGEN_XX3FORM(xsdivdp, 0x00, 0x07, PPC2_VSX),
186*139c1837SPaolo BonziniGEN_XX2FORM(xsredp,  0x14, 0x05, PPC2_VSX),
187*139c1837SPaolo BonziniGEN_XX2FORM(xssqrtdp,  0x16, 0x04, PPC2_VSX),
188*139c1837SPaolo BonziniGEN_XX2FORM(xsrsqrtedp,  0x14, 0x04, PPC2_VSX),
189*139c1837SPaolo BonziniGEN_XX3FORM(xstdivdp,  0x14, 0x07, PPC2_VSX),
190*139c1837SPaolo BonziniGEN_XX2FORM(xstsqrtdp,  0x14, 0x06, PPC2_VSX),
191*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xsmadddp, "xsmaddadp", 0x04, 0x04, PPC2_VSX),
192*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xsmadddp, "xsmaddmdp", 0x04, 0x05, PPC2_VSX),
193*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xsmsubdp, "xsmsubadp", 0x04, 0x06, PPC2_VSX),
194*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xsmsubdp, "xsmsubmdp", 0x04, 0x07, PPC2_VSX),
195*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xsnmadddp, "xsnmaddadp", 0x04, 0x14, PPC2_VSX),
196*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xsnmadddp, "xsnmaddmdp", 0x04, 0x15, PPC2_VSX),
197*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xsnmsubdp, "xsnmsubadp", 0x04, 0x16, PPC2_VSX),
198*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xsnmsubdp, "xsnmsubmdp", 0x04, 0x17, PPC2_VSX),
199*139c1837SPaolo BonziniGEN_XX3FORM(xscmpeqdp, 0x0C, 0x00, PPC2_ISA300),
200*139c1837SPaolo BonziniGEN_XX3FORM(xscmpgtdp, 0x0C, 0x01, PPC2_ISA300),
201*139c1837SPaolo BonziniGEN_XX3FORM(xscmpgedp, 0x0C, 0x02, PPC2_ISA300),
202*139c1837SPaolo BonziniGEN_XX3FORM(xscmpnedp, 0x0C, 0x03, PPC2_ISA300),
203*139c1837SPaolo BonziniGEN_XX3FORM(xscmpexpdp, 0x0C, 0x07, PPC2_ISA300),
204*139c1837SPaolo BonziniGEN_VSX_XFORM_300(xscmpexpqp, 0x04, 0x05, 0x00600001),
205*139c1837SPaolo BonziniGEN_XX2IFORM(xscmpodp,  0x0C, 0x05, PPC2_VSX),
206*139c1837SPaolo BonziniGEN_XX2IFORM(xscmpudp,  0x0C, 0x04, PPC2_VSX),
207*139c1837SPaolo BonziniGEN_VSX_XFORM_300(xscmpoqp, 0x04, 0x04, 0x00600001),
208*139c1837SPaolo BonziniGEN_VSX_XFORM_300(xscmpuqp, 0x04, 0x14, 0x00600001),
209*139c1837SPaolo BonziniGEN_XX3FORM(xsmaxdp, 0x00, 0x14, PPC2_VSX),
210*139c1837SPaolo BonziniGEN_XX3FORM(xsmindp, 0x00, 0x15, PPC2_VSX),
211*139c1837SPaolo BonziniGEN_XX3FORM(xsmaxcdp, 0x00, 0x10, PPC2_ISA300),
212*139c1837SPaolo BonziniGEN_XX3FORM(xsmincdp, 0x00, 0x11, PPC2_ISA300),
213*139c1837SPaolo BonziniGEN_XX3FORM(xsmaxjdp, 0x00, 0x12, PPC2_ISA300),
214*139c1837SPaolo BonziniGEN_XX3FORM(xsminjdp, 0x00, 0x13, PPC2_ISA300),
215*139c1837SPaolo BonziniGEN_XX2FORM_EO(xscvdphp, 0x16, 0x15, 0x11, PPC2_ISA300),
216*139c1837SPaolo BonziniGEN_XX2FORM(xscvdpsp, 0x12, 0x10, PPC2_VSX),
217*139c1837SPaolo BonziniGEN_XX2FORM(xscvdpspn, 0x16, 0x10, PPC2_VSX207),
218*139c1837SPaolo BonziniGEN_XX2FORM_EO(xscvhpdp, 0x16, 0x15, 0x10, PPC2_ISA300),
219*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(xscvsdqp, 0x04, 0x1A, 0x0A, 0x00000001),
220*139c1837SPaolo BonziniGEN_XX2FORM(xscvspdp, 0x12, 0x14, PPC2_VSX),
221*139c1837SPaolo BonziniGEN_XX2FORM(xscvspdpn, 0x16, 0x14, PPC2_VSX207),
222*139c1837SPaolo BonziniGEN_XX2FORM(xscvdpsxds, 0x10, 0x15, PPC2_VSX),
223*139c1837SPaolo BonziniGEN_XX2FORM(xscvdpsxws, 0x10, 0x05, PPC2_VSX),
224*139c1837SPaolo BonziniGEN_XX2FORM(xscvdpuxds, 0x10, 0x14, PPC2_VSX),
225*139c1837SPaolo BonziniGEN_XX2FORM(xscvdpuxws, 0x10, 0x04, PPC2_VSX),
226*139c1837SPaolo BonziniGEN_XX2FORM(xscvsxddp, 0x10, 0x17, PPC2_VSX),
227*139c1837SPaolo BonziniGEN_VSX_XFORM_300_EO(xscvudqp, 0x04, 0x1A, 0x02, 0x00000001),
228*139c1837SPaolo BonziniGEN_XX2FORM(xscvuxddp, 0x10, 0x16, PPC2_VSX),
229*139c1837SPaolo BonziniGEN_XX2FORM(xsrdpi, 0x12, 0x04, PPC2_VSX),
230*139c1837SPaolo BonziniGEN_XX2FORM(xsrdpic, 0x16, 0x06, PPC2_VSX),
231*139c1837SPaolo BonziniGEN_XX2FORM(xsrdpim, 0x12, 0x07, PPC2_VSX),
232*139c1837SPaolo BonziniGEN_XX2FORM(xsrdpip, 0x12, 0x06, PPC2_VSX),
233*139c1837SPaolo BonziniGEN_XX2FORM(xsrdpiz, 0x12, 0x05, PPC2_VSX),
234*139c1837SPaolo Bonzini
235*139c1837SPaolo BonziniGEN_XX3FORM(xsaddsp, 0x00, 0x00, PPC2_VSX207),
236*139c1837SPaolo BonziniGEN_XX3FORM(xssubsp, 0x00, 0x01, PPC2_VSX207),
237*139c1837SPaolo BonziniGEN_XX3FORM(xsmulsp, 0x00, 0x02, PPC2_VSX207),
238*139c1837SPaolo BonziniGEN_XX3FORM(xsdivsp, 0x00, 0x03, PPC2_VSX207),
239*139c1837SPaolo BonziniGEN_VSX_XFORM_300(xsdivqp, 0x04, 0x11, 0x0),
240*139c1837SPaolo BonziniGEN_XX2FORM(xsresp,  0x14, 0x01, PPC2_VSX207),
241*139c1837SPaolo BonziniGEN_XX2FORM(xsrsp, 0x12, 0x11, PPC2_VSX207),
242*139c1837SPaolo BonziniGEN_XX2FORM(xssqrtsp,  0x16, 0x00, PPC2_VSX207),
243*139c1837SPaolo BonziniGEN_XX2FORM(xsrsqrtesp,  0x14, 0x00, PPC2_VSX207),
244*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xsmaddsp, "xsmaddasp", 0x04, 0x00, PPC2_VSX207),
245*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xsmaddsp, "xsmaddmsp", 0x04, 0x01, PPC2_VSX207),
246*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xsmsubsp, "xsmsubasp", 0x04, 0x02, PPC2_VSX207),
247*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xsmsubsp, "xsmsubmsp", 0x04, 0x03, PPC2_VSX207),
248*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xsnmaddsp, "xsnmaddasp", 0x04, 0x10, PPC2_VSX207),
249*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xsnmaddsp, "xsnmaddmsp", 0x04, 0x11, PPC2_VSX207),
250*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xsnmsubsp, "xsnmsubasp", 0x04, 0x12, PPC2_VSX207),
251*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xsnmsubsp, "xsnmsubmsp", 0x04, 0x13, PPC2_VSX207),
252*139c1837SPaolo BonziniGEN_XX2FORM(xscvsxdsp, 0x10, 0x13, PPC2_VSX207),
253*139c1837SPaolo BonziniGEN_XX2FORM(xscvuxdsp, 0x10, 0x12, PPC2_VSX207),
254*139c1837SPaolo Bonzini
255*139c1837SPaolo BonziniGEN_XX3FORM(xvadddp, 0x00, 0x0C, PPC2_VSX),
256*139c1837SPaolo BonziniGEN_XX3FORM(xvsubdp, 0x00, 0x0D, PPC2_VSX),
257*139c1837SPaolo BonziniGEN_XX3FORM(xvmuldp, 0x00, 0x0E, PPC2_VSX),
258*139c1837SPaolo BonziniGEN_XX3FORM(xvdivdp, 0x00, 0x0F, PPC2_VSX),
259*139c1837SPaolo BonziniGEN_XX2FORM(xvredp,  0x14, 0x0D, PPC2_VSX),
260*139c1837SPaolo BonziniGEN_XX2FORM(xvsqrtdp,  0x16, 0x0C, PPC2_VSX),
261*139c1837SPaolo BonziniGEN_XX2FORM(xvrsqrtedp,  0x14, 0x0C, PPC2_VSX),
262*139c1837SPaolo BonziniGEN_XX3FORM(xvtdivdp, 0x14, 0x0F, PPC2_VSX),
263*139c1837SPaolo BonziniGEN_XX2FORM(xvtsqrtdp, 0x14, 0x0E, PPC2_VSX),
264*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xvmadddp, "xvmaddadp", 0x04, 0x0C, PPC2_VSX),
265*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xvmadddp, "xvmaddmdp", 0x04, 0x0D, PPC2_VSX),
266*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xvmsubdp, "xvmsubadp", 0x04, 0x0E, PPC2_VSX),
267*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xvmsubdp, "xvmsubmdp", 0x04, 0x0F, PPC2_VSX),
268*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xvnmadddp, "xvnmaddadp", 0x04, 0x1C, PPC2_VSX),
269*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xvnmadddp, "xvnmaddmdp", 0x04, 0x1D, PPC2_VSX),
270*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xvnmsubdp, "xvnmsubadp", 0x04, 0x1E, PPC2_VSX),
271*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xvnmsubdp, "xvnmsubmdp", 0x04, 0x1F, PPC2_VSX),
272*139c1837SPaolo BonziniGEN_XX3FORM(xvmaxdp, 0x00, 0x1C, PPC2_VSX),
273*139c1837SPaolo BonziniGEN_XX3FORM(xvmindp, 0x00, 0x1D, PPC2_VSX),
274*139c1837SPaolo BonziniGEN_XX3_RC_FORM(xvcmpeqdp, 0x0C, 0x0C, PPC2_VSX),
275*139c1837SPaolo BonziniGEN_XX3_RC_FORM(xvcmpgtdp, 0x0C, 0x0D, PPC2_VSX),
276*139c1837SPaolo BonziniGEN_XX3_RC_FORM(xvcmpgedp, 0x0C, 0x0E, PPC2_VSX),
277*139c1837SPaolo BonziniGEN_XX3_RC_FORM(xvcmpnedp, 0x0C, 0x0F, PPC2_ISA300),
278*139c1837SPaolo BonziniGEN_XX2FORM(xvcvdpsp, 0x12, 0x18, PPC2_VSX),
279*139c1837SPaolo BonziniGEN_XX2FORM(xvcvdpsxds, 0x10, 0x1D, PPC2_VSX),
280*139c1837SPaolo BonziniGEN_XX2FORM(xvcvdpsxws, 0x10, 0x0D, PPC2_VSX),
281*139c1837SPaolo BonziniGEN_XX2FORM(xvcvdpuxds, 0x10, 0x1C, PPC2_VSX),
282*139c1837SPaolo BonziniGEN_XX2FORM(xvcvdpuxws, 0x10, 0x0C, PPC2_VSX),
283*139c1837SPaolo BonziniGEN_XX2FORM(xvcvsxddp, 0x10, 0x1F, PPC2_VSX),
284*139c1837SPaolo BonziniGEN_XX2FORM(xvcvuxddp, 0x10, 0x1E, PPC2_VSX),
285*139c1837SPaolo BonziniGEN_XX2FORM(xvcvsxwdp, 0x10, 0x0F, PPC2_VSX),
286*139c1837SPaolo BonziniGEN_XX2FORM(xvcvuxwdp, 0x10, 0x0E, PPC2_VSX),
287*139c1837SPaolo BonziniGEN_XX2FORM(xvrdpi, 0x12, 0x0C, PPC2_VSX),
288*139c1837SPaolo BonziniGEN_XX2FORM(xvrdpic, 0x16, 0x0E, PPC2_VSX),
289*139c1837SPaolo BonziniGEN_XX2FORM(xvrdpim, 0x12, 0x0F, PPC2_VSX),
290*139c1837SPaolo BonziniGEN_XX2FORM(xvrdpip, 0x12, 0x0E, PPC2_VSX),
291*139c1837SPaolo BonziniGEN_XX2FORM(xvrdpiz, 0x12, 0x0D, PPC2_VSX),
292*139c1837SPaolo Bonzini
293*139c1837SPaolo BonziniGEN_XX3FORM(xvaddsp, 0x00, 0x08, PPC2_VSX),
294*139c1837SPaolo BonziniGEN_XX3FORM(xvsubsp, 0x00, 0x09, PPC2_VSX),
295*139c1837SPaolo BonziniGEN_XX3FORM(xvmulsp, 0x00, 0x0A, PPC2_VSX),
296*139c1837SPaolo BonziniGEN_XX3FORM(xvdivsp, 0x00, 0x0B, PPC2_VSX),
297*139c1837SPaolo BonziniGEN_XX2FORM(xvresp, 0x14, 0x09, PPC2_VSX),
298*139c1837SPaolo BonziniGEN_XX2FORM(xvsqrtsp, 0x16, 0x08, PPC2_VSX),
299*139c1837SPaolo BonziniGEN_XX2FORM(xvrsqrtesp, 0x14, 0x08, PPC2_VSX),
300*139c1837SPaolo BonziniGEN_XX3FORM(xvtdivsp, 0x14, 0x0B, PPC2_VSX),
301*139c1837SPaolo BonziniGEN_XX2FORM(xvtsqrtsp, 0x14, 0x0A, PPC2_VSX),
302*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xvmaddsp, "xvmaddasp", 0x04, 0x08, PPC2_VSX),
303*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xvmaddsp, "xvmaddmsp", 0x04, 0x09, PPC2_VSX),
304*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xvmsubsp, "xvmsubasp", 0x04, 0x0A, PPC2_VSX),
305*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xvmsubsp, "xvmsubmsp", 0x04, 0x0B, PPC2_VSX),
306*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xvnmaddsp, "xvnmaddasp", 0x04, 0x18, PPC2_VSX),
307*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xvnmaddsp, "xvnmaddmsp", 0x04, 0x19, PPC2_VSX),
308*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xvnmsubsp, "xvnmsubasp", 0x04, 0x1A, PPC2_VSX),
309*139c1837SPaolo BonziniGEN_XX3FORM_NAME(xvnmsubsp, "xvnmsubmsp", 0x04, 0x1B, PPC2_VSX),
310*139c1837SPaolo BonziniGEN_XX3FORM(xvmaxsp, 0x00, 0x18, PPC2_VSX),
311*139c1837SPaolo BonziniGEN_XX3FORM(xvminsp, 0x00, 0x19, PPC2_VSX),
312*139c1837SPaolo BonziniGEN_XX3_RC_FORM(xvcmpeqsp, 0x0C, 0x08, PPC2_VSX),
313*139c1837SPaolo BonziniGEN_XX3_RC_FORM(xvcmpgtsp, 0x0C, 0x09, PPC2_VSX),
314*139c1837SPaolo BonziniGEN_XX3_RC_FORM(xvcmpgesp, 0x0C, 0x0A, PPC2_VSX),
315*139c1837SPaolo BonziniGEN_XX3_RC_FORM(xvcmpnesp, 0x0C, 0x0B, PPC2_ISA300),
316*139c1837SPaolo BonziniGEN_XX2FORM(xvcvspdp, 0x12, 0x1C, PPC2_VSX),
317*139c1837SPaolo BonziniGEN_XX2FORM(xvcvspsxds, 0x10, 0x19, PPC2_VSX),
318*139c1837SPaolo BonziniGEN_XX2FORM(xvcvspsxws, 0x10, 0x09, PPC2_VSX),
319*139c1837SPaolo BonziniGEN_XX2FORM(xvcvspuxds, 0x10, 0x18, PPC2_VSX),
320*139c1837SPaolo BonziniGEN_XX2FORM(xvcvspuxws, 0x10, 0x08, PPC2_VSX),
321*139c1837SPaolo BonziniGEN_XX2FORM(xvcvsxdsp, 0x10, 0x1B, PPC2_VSX),
322*139c1837SPaolo BonziniGEN_XX2FORM(xvcvuxdsp, 0x10, 0x1A, PPC2_VSX),
323*139c1837SPaolo BonziniGEN_XX2FORM(xvcvsxwsp, 0x10, 0x0B, PPC2_VSX),
324*139c1837SPaolo BonziniGEN_XX2FORM(xvcvuxwsp, 0x10, 0x0A, PPC2_VSX),
325*139c1837SPaolo BonziniGEN_XX2FORM(xvrspi, 0x12, 0x08, PPC2_VSX),
326*139c1837SPaolo BonziniGEN_XX2FORM(xvrspic, 0x16, 0x0A, PPC2_VSX),
327*139c1837SPaolo BonziniGEN_XX2FORM(xvrspim, 0x12, 0x0B, PPC2_VSX),
328*139c1837SPaolo BonziniGEN_XX2FORM(xvrspip, 0x12, 0x0A, PPC2_VSX),
329*139c1837SPaolo BonziniGEN_XX2FORM(xvrspiz, 0x12, 0x09, PPC2_VSX),
330*139c1837SPaolo BonziniGEN_XX2FORM_EO(xxbrh, 0x16, 0x1D, 0x07, PPC2_ISA300),
331*139c1837SPaolo BonziniGEN_XX2FORM_EO(xxbrw, 0x16, 0x1D, 0x0F, PPC2_ISA300),
332*139c1837SPaolo BonziniGEN_XX2FORM_EO(xxbrd, 0x16, 0x1D, 0x17, PPC2_ISA300),
333*139c1837SPaolo BonziniGEN_XX2FORM_EO(xvcvhpsp, 0x16, 0x1D, 0x18, PPC2_ISA300),
334*139c1837SPaolo BonziniGEN_XX2FORM_EO(xvcvsphp, 0x16, 0x1D, 0x19, PPC2_ISA300),
335*139c1837SPaolo BonziniGEN_XX2FORM_EO(xxbrq, 0x16, 0x1D, 0x1F, PPC2_ISA300),
336*139c1837SPaolo Bonzini
337*139c1837SPaolo Bonzini#define VSX_LOGICAL(name, opc2, opc3, fl2) \
338*139c1837SPaolo BonziniGEN_XX3FORM(name, opc2, opc3, fl2)
339*139c1837SPaolo Bonzini
340*139c1837SPaolo BonziniVSX_LOGICAL(xxland, 0x8, 0x10, PPC2_VSX),
341*139c1837SPaolo BonziniVSX_LOGICAL(xxlandc, 0x8, 0x11, PPC2_VSX),
342*139c1837SPaolo BonziniVSX_LOGICAL(xxlor, 0x8, 0x12, PPC2_VSX),
343*139c1837SPaolo BonziniVSX_LOGICAL(xxlxor, 0x8, 0x13, PPC2_VSX),
344*139c1837SPaolo BonziniVSX_LOGICAL(xxlnor, 0x8, 0x14, PPC2_VSX),
345*139c1837SPaolo BonziniVSX_LOGICAL(xxleqv, 0x8, 0x17, PPC2_VSX207),
346*139c1837SPaolo BonziniVSX_LOGICAL(xxlnand, 0x8, 0x16, PPC2_VSX207),
347*139c1837SPaolo BonziniVSX_LOGICAL(xxlorc, 0x8, 0x15, PPC2_VSX207),
348*139c1837SPaolo BonziniGEN_XX3FORM(xxmrghw, 0x08, 0x02, PPC2_VSX),
349*139c1837SPaolo BonziniGEN_XX3FORM(xxmrglw, 0x08, 0x06, PPC2_VSX),
350*139c1837SPaolo BonziniGEN_XX3FORM(xxperm, 0x08, 0x03, PPC2_ISA300),
351*139c1837SPaolo BonziniGEN_XX3FORM(xxpermr, 0x08, 0x07, PPC2_ISA300),
352*139c1837SPaolo BonziniGEN_XX2FORM(xxspltw, 0x08, 0x0A, PPC2_VSX),
353*139c1837SPaolo BonziniGEN_XX1FORM(xxspltib, 0x08, 0x0B, PPC2_ISA300),
354*139c1837SPaolo BonziniGEN_XX3FORM_DM(xxsldwi, 0x08, 0x00),
355*139c1837SPaolo BonziniGEN_XX2FORM_EXT(xxextractuw, 0x0A, 0x0A, PPC2_ISA300),
356*139c1837SPaolo BonziniGEN_XX2FORM_EXT(xxinsertw, 0x0A, 0x0B, PPC2_ISA300),
357*139c1837SPaolo Bonzini
358*139c1837SPaolo Bonzini#define GEN_XXSEL_ROW(opc3) \
359*139c1837SPaolo BonziniGEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x18, opc3, 0, PPC_NONE, PPC2_VSX), \
360*139c1837SPaolo BonziniGEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x19, opc3, 0, PPC_NONE, PPC2_VSX), \
361*139c1837SPaolo BonziniGEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x1A, opc3, 0, PPC_NONE, PPC2_VSX), \
362*139c1837SPaolo BonziniGEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x1B, opc3, 0, PPC_NONE, PPC2_VSX), \
363*139c1837SPaolo BonziniGEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x1C, opc3, 0, PPC_NONE, PPC2_VSX), \
364*139c1837SPaolo BonziniGEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x1D, opc3, 0, PPC_NONE, PPC2_VSX), \
365*139c1837SPaolo BonziniGEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x1E, opc3, 0, PPC_NONE, PPC2_VSX), \
366*139c1837SPaolo BonziniGEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x1F, opc3, 0, PPC_NONE, PPC2_VSX), \
367*139c1837SPaolo Bonzini
368*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x00)
369*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x01)
370*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x02)
371*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x03)
372*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x04)
373*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x05)
374*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x06)
375*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x07)
376*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x08)
377*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x09)
378*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x0A)
379*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x0B)
380*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x0C)
381*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x0D)
382*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x0E)
383*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x0F)
384*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x10)
385*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x11)
386*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x12)
387*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x13)
388*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x14)
389*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x15)
390*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x16)
391*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x17)
392*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x18)
393*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x19)
394*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x1A)
395*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x1B)
396*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x1C)
397*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x1D)
398*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x1E)
399*139c1837SPaolo BonziniGEN_XXSEL_ROW(0x1F)
400*139c1837SPaolo Bonzini
401*139c1837SPaolo BonziniGEN_XX3FORM_DM(xxpermdi, 0x08, 0x01),
402