]> git.proxmox.com Git - mirror_qemu.git/blame - target-ppc/translate/vsx-ops.c
ppc: Move VSX ops out of translate.c
[mirror_qemu.git] / target-ppc / translate / vsx-ops.c
CommitLineData
3014427a
BH
1GEN_HANDLER_E(lxsdx, 0x1F, 0x0C, 0x12, 0, PPC_NONE, PPC2_VSX),
2GEN_HANDLER_E(lxsiwax, 0x1F, 0x0C, 0x02, 0, PPC_NONE, PPC2_VSX207),
3GEN_HANDLER_E(lxsiwzx, 0x1F, 0x0C, 0x00, 0, PPC_NONE, PPC2_VSX207),
4GEN_HANDLER_E(lxsspx, 0x1F, 0x0C, 0x10, 0, PPC_NONE, PPC2_VSX207),
5GEN_HANDLER_E(lxvd2x, 0x1F, 0x0C, 0x1A, 0, PPC_NONE, PPC2_VSX),
6GEN_HANDLER_E(lxvdsx, 0x1F, 0x0C, 0x0A, 0, PPC_NONE, PPC2_VSX),
7GEN_HANDLER_E(lxvw4x, 0x1F, 0x0C, 0x18, 0, PPC_NONE, PPC2_VSX),
8
9GEN_HANDLER_E(stxsdx, 0x1F, 0xC, 0x16, 0, PPC_NONE, PPC2_VSX),
10GEN_HANDLER_E(stxsiwx, 0x1F, 0xC, 0x04, 0, PPC_NONE, PPC2_VSX207),
11GEN_HANDLER_E(stxsspx, 0x1F, 0xC, 0x14, 0, PPC_NONE, PPC2_VSX207),
12GEN_HANDLER_E(stxvd2x, 0x1F, 0xC, 0x1E, 0, PPC_NONE, PPC2_VSX),
13GEN_HANDLER_E(stxvw4x, 0x1F, 0xC, 0x1C, 0, PPC_NONE, PPC2_VSX),
14
15GEN_HANDLER_E(mfvsrwz, 0x1F, 0x13, 0x03, 0x0000F800, PPC_NONE, PPC2_VSX207),
16GEN_HANDLER_E(mtvsrwa, 0x1F, 0x13, 0x06, 0x0000F800, PPC_NONE, PPC2_VSX207),
17GEN_HANDLER_E(mtvsrwz, 0x1F, 0x13, 0x07, 0x0000F800, PPC_NONE, PPC2_VSX207),
18#if defined(TARGET_PPC64)
19GEN_HANDLER_E(mfvsrd, 0x1F, 0x13, 0x01, 0x0000F800, PPC_NONE, PPC2_VSX207),
20GEN_HANDLER_E(mtvsrd, 0x1F, 0x13, 0x05, 0x0000F800, PPC_NONE, PPC2_VSX207),
21#endif
22
23#define GEN_XX2FORM(name, opc2, opc3, fl2) \
24GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0, opc3, 0, PPC_NONE, fl2), \
25GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 1, opc3, 0, PPC_NONE, fl2)
26
27#define GEN_XX3FORM(name, opc2, opc3, fl2) \
28GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0, opc3, 0, PPC_NONE, fl2), \
29GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 1, opc3, 0, PPC_NONE, fl2), \
30GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 2, opc3, 0, PPC_NONE, fl2), \
31GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 3, opc3, 0, PPC_NONE, fl2)
32
33#define GEN_XX2IFORM(name, opc2, opc3, fl2) \
34GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0, opc3, 1, PPC_NONE, fl2), \
35GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 1, opc3, 1, PPC_NONE, fl2), \
36GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 2, opc3, 1, PPC_NONE, fl2), \
37GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 3, opc3, 1, PPC_NONE, fl2)
38
39#define GEN_XX3_RC_FORM(name, opc2, opc3, fl2) \
40GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x00, opc3 | 0x00, 0, PPC_NONE, fl2), \
41GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x01, opc3 | 0x00, 0, PPC_NONE, fl2), \
42GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x02, opc3 | 0x00, 0, PPC_NONE, fl2), \
43GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x03, opc3 | 0x00, 0, PPC_NONE, fl2), \
44GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x00, opc3 | 0x10, 0, PPC_NONE, fl2), \
45GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x01, opc3 | 0x10, 0, PPC_NONE, fl2), \
46GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x02, opc3 | 0x10, 0, PPC_NONE, fl2), \
47GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x03, opc3 | 0x10, 0, PPC_NONE, fl2)
48
49#define GEN_XX3FORM_DM(name, opc2, opc3) \
50GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
51GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
52GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
53GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
54GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
55GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
56GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
57GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
58GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
59GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
60GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
61GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
62GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x0C, 0, PPC_NONE, PPC2_VSX),\
63GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x0C, 0, PPC_NONE, PPC2_VSX),\
64GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x0C, 0, PPC_NONE, PPC2_VSX),\
65GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x0C, 0, PPC_NONE, PPC2_VSX)
66
67GEN_XX2FORM(xsabsdp, 0x12, 0x15, PPC2_VSX),
68GEN_XX2FORM(xsnabsdp, 0x12, 0x16, PPC2_VSX),
69GEN_XX2FORM(xsnegdp, 0x12, 0x17, PPC2_VSX),
70GEN_XX3FORM(xscpsgndp, 0x00, 0x16, PPC2_VSX),
71
72GEN_XX2FORM(xvabsdp, 0x12, 0x1D, PPC2_VSX),
73GEN_XX2FORM(xvnabsdp, 0x12, 0x1E, PPC2_VSX),
74GEN_XX2FORM(xvnegdp, 0x12, 0x1F, PPC2_VSX),
75GEN_XX3FORM(xvcpsgndp, 0x00, 0x1E, PPC2_VSX),
76GEN_XX2FORM(xvabssp, 0x12, 0x19, PPC2_VSX),
77GEN_XX2FORM(xvnabssp, 0x12, 0x1A, PPC2_VSX),
78GEN_XX2FORM(xvnegsp, 0x12, 0x1B, PPC2_VSX),
79GEN_XX3FORM(xvcpsgnsp, 0x00, 0x1A, PPC2_VSX),
80
81GEN_XX3FORM(xsadddp, 0x00, 0x04, PPC2_VSX),
82GEN_XX3FORM(xssubdp, 0x00, 0x05, PPC2_VSX),
83GEN_XX3FORM(xsmuldp, 0x00, 0x06, PPC2_VSX),
84GEN_XX3FORM(xsdivdp, 0x00, 0x07, PPC2_VSX),
85GEN_XX2FORM(xsredp, 0x14, 0x05, PPC2_VSX),
86GEN_XX2FORM(xssqrtdp, 0x16, 0x04, PPC2_VSX),
87GEN_XX2FORM(xsrsqrtedp, 0x14, 0x04, PPC2_VSX),
88GEN_XX3FORM(xstdivdp, 0x14, 0x07, PPC2_VSX),
89GEN_XX2FORM(xstsqrtdp, 0x14, 0x06, PPC2_VSX),
90GEN_XX3FORM(xsmaddadp, 0x04, 0x04, PPC2_VSX),
91GEN_XX3FORM(xsmaddmdp, 0x04, 0x05, PPC2_VSX),
92GEN_XX3FORM(xsmsubadp, 0x04, 0x06, PPC2_VSX),
93GEN_XX3FORM(xsmsubmdp, 0x04, 0x07, PPC2_VSX),
94GEN_XX3FORM(xsnmaddadp, 0x04, 0x14, PPC2_VSX),
95GEN_XX3FORM(xsnmaddmdp, 0x04, 0x15, PPC2_VSX),
96GEN_XX3FORM(xsnmsubadp, 0x04, 0x16, PPC2_VSX),
97GEN_XX3FORM(xsnmsubmdp, 0x04, 0x17, PPC2_VSX),
98GEN_XX2IFORM(xscmpodp, 0x0C, 0x05, PPC2_VSX),
99GEN_XX2IFORM(xscmpudp, 0x0C, 0x04, PPC2_VSX),
100GEN_XX3FORM(xsmaxdp, 0x00, 0x14, PPC2_VSX),
101GEN_XX3FORM(xsmindp, 0x00, 0x15, PPC2_VSX),
102GEN_XX2FORM(xscvdpsp, 0x12, 0x10, PPC2_VSX),
103GEN_XX2FORM(xscvdpspn, 0x16, 0x10, PPC2_VSX207),
104GEN_XX2FORM(xscvspdp, 0x12, 0x14, PPC2_VSX),
105GEN_XX2FORM(xscvspdpn, 0x16, 0x14, PPC2_VSX207),
106GEN_XX2FORM(xscvdpsxds, 0x10, 0x15, PPC2_VSX),
107GEN_XX2FORM(xscvdpsxws, 0x10, 0x05, PPC2_VSX),
108GEN_XX2FORM(xscvdpuxds, 0x10, 0x14, PPC2_VSX),
109GEN_XX2FORM(xscvdpuxws, 0x10, 0x04, PPC2_VSX),
110GEN_XX2FORM(xscvsxddp, 0x10, 0x17, PPC2_VSX),
111GEN_XX2FORM(xscvuxddp, 0x10, 0x16, PPC2_VSX),
112GEN_XX2FORM(xsrdpi, 0x12, 0x04, PPC2_VSX),
113GEN_XX2FORM(xsrdpic, 0x16, 0x06, PPC2_VSX),
114GEN_XX2FORM(xsrdpim, 0x12, 0x07, PPC2_VSX),
115GEN_XX2FORM(xsrdpip, 0x12, 0x06, PPC2_VSX),
116GEN_XX2FORM(xsrdpiz, 0x12, 0x05, PPC2_VSX),
117
118GEN_XX3FORM(xsaddsp, 0x00, 0x00, PPC2_VSX207),
119GEN_XX3FORM(xssubsp, 0x00, 0x01, PPC2_VSX207),
120GEN_XX3FORM(xsmulsp, 0x00, 0x02, PPC2_VSX207),
121GEN_XX3FORM(xsdivsp, 0x00, 0x03, PPC2_VSX207),
122GEN_XX2FORM(xsresp, 0x14, 0x01, PPC2_VSX207),
123GEN_XX2FORM(xsrsp, 0x12, 0x11, PPC2_VSX207),
124GEN_XX2FORM(xssqrtsp, 0x16, 0x00, PPC2_VSX207),
125GEN_XX2FORM(xsrsqrtesp, 0x14, 0x00, PPC2_VSX207),
126GEN_XX3FORM(xsmaddasp, 0x04, 0x00, PPC2_VSX207),
127GEN_XX3FORM(xsmaddmsp, 0x04, 0x01, PPC2_VSX207),
128GEN_XX3FORM(xsmsubasp, 0x04, 0x02, PPC2_VSX207),
129GEN_XX3FORM(xsmsubmsp, 0x04, 0x03, PPC2_VSX207),
130GEN_XX3FORM(xsnmaddasp, 0x04, 0x10, PPC2_VSX207),
131GEN_XX3FORM(xsnmaddmsp, 0x04, 0x11, PPC2_VSX207),
132GEN_XX3FORM(xsnmsubasp, 0x04, 0x12, PPC2_VSX207),
133GEN_XX3FORM(xsnmsubmsp, 0x04, 0x13, PPC2_VSX207),
134GEN_XX2FORM(xscvsxdsp, 0x10, 0x13, PPC2_VSX207),
135GEN_XX2FORM(xscvuxdsp, 0x10, 0x12, PPC2_VSX207),
136
137GEN_XX3FORM(xvadddp, 0x00, 0x0C, PPC2_VSX),
138GEN_XX3FORM(xvsubdp, 0x00, 0x0D, PPC2_VSX),
139GEN_XX3FORM(xvmuldp, 0x00, 0x0E, PPC2_VSX),
140GEN_XX3FORM(xvdivdp, 0x00, 0x0F, PPC2_VSX),
141GEN_XX2FORM(xvredp, 0x14, 0x0D, PPC2_VSX),
142GEN_XX2FORM(xvsqrtdp, 0x16, 0x0C, PPC2_VSX),
143GEN_XX2FORM(xvrsqrtedp, 0x14, 0x0C, PPC2_VSX),
144GEN_XX3FORM(xvtdivdp, 0x14, 0x0F, PPC2_VSX),
145GEN_XX2FORM(xvtsqrtdp, 0x14, 0x0E, PPC2_VSX),
146GEN_XX3FORM(xvmaddadp, 0x04, 0x0C, PPC2_VSX),
147GEN_XX3FORM(xvmaddmdp, 0x04, 0x0D, PPC2_VSX),
148GEN_XX3FORM(xvmsubadp, 0x04, 0x0E, PPC2_VSX),
149GEN_XX3FORM(xvmsubmdp, 0x04, 0x0F, PPC2_VSX),
150GEN_XX3FORM(xvnmaddadp, 0x04, 0x1C, PPC2_VSX),
151GEN_XX3FORM(xvnmaddmdp, 0x04, 0x1D, PPC2_VSX),
152GEN_XX3FORM(xvnmsubadp, 0x04, 0x1E, PPC2_VSX),
153GEN_XX3FORM(xvnmsubmdp, 0x04, 0x1F, PPC2_VSX),
154GEN_XX3FORM(xvmaxdp, 0x00, 0x1C, PPC2_VSX),
155GEN_XX3FORM(xvmindp, 0x00, 0x1D, PPC2_VSX),
156GEN_XX3_RC_FORM(xvcmpeqdp, 0x0C, 0x0C, PPC2_VSX),
157GEN_XX3_RC_FORM(xvcmpgtdp, 0x0C, 0x0D, PPC2_VSX),
158GEN_XX3_RC_FORM(xvcmpgedp, 0x0C, 0x0E, PPC2_VSX),
159GEN_XX2FORM(xvcvdpsp, 0x12, 0x18, PPC2_VSX),
160GEN_XX2FORM(xvcvdpsxds, 0x10, 0x1D, PPC2_VSX),
161GEN_XX2FORM(xvcvdpsxws, 0x10, 0x0D, PPC2_VSX),
162GEN_XX2FORM(xvcvdpuxds, 0x10, 0x1C, PPC2_VSX),
163GEN_XX2FORM(xvcvdpuxws, 0x10, 0x0C, PPC2_VSX),
164GEN_XX2FORM(xvcvsxddp, 0x10, 0x1F, PPC2_VSX),
165GEN_XX2FORM(xvcvuxddp, 0x10, 0x1E, PPC2_VSX),
166GEN_XX2FORM(xvcvsxwdp, 0x10, 0x0F, PPC2_VSX),
167GEN_XX2FORM(xvcvuxwdp, 0x10, 0x0E, PPC2_VSX),
168GEN_XX2FORM(xvrdpi, 0x12, 0x0C, PPC2_VSX),
169GEN_XX2FORM(xvrdpic, 0x16, 0x0E, PPC2_VSX),
170GEN_XX2FORM(xvrdpim, 0x12, 0x0F, PPC2_VSX),
171GEN_XX2FORM(xvrdpip, 0x12, 0x0E, PPC2_VSX),
172GEN_XX2FORM(xvrdpiz, 0x12, 0x0D, PPC2_VSX),
173
174GEN_XX3FORM(xvaddsp, 0x00, 0x08, PPC2_VSX),
175GEN_XX3FORM(xvsubsp, 0x00, 0x09, PPC2_VSX),
176GEN_XX3FORM(xvmulsp, 0x00, 0x0A, PPC2_VSX),
177GEN_XX3FORM(xvdivsp, 0x00, 0x0B, PPC2_VSX),
178GEN_XX2FORM(xvresp, 0x14, 0x09, PPC2_VSX),
179GEN_XX2FORM(xvsqrtsp, 0x16, 0x08, PPC2_VSX),
180GEN_XX2FORM(xvrsqrtesp, 0x14, 0x08, PPC2_VSX),
181GEN_XX3FORM(xvtdivsp, 0x14, 0x0B, PPC2_VSX),
182GEN_XX2FORM(xvtsqrtsp, 0x14, 0x0A, PPC2_VSX),
183GEN_XX3FORM(xvmaddasp, 0x04, 0x08, PPC2_VSX),
184GEN_XX3FORM(xvmaddmsp, 0x04, 0x09, PPC2_VSX),
185GEN_XX3FORM(xvmsubasp, 0x04, 0x0A, PPC2_VSX),
186GEN_XX3FORM(xvmsubmsp, 0x04, 0x0B, PPC2_VSX),
187GEN_XX3FORM(xvnmaddasp, 0x04, 0x18, PPC2_VSX),
188GEN_XX3FORM(xvnmaddmsp, 0x04, 0x19, PPC2_VSX),
189GEN_XX3FORM(xvnmsubasp, 0x04, 0x1A, PPC2_VSX),
190GEN_XX3FORM(xvnmsubmsp, 0x04, 0x1B, PPC2_VSX),
191GEN_XX3FORM(xvmaxsp, 0x00, 0x18, PPC2_VSX),
192GEN_XX3FORM(xvminsp, 0x00, 0x19, PPC2_VSX),
193GEN_XX3_RC_FORM(xvcmpeqsp, 0x0C, 0x08, PPC2_VSX),
194GEN_XX3_RC_FORM(xvcmpgtsp, 0x0C, 0x09, PPC2_VSX),
195GEN_XX3_RC_FORM(xvcmpgesp, 0x0C, 0x0A, PPC2_VSX),
196GEN_XX2FORM(xvcvspdp, 0x12, 0x1C, PPC2_VSX),
197GEN_XX2FORM(xvcvspsxds, 0x10, 0x19, PPC2_VSX),
198GEN_XX2FORM(xvcvspsxws, 0x10, 0x09, PPC2_VSX),
199GEN_XX2FORM(xvcvspuxds, 0x10, 0x18, PPC2_VSX),
200GEN_XX2FORM(xvcvspuxws, 0x10, 0x08, PPC2_VSX),
201GEN_XX2FORM(xvcvsxdsp, 0x10, 0x1B, PPC2_VSX),
202GEN_XX2FORM(xvcvuxdsp, 0x10, 0x1A, PPC2_VSX),
203GEN_XX2FORM(xvcvsxwsp, 0x10, 0x0B, PPC2_VSX),
204GEN_XX2FORM(xvcvuxwsp, 0x10, 0x0A, PPC2_VSX),
205GEN_XX2FORM(xvrspi, 0x12, 0x08, PPC2_VSX),
206GEN_XX2FORM(xvrspic, 0x16, 0x0A, PPC2_VSX),
207GEN_XX2FORM(xvrspim, 0x12, 0x0B, PPC2_VSX),
208GEN_XX2FORM(xvrspip, 0x12, 0x0A, PPC2_VSX),
209GEN_XX2FORM(xvrspiz, 0x12, 0x09, PPC2_VSX),
210
211#define VSX_LOGICAL(name, opc2, opc3, fl2) \
212GEN_XX3FORM(name, opc2, opc3, fl2)
213
214VSX_LOGICAL(xxland, 0x8, 0x10, PPC2_VSX),
215VSX_LOGICAL(xxlandc, 0x8, 0x11, PPC2_VSX),
216VSX_LOGICAL(xxlor, 0x8, 0x12, PPC2_VSX),
217VSX_LOGICAL(xxlxor, 0x8, 0x13, PPC2_VSX),
218VSX_LOGICAL(xxlnor, 0x8, 0x14, PPC2_VSX),
219VSX_LOGICAL(xxleqv, 0x8, 0x17, PPC2_VSX207),
220VSX_LOGICAL(xxlnand, 0x8, 0x16, PPC2_VSX207),
221VSX_LOGICAL(xxlorc, 0x8, 0x15, PPC2_VSX207),
222GEN_XX3FORM(xxmrghw, 0x08, 0x02, PPC2_VSX),
223GEN_XX3FORM(xxmrglw, 0x08, 0x06, PPC2_VSX),
224GEN_XX2FORM(xxspltw, 0x08, 0x0A, PPC2_VSX),
225GEN_XX3FORM_DM(xxsldwi, 0x08, 0x00),
226
227#define GEN_XXSEL_ROW(opc3) \
228GEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x18, opc3, 0, PPC_NONE, PPC2_VSX), \
229GEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x19, opc3, 0, PPC_NONE, PPC2_VSX), \
230GEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x1A, opc3, 0, PPC_NONE, PPC2_VSX), \
231GEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x1B, opc3, 0, PPC_NONE, PPC2_VSX), \
232GEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x1C, opc3, 0, PPC_NONE, PPC2_VSX), \
233GEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x1D, opc3, 0, PPC_NONE, PPC2_VSX), \
234GEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x1E, opc3, 0, PPC_NONE, PPC2_VSX), \
235GEN_HANDLER2_E(xxsel, "xxsel", 0x3C, 0x1F, opc3, 0, PPC_NONE, PPC2_VSX), \
236
237GEN_XXSEL_ROW(0x00)
238GEN_XXSEL_ROW(0x01)
239GEN_XXSEL_ROW(0x02)
240GEN_XXSEL_ROW(0x03)
241GEN_XXSEL_ROW(0x04)
242GEN_XXSEL_ROW(0x05)
243GEN_XXSEL_ROW(0x06)
244GEN_XXSEL_ROW(0x07)
245GEN_XXSEL_ROW(0x08)
246GEN_XXSEL_ROW(0x09)
247GEN_XXSEL_ROW(0x0A)
248GEN_XXSEL_ROW(0x0B)
249GEN_XXSEL_ROW(0x0C)
250GEN_XXSEL_ROW(0x0D)
251GEN_XXSEL_ROW(0x0E)
252GEN_XXSEL_ROW(0x0F)
253GEN_XXSEL_ROW(0x10)
254GEN_XXSEL_ROW(0x11)
255GEN_XXSEL_ROW(0x12)
256GEN_XXSEL_ROW(0x13)
257GEN_XXSEL_ROW(0x14)
258GEN_XXSEL_ROW(0x15)
259GEN_XXSEL_ROW(0x16)
260GEN_XXSEL_ROW(0x17)
261GEN_XXSEL_ROW(0x18)
262GEN_XXSEL_ROW(0x19)
263GEN_XXSEL_ROW(0x1A)
264GEN_XXSEL_ROW(0x1B)
265GEN_XXSEL_ROW(0x1C)
266GEN_XXSEL_ROW(0x1D)
267GEN_XXSEL_ROW(0x1E)
268GEN_XXSEL_ROW(0x1F)
269
270GEN_XX3FORM_DM(xxpermdi, 0x08, 0x01),