dataplane: allow virtio-1 devices
[qemu.git] / target-s390x / insn-data.def
blob72c3a2edda248a854f1d421c545680e81863cd72
1 /*
2 * Arguments to the opcode prototypes
4 * C(OPC, NAME, FMT, FAC, I1, I2, P, W, OP, CC)
5 * D(OPC, NAME, FMT, FAC, I1, I2, P, W, OP, CC, DATA)
7 * OPC = (op << 8) | op2 where op is the major, op2 the minor opcode
8 * NAME = name of the opcode, used internally
9 * FMT = format of the opcode (defined in insn-format.def)
10 * FAC = facility the opcode is available in (defined in DisasFacility)
11 * I1 = func in1_xx fills o->in1
12 * I2 = func in2_xx fills o->in2
13 * P = func prep_xx initializes o->*out*
14 * W = func wout_xx writes o->*out* somewhere
15 * OP = func op_xx does the bulk of the operation
16 * CC = func cout_xx defines how cc should get set
17 * DATA = immediate argument to op_xx function
19 * The helpers get called in order: I1, I2, P, OP, W, CC
22 /* ADD */
23 C(0x1a00, AR, RR_a, Z, r1, r2, new, r1_32, add, adds32)
24 C(0xb9f8, ARK, RRF_a, DO, r2, r3, new, r1_32, add, adds32)
25 C(0x5a00, A, RX_a, Z, r1, m2_32s, new, r1_32, add, adds32)
26 C(0xe35a, AY, RXY_a, LD, r1, m2_32s, new, r1_32, add, adds32)
27 C(0xb908, AGR, RRE, Z, r1, r2, r1, 0, add, adds64)
28 C(0xb918, AGFR, RRE, Z, r1, r2_32s, r1, 0, add, adds64)
29 C(0xb9e8, AGRK, RRF_a, DO, r2, r3, r1, 0, add, adds64)
30 C(0xe308, AG, RXY_a, Z, r1, m2_64, r1, 0, add, adds64)
31 C(0xe318, AGF, RXY_a, Z, r1, m2_32s, r1, 0, add, adds64)
32 C(0xb30a, AEBR, RRE, Z, e1, e2, new, e1, aeb, f32)
33 C(0xb31a, ADBR, RRE, Z, f1_o, f2_o, f1, 0, adb, f64)
34 C(0xb34a, AXBR, RRE, Z, 0, x2_o, x1, 0, axb, f128)
35 C(0xed0a, AEB, RXE, Z, e1, m2_32u, new, e1, aeb, f32)
36 C(0xed1a, ADB, RXE, Z, f1_o, m2_64, f1, 0, adb, f64)
37 /* ADD IMMEDIATE */
38 C(0xc209, AFI, RIL_a, EI, r1, i2, new, r1_32, add, adds32)
39 C(0xeb6a, ASI, SIY, GIE, m1_32s, i2, new, m1_32, add, adds32)
40 C(0xecd8, AHIK, RIE_d, DO, r3, i2, new, r1_32, add, adds32)
41 C(0xc208, AGFI, RIL_a, EI, r1, i2, r1, 0, add, adds64)
42 C(0xeb7a, AGSI, SIY, GIE, m1_64, i2, new, m1_64, add, adds64)
43 C(0xecd9, AGHIK, RIE_d, DO, r3, i2, r1, 0, add, adds64)
44 /* ADD HALFWORD */
45 C(0x4a00, AH, RX_a, Z, r1, m2_16s, new, r1_32, add, adds32)
46 C(0xe37a, AHY, RXY_a, LD, r1, m2_16s, new, r1_32, add, adds32)
47 /* ADD HALFWORD IMMEDIATE */
48 C(0xa70a, AHI, RI_a, Z, r1, i2, new, r1_32, add, adds32)
49 C(0xa70b, AGHI, RI_a, Z, r1, i2, r1, 0, add, adds64)
51 /* ADD LOGICAL */
52 C(0x1e00, ALR, RR_a, Z, r1, r2, new, r1_32, add, addu32)
53 C(0xb9fa, ALRK, RRF_a, DO, r2, r3, new, r1_32, add, addu32)
54 C(0x5e00, AL, RX_a, Z, r1, m2_32u, new, r1_32, add, addu32)
55 C(0xe35e, ALY, RXY_a, LD, r1, m2_32u, new, r1_32, add, addu32)
56 C(0xb90a, ALGR, RRE, Z, r1, r2, r1, 0, add, addu64)
57 C(0xb91a, ALGFR, RRE, Z, r1, r2_32u, r1, 0, add, addu64)
58 C(0xb9ea, ALGRK, RRF_a, DO, r2, r3, r1, 0, add, addu64)
59 C(0xe30a, ALG, RXY_a, Z, r1, m2_64, r1, 0, add, addu64)
60 C(0xe31a, ALGF, RXY_a, Z, r1, m2_32u, r1, 0, add, addu64)
61 /* ADD LOGICAL IMMEDIATE */
62 C(0xc20b, ALFI, RIL_a, EI, r1, i2_32u, new, r1_32, add, addu32)
63 C(0xc20a, ALGFI, RIL_a, EI, r1, i2_32u, r1, 0, add, addu64)
64 /* ADD LOGICAL WITH SIGNED IMMEDIATE */
65 C(0xeb6e, ALSI, SIY, GIE, m1_32u, i2, new, m1_32, add, addu32)
66 C(0xecda, ALHSIK, RIE_d, DO, r3, i2, new, r1_32, add, addu32)
67 C(0xeb7e, ALGSI, SIY, GIE, m1_64, i2, new, m1_64, add, addu64)
68 C(0xecdb, ALGHSIK, RIE_d, DO, r3, i2, r1, 0, add, addu64)
69 /* ADD LOGICAL WITH CARRY */
70 C(0xb998, ALCR, RRE, Z, r1, r2, new, r1_32, addc, addc32)
71 C(0xb988, ALCGR, RRE, Z, r1, r2, r1, 0, addc, addc64)
72 C(0xe398, ALC, RXY_a, Z, r1, m2_32u, new, r1_32, addc, addc32)
73 C(0xe388, ALCG, RXY_a, Z, r1, m2_64, r1, 0, addc, addc64)
75 /* AND */
76 C(0x1400, NR, RR_a, Z, r1, r2, new, r1_32, and, nz32)
77 C(0xb9f4, NRK, RRF_a, DO, r2, r3, new, r1_32, and, nz32)
78 C(0x5400, N, RX_a, Z, r1, m2_32s, new, r1_32, and, nz32)
79 C(0xe354, NY, RXY_a, LD, r1, m2_32s, new, r1_32, and, nz32)
80 C(0xb980, NGR, RRE, Z, r1, r2, r1, 0, and, nz64)
81 C(0xb9e4, NGRK, RRF_a, DO, r2, r3, r1, 0, and, nz64)
82 C(0xe380, NG, RXY_a, Z, r1, m2_64, r1, 0, and, nz64)
83 C(0xd400, NC, SS_a, Z, la1, a2, 0, 0, nc, 0)
84 /* AND IMMEDIATE */
85 D(0xc00a, NIHF, RIL_a, EI, r1_o, i2_32u, r1, 0, andi, 0, 0x2020)
86 D(0xc00b, NILF, RIL_a, EI, r1_o, i2_32u, r1, 0, andi, 0, 0x2000)
87 D(0xa504, NIHH, RI_a, Z, r1_o, i2_16u, r1, 0, andi, 0, 0x1030)
88 D(0xa505, NIHL, RI_a, Z, r1_o, i2_16u, r1, 0, andi, 0, 0x1020)
89 D(0xa506, NILH, RI_a, Z, r1_o, i2_16u, r1, 0, andi, 0, 0x1010)
90 D(0xa507, NILL, RI_a, Z, r1_o, i2_16u, r1, 0, andi, 0, 0x1000)
91 C(0x9400, NI, SI, Z, m1_8u, i2_8u, new, m1_8, and, nz64)
92 C(0xeb54, NIY, SIY, LD, m1_8u, i2_8u, new, m1_8, and, nz64)
94 /* BRANCH AND SAVE */
95 C(0x0d00, BASR, RR_a, Z, 0, r2_nz, r1, 0, bas, 0)
96 C(0x4d00, BAS, RX_a, Z, 0, a2, r1, 0, bas, 0)
97 /* BRANCH RELATIVE AND SAVE */
98 C(0xa705, BRAS, RI_b, Z, 0, 0, r1, 0, basi, 0)
99 C(0xc005, BRASL, RIL_b, Z, 0, 0, r1, 0, basi, 0)
100 /* BRANCH ON CONDITION */
101 C(0x0700, BCR, RR_b, Z, 0, r2_nz, 0, 0, bc, 0)
102 C(0x4700, BC, RX_b, Z, 0, a2, 0, 0, bc, 0)
103 /* BRANCH RELATIVE ON CONDITION */
104 C(0xa704, BRC, RI_c, Z, 0, 0, 0, 0, bc, 0)
105 C(0xc004, BRCL, RIL_c, Z, 0, 0, 0, 0, bc, 0)
106 /* BRANCH ON COUNT */
107 C(0x0600, BCTR, RR_a, Z, 0, r2_nz, 0, 0, bct32, 0)
108 C(0xb946, BCTGR, RRE, Z, 0, r2_nz, 0, 0, bct64, 0)
109 C(0x4600, BCT, RX_a, Z, 0, a2, 0, 0, bct32, 0)
110 C(0xe346, BCTG, RXY_a, Z, 0, a2, 0, 0, bct64, 0)
111 /* BRANCH RELATIVE ON COUNT */
112 C(0xa706, BRCT, RI_b, Z, 0, 0, 0, 0, bct32, 0)
113 C(0xa707, BRCTG, RI_b, Z, 0, 0, 0, 0, bct64, 0)
114 /* BRANCH ON INDEX */
115 D(0x8600, BXH, RS_a, Z, 0, a2, 0, 0, bx32, 0, 0)
116 D(0x8700, BXLE, RS_a, Z, 0, a2, 0, 0, bx32, 0, 1)
117 D(0xeb44, BXHG, RSY_a, Z, 0, a2, 0, 0, bx64, 0, 0)
118 D(0xeb45, BXLEG, RSY_a, Z, 0, a2, 0, 0, bx64, 0, 1)
119 /* BRANCH RELATIVE ON INDEX */
120 D(0x8400, BRXH, RSI, Z, 0, 0, 0, 0, bx32, 0, 0)
121 D(0x8500, BRXLE, RSI, Z, 0, 0, 0, 0, bx32, 0, 1)
122 D(0xec44, BRXHG, RIE_e, Z, 0, 0, 0, 0, bx64, 0, 0)
123 D(0xec45, BRXHLE, RIE_e, Z, 0, 0, 0, 0, bx64, 0, 1)
125 /* CHECKSUM */
126 C(0xb241, CKSM, RRE, Z, r1_o, ra2, new, r1_32, cksm, 0)
128 /* COPY SIGN */
129 C(0xb372, CPSDR, RRF_b, FPSSH, f3_o, f2_o, f1, 0, cps, 0)
131 /* COMPARE */
132 C(0x1900, CR, RR_a, Z, r1_o, r2_o, 0, 0, 0, cmps32)
133 C(0x5900, C, RX_a, Z, r1_o, m2_32s, 0, 0, 0, cmps32)
134 C(0xe359, CY, RXY_a, LD, r1_o, m2_32s, 0, 0, 0, cmps32)
135 C(0xb920, CGR, RRE, Z, r1_o, r2_o, 0, 0, 0, cmps64)
136 C(0xb930, CGFR, RRE, Z, r1_o, r2_32s, 0, 0, 0, cmps64)
137 C(0xe320, CG, RXY_a, Z, r1_o, m2_64, 0, 0, 0, cmps64)
138 C(0xe330, CGF, RXY_a, Z, r1_o, m2_32s, 0, 0, 0, cmps64)
139 C(0xb309, CEBR, RRE, Z, e1, e2, 0, 0, ceb, 0)
140 C(0xb319, CDBR, RRE, Z, f1_o, f2_o, 0, 0, cdb, 0)
141 C(0xb349, CXBR, RRE, Z, x1_o, x2_o, 0, 0, cxb, 0)
142 C(0xed09, CEB, RXE, Z, e1, m2_32u, 0, 0, ceb, 0)
143 C(0xed19, CDB, RXE, Z, f1_o, m2_64, 0, 0, cdb, 0)
144 /* COMPARE IMMEDIATE */
145 C(0xc20d, CFI, RIL_a, EI, r1, i2, 0, 0, 0, cmps32)
146 C(0xc20c, CGFI, RIL_a, EI, r1, i2, 0, 0, 0, cmps64)
147 /* COMPARE RELATIVE LONG */
148 C(0xc60d, CRL, RIL_b, GIE, r1, mri2_32s, 0, 0, 0, cmps32)
149 C(0xc608, CGRL, RIL_b, GIE, r1, mri2_64, 0, 0, 0, cmps64)
150 C(0xc60c, CGFRL, RIL_b, GIE, r1, mri2_32s, 0, 0, 0, cmps64)
151 /* COMPARE HALFWORD */
152 C(0x4900, CH, RX_a, Z, r1_o, m2_16s, 0, 0, 0, cmps32)
153 C(0xe379, CHY, RXY_a, LD, r1_o, m2_16s, 0, 0, 0, cmps32)
154 C(0xe334, CGH, RXY_a, GIE, r1_o, m2_16s, 0, 0, 0, cmps64)
155 /* COMPARE HALFWORD IMMEDIATE */
156 C(0xa70e, CHI, RI_a, Z, r1_o, i2, 0, 0, 0, cmps32)
157 C(0xa70f, CGHI, RI_a, Z, r1_o, i2, 0, 0, 0, cmps64)
158 C(0xe554, CHHSI, SIL, GIE, m1_16s, i2, 0, 0, 0, cmps64)
159 C(0xe55c, CHSI, SIL, GIE, m1_32s, i2, 0, 0, 0, cmps64)
160 C(0xe558, CGHSI, SIL, GIE, m1_64, i2, 0, 0, 0, cmps64)
161 /* COMPARE HALFWORD RELATIVE LONG */
162 C(0xc605, CHRL, RIL_a, GIE, r1_o, mri2_32s, 0, 0, 0, cmps32)
163 C(0xc604, CGHRL, RIL_a, GIE, r1_o, mri2_64, 0, 0, 0, cmps64)
165 /* COMPARE LOGICAL */
166 C(0x1500, CLR, RR_a, Z, r1, r2, 0, 0, 0, cmpu32)
167 C(0x5500, CL, RX_a, Z, r1, m2_32s, 0, 0, 0, cmpu32)
168 C(0xe355, CLY, RXY_a, LD, r1, m2_32s, 0, 0, 0, cmpu32)
169 C(0xb921, CLGR, RRE, Z, r1, r2, 0, 0, 0, cmpu64)
170 C(0xb931, CLGFR, RRE, Z, r1, r2_32u, 0, 0, 0, cmpu64)
171 C(0xe321, CLG, RXY_a, Z, r1, m2_64, 0, 0, 0, cmpu64)
172 C(0xe331, CLGF, RXY_a, Z, r1, m2_32u, 0, 0, 0, cmpu64)
173 C(0xd500, CLC, SS_a, Z, la1, a2, 0, 0, clc, 0)
174 /* COMPARE LOGICAL IMMEDIATE */
175 C(0xc20f, CLFI, RIL_a, EI, r1, i2, 0, 0, 0, cmpu32)
176 C(0xc20e, CLGFI, RIL_a, EI, r1, i2_32u, 0, 0, 0, cmpu64)
177 C(0x9500, CLI, SI, Z, m1_8u, i2_8u, 0, 0, 0, cmpu64)
178 C(0xeb55, CLIY, SIY, LD, m1_8u, i2_8u, 0, 0, 0, cmpu64)
179 C(0xe555, CLHHSI, SIL, GIE, m1_16u, i2_16u, 0, 0, 0, cmpu64)
180 C(0xe55d, CLFHSI, SIL, GIE, m1_32u, i2_16u, 0, 0, 0, cmpu64)
181 C(0xe559, CLGHSI, SIL, GIE, m1_64, i2_16u, 0, 0, 0, cmpu64)
182 /* COMPARE LOGICAL RELATIVE LONG */
183 C(0xc60f, CLRL, RIL_b, GIE, r1_o, mri2_32u, 0, 0, 0, cmpu32)
184 C(0xc60a, CLGRL, RIL_b, GIE, r1_o, mri2_64, 0, 0, 0, cmpu64)
185 C(0xc60e, CLGFRL, RIL_b, GIE, r1_o, mri2_32u, 0, 0, 0, cmpu64)
186 C(0xc607, CLHRL, RIL_b, GIE, r1_o, mri2_16u, 0, 0, 0, cmpu32)
187 C(0xc606, CLGHRL, RIL_b, GIE, r1_o, mri2_16u, 0, 0, 0, cmpu64)
188 /* COMPARE LOGICAL LONG EXTENDED */
189 C(0xa900, CLCLE, RS_a, Z, 0, a2, 0, 0, clcle, 0)
190 /* COMPARE LOGICAL CHARACTERS UNDER MASK */
191 C(0xbd00, CLM, RS_b, Z, r1_o, a2, 0, 0, clm, 0)
192 C(0xeb21, CLMY, RSY_b, LD, r1_o, a2, 0, 0, clm, 0)
193 C(0xeb20, CLMH, RSY_b, Z, r1_sr32, a2, 0, 0, clm, 0)
194 /* COMPARE LOGICAL STRING */
195 C(0xb25d, CLST, RRE, Z, r1_o, r2_o, 0, 0, clst, 0)
197 /* COMPARE AND BRANCH */
198 D(0xecf6, CRB, RRS, GIE, r1_32s, r2_32s, 0, 0, cj, 0, 0)
199 D(0xece4, CGRB, RRS, GIE, r1_o, r2_o, 0, 0, cj, 0, 0)
200 D(0xec76, CRJ, RIE_b, GIE, r1_32s, r2_32s, 0, 0, cj, 0, 0)
201 D(0xec64, CGRJ, RIE_b, GIE, r1_o, r2_o, 0, 0, cj, 0, 0)
202 D(0xecfe, CIB, RIS, GIE, r1_32s, i2, 0, 0, cj, 0, 0)
203 D(0xecfc, CGIB, RIS, GIE, r1_o, i2, 0, 0, cj, 0, 0)
204 D(0xec7e, CIJ, RIE_c, GIE, r1_32s, i2, 0, 0, cj, 0, 0)
205 D(0xec7c, CGIJ, RIE_c, GIE, r1_o, i2, 0, 0, cj, 0, 0)
206 /* COMPARE LOGICAL AND BRANCH */
207 D(0xecf7, CLRB, RRS, GIE, r1_32u, r2_32u, 0, 0, cj, 0, 1)
208 D(0xece5, CLGRB, RRS, GIE, r1_o, r2_o, 0, 0, cj, 0, 1)
209 D(0xec77, CLRJ, RIE_b, GIE, r1_32u, r2_32u, 0, 0, cj, 0, 1)
210 D(0xec65, CLGRJ, RIE_b, GIE, r1_o, r2_o, 0, 0, cj, 0, 1)
211 D(0xecff, CLIB, RIS, GIE, r1_32u, i2_8u, 0, 0, cj, 0, 1)
212 D(0xecfd, CLGIB, RIS, GIE, r1_o, i2_8u, 0, 0, cj, 0, 1)
213 D(0xec7f, CLIJ, RIE_c, GIE, r1_32u, i2_8u, 0, 0, cj, 0, 1)
214 D(0xec7d, CLGIJ, RIE_c, GIE, r1_o, i2_8u, 0, 0, cj, 0, 1)
216 /* COMPARE AND SWAP */
217 D(0xba00, CS, RS_a, Z, r3_32u, r1_32u, new, r1_32, cs, 0, 0)
218 D(0xeb14, CSY, RSY_a, LD, r3_32u, r1_32u, new, r1_32, cs, 0, 0)
219 D(0xeb30, CSG, RSY_a, Z, r3_o, r1_o, new, r1, cs, 0, 1)
220 /* COMPARE DOUBLE AND SWAP */
221 D(0xbb00, CDS, RS_a, Z, r3_D32, r1_D32, new, r1_D32, cs, 0, 1)
222 D(0xeb31, CDSY, RSY_a, LD, r3_D32, r1_D32, new, r1_D32, cs, 0, 1)
223 C(0xeb3e, CDSG, RSY_a, Z, 0, 0, 0, 0, cdsg, 0)
225 /* COMPARE AND TRAP */
226 D(0xb972, CRT, RRF_c, GIE, r1_32s, r2_32s, 0, 0, ct, 0, 0)
227 D(0xb960, CGRT, RRF_c, GIE, r1_o, r2_o, 0, 0, ct, 0, 0)
228 D(0xec72, CIT, RIE_a, GIE, r1_32s, i2, 0, 0, ct, 0, 0)
229 D(0xec70, CGIT, RIE_a, GIE, r1_o, i2, 0, 0, ct, 0, 0)
230 /* COMPARE LOGICAL AND TRAP */
231 D(0xb973, CLRT, RRF_c, GIE, r1_32u, r2_32u, 0, 0, ct, 0, 1)
232 D(0xb961, CLGRT, RRF_c, GIE, r1_o, r2_o, 0, 0, ct, 0, 1)
233 D(0xec73, CLFIT, RIE_a, GIE, r1_32u, i2_32u, 0, 0, ct, 0, 1)
234 D(0xec71, CLGIT, RIE_a, GIE, r1_o, i2_32u, 0, 0, ct, 0, 0)
236 /* CONVERT TO DECIMAL */
237 C(0x4e00, CVD, RX_a, Z, r1_o, a2, 0, 0, cvd, 0)
238 C(0xe326, CVDY, RXY_a, LD, r1_o, a2, 0, 0, cvd, 0)
239 /* CONVERT TO FIXED */
240 C(0xb398, CFEBR, RRF_e, Z, 0, e2, new, r1_32, cfeb, 0)
241 C(0xb399, CFDBR, RRF_e, Z, 0, f2_o, new, r1_32, cfdb, 0)
242 C(0xb39a, CFXBR, RRF_e, Z, 0, x2_o, new, r1_32, cfxb, 0)
243 C(0xb3a8, CGEBR, RRF_e, Z, 0, e2, r1, 0, cgeb, 0)
244 C(0xb3a9, CGDBR, RRF_e, Z, 0, f2_o, r1, 0, cgdb, 0)
245 C(0xb3aa, CGXBR, RRF_e, Z, 0, x2_o, r1, 0, cgxb, 0)
246 /* CONVERT FROM FIXED */
247 C(0xb394, CEFBR, RRF_e, Z, 0, r2_32s, new, e1, cegb, 0)
248 C(0xb395, CDFBR, RRF_e, Z, 0, r2_32s, f1, 0, cdgb, 0)
249 C(0xb396, CXFBR, RRF_e, Z, 0, r2_32s, x1, 0, cxgb, 0)
250 C(0xb3a4, CEGBR, RRF_e, Z, 0, r2_o, new, e1, cegb, 0)
251 C(0xb3a5, CDGBR, RRF_e, Z, 0, r2_o, f1, 0, cdgb, 0)
252 C(0xb3a6, CXGBR, RRF_e, Z, 0, r2_o, x1, 0, cxgb, 0)
253 /* CONVERT TO LOGICAL */
254 C(0xb39c, CLFEBR, RRF_e, FPE, 0, e2, new, r1_32, clfeb, 0)
255 C(0xb39d, CLFDBR, RRF_e, FPE, 0, f2_o, new, r1_32, clfdb, 0)
256 C(0xb39e, CLFXBR, RRF_e, FPE, 0, x2_o, new, r1_32, clfxb, 0)
257 C(0xb3ac, CLGEBR, RRF_e, FPE, 0, e2, r1, 0, clgeb, 0)
258 C(0xb3ad, CLGDBR, RRF_e, FPE, 0, f2_o, r1, 0, clgdb, 0)
259 C(0xb3ae, CLGXBR, RRF_e, FPE, 0, x2_o, r1, 0, clgxb, 0)
260 /* CONVERT FROM LOGICAL */
261 C(0xb390, CELFBR, RRF_e, FPE, 0, r2_32u, new, e1, celgb, 0)
262 C(0xb391, CDLFBR, RRF_e, FPE, 0, r2_32u, f1, 0, cdlgb, 0)
263 C(0xb392, CXLFBR, RRF_e, FPE, 0, r2_32u, x1, 0, cxlgb, 0)
264 C(0xb3a0, CELGBR, RRF_e, FPE, 0, r2_o, new, e1, celgb, 0)
265 C(0xb3a1, CDLGBR, RRF_e, FPE, 0, r2_o, f1, 0, cdlgb, 0)
266 C(0xb3a2, CXLGBR, RRF_e, FPE, 0, r2_o, x1, 0, cxlgb, 0)
268 /* DIVIDE */
269 C(0x1d00, DR, RR_a, Z, r1_D32, r2_32s, new_P, r1_P32, divs32, 0)
270 C(0x5d00, D, RX_a, Z, r1_D32, m2_32s, new_P, r1_P32, divs32, 0)
271 C(0xb30d, DEBR, RRE, Z, e1, e2, new, e1, deb, 0)
272 C(0xb31d, DDBR, RRE, Z, f1_o, f2_o, f1, 0, ddb, 0)
273 C(0xb34d, DXBR, RRE, Z, 0, x2_o, x1, 0, dxb, 0)
274 C(0xed0d, DEB, RXE, Z, e1, m2_32u, new, e1, deb, 0)
275 C(0xed1d, DDB, RXE, Z, f1_o, m2_64, f1, 0, ddb, 0)
276 /* DIVIDE LOGICAL */
277 C(0xb997, DLR, RRE, Z, r1_D32, r2_32u, new_P, r1_P32, divu32, 0)
278 C(0xe397, DL, RXY_a, Z, r1_D32, m2_32u, new_P, r1_P32, divu32, 0)
279 C(0xb987, DLGR, RRE, Z, 0, r2_o, r1_P, 0, divu64, 0)
280 C(0xe387, DLG, RXY_a, Z, 0, m2_64, r1_P, 0, divu64, 0)
281 /* DIVIDE SINGLE */
282 C(0xb90d, DSGR, RRE, Z, r1p1, r2, r1_P, 0, divs64, 0)
283 C(0xb91d, DSGFR, RRE, Z, r1p1, r2_32s, r1_P, 0, divs64, 0)
284 C(0xe30d, DSG, RXY_a, Z, r1p1, m2_64, r1_P, 0, divs64, 0)
285 C(0xe31d, DSGF, RXY_a, Z, r1p1, m2_32s, r1_P, 0, divs64, 0)
287 /* EXCLUSIVE OR */
288 C(0x1700, XR, RR_a, Z, r1, r2, new, r1_32, xor, nz32)
289 C(0xb9f7, XRK, RRF_a, DO, r2, r3, new, r1_32, xor, nz32)
290 C(0x5700, X, RX_a, Z, r1, m2_32s, new, r1_32, xor, nz32)
291 C(0xe357, XY, RXY_a, LD, r1, m2_32s, new, r1_32, xor, nz32)
292 C(0xb982, XGR, RRE, Z, r1, r2, r1, 0, xor, nz64)
293 C(0xb9e7, XGRK, RRF_a, DO, r2, r3, r1, 0, xor, nz64)
294 C(0xe382, XG, RXY_a, Z, r1, m2_64, r1, 0, xor, nz64)
295 C(0xd700, XC, SS_a, Z, 0, 0, 0, 0, xc, 0)
296 /* EXCLUSIVE OR IMMEDIATE */
297 D(0xc006, XIHF, RIL_a, EI, r1_o, i2_32u, r1, 0, xori, 0, 0x2020)
298 D(0xc007, XILF, RIL_a, EI, r1_o, i2_32u, r1, 0, xori, 0, 0x2000)
299 C(0x9700, XI, SI, Z, m1_8u, i2_8u, new, m1_8, xor, nz64)
300 C(0xeb57, XIY, SIY, LD, m1_8u, i2_8u, new, m1_8, xor, nz64)
302 /* EXECUTE */
303 C(0x4400, EX, RX_a, Z, r1_o, a2, 0, 0, ex, 0)
304 /* EXECUTE RELATIVE LONG */
305 C(0xc600, EXRL, RIL_b, EE, r1_o, ri2, 0, 0, ex, 0)
307 /* EXTRACT ACCESS */
308 C(0xb24f, EAR, RRE, Z, 0, 0, new, r1_32, ear, 0)
309 /* EXTRACT CPU ATTRIBUTE */
310 C(0xeb4c, ECAG, RSY_a, GIE, 0, a2, r1, 0, ecag, 0)
311 /* EXTRACT FPC */
312 C(0xb38c, EFPC, RRE, Z, 0, 0, new, r1_32, efpc, 0)
313 /* EXTRACT PSW */
314 C(0xb98d, EPSW, RRE, Z, 0, 0, 0, 0, epsw, 0)
316 /* FIND LEFTMOST ONE */
317 C(0xb983, FLOGR, RRE, EI, 0, r2_o, r1_P, 0, flogr, 0)
319 /* INSERT CHARACTER */
320 C(0x4300, IC, RX_a, Z, 0, m2_8u, 0, r1_8, mov2, 0)
321 C(0xe373, ICY, RXY_a, LD, 0, m2_8u, 0, r1_8, mov2, 0)
322 /* INSERT CHARACTERS UNDER MASK */
323 D(0xbf00, ICM, RS_b, Z, 0, a2, r1, 0, icm, 0, 0)
324 D(0xeb81, ICMY, RSY_b, LD, 0, a2, r1, 0, icm, 0, 0)
325 D(0xeb80, ICMH, RSY_b, Z, 0, a2, r1, 0, icm, 0, 32)
326 /* INSERT IMMEDIATE */
327 D(0xc008, IIHF, RIL_a, EI, r1_o, i2_32u, r1, 0, insi, 0, 0x2020)
328 D(0xc009, IILF, RIL_a, EI, r1_o, i2_32u, r1, 0, insi, 0, 0x2000)
329 D(0xa500, IIHH, RI_a, Z, r1_o, i2_16u, r1, 0, insi, 0, 0x1030)
330 D(0xa501, IIHL, RI_a, Z, r1_o, i2_16u, r1, 0, insi, 0, 0x1020)
331 D(0xa502, IILH, RI_a, Z, r1_o, i2_16u, r1, 0, insi, 0, 0x1010)
332 D(0xa503, IILL, RI_a, Z, r1_o, i2_16u, r1, 0, insi, 0, 0x1000)
333 /* INSERT PROGRAM MASK */
334 C(0xb222, IPM, RRE, Z, 0, 0, r1, 0, ipm, 0)
336 /* LOAD */
337 C(0x1800, LR, RR_a, Z, 0, r2_o, 0, cond_r1r2_32, mov2, 0)
338 C(0x5800, L, RX_a, Z, 0, a2, new, r1_32, ld32s, 0)
339 C(0xe358, LY, RXY_a, Z, 0, a2, new, r1_32, ld32s, 0)
340 C(0xb904, LGR, RRE, Z, 0, r2_o, 0, r1, mov2, 0)
341 C(0xb914, LGFR, RRE, Z, 0, r2_32s, 0, r1, mov2, 0)
342 C(0xe304, LG, RXY_a, Z, 0, a2, r1, 0, ld64, 0)
343 C(0xe314, LGF, RXY_a, Z, 0, a2, r1, 0, ld32s, 0)
344 C(0x2800, LDR, RR_a, Z, 0, f2_o, 0, f1, mov2, 0)
345 C(0x6800, LD, RX_a, Z, 0, m2_64, 0, f1, mov2, 0)
346 C(0xed65, LDY, RXY_a, LD, 0, m2_64, 0, f1, mov2, 0)
347 C(0x3800, LER, RR_a, Z, 0, e2, 0, cond_e1e2, mov2, 0)
348 C(0x7800, LE, RX_a, Z, 0, m2_32u, 0, e1, mov2, 0)
349 C(0xed64, LEY, RXY_a, LD, 0, m2_32u, 0, e1, mov2, 0)
350 C(0xb365, LXR, RRE, Z, 0, x2_o, 0, x1, movx, 0)
351 /* LOAD IMMEDIATE */
352 C(0xc001, LGFI, RIL_a, EI, 0, i2, 0, r1, mov2, 0)
353 /* LOAD RELATIVE LONG */
354 C(0xc40d, LRL, RIL_b, GIE, 0, ri2, new, r1_32, ld32s, 0)
355 C(0xc408, LGRL, RIL_b, GIE, 0, ri2, r1, 0, ld64, 0)
356 C(0xc40c, LGFRL, RIL_b, GIE, 0, ri2, r1, 0, ld32s, 0)
357 /* LOAD ADDRESS */
358 C(0x4100, LA, RX_a, Z, 0, a2, 0, r1, mov2, 0)
359 C(0xe371, LAY, RXY_a, LD, 0, a2, 0, r1, mov2, 0)
360 /* LOAD ADDRESS RELATIVE LONG */
361 C(0xc000, LARL, RIL_b, Z, 0, ri2, 0, r1, mov2, 0)
362 /* LOAD AND ADD */
363 C(0xebf8, LAA, RSY_a, ILA, r3_32s, m2_32s_atomic, new, m2_32_r1_atomic, add, adds32)
364 C(0xebe8, LAAG, RSY_a, ILA, r3, m2_64_atomic, new, m2_64_r1_atomic, add, adds64)
365 /* LOAD AND ADD LOGICAL */
366 C(0xebfa, LAAL, RSY_a, ILA, r3_32s, m2_32s_atomic, new, m2_32_r1_atomic, add, addu32)
367 C(0xebea, LAALG, RSY_a, ILA, r3, m2_64_atomic, new, m2_64_r1_atomic, add, addu64)
368 /* LOAD AND AND */
369 C(0xebf4, LAN, RSY_a, ILA, r3_32s, m2_32s_atomic, new, m2_32_r1_atomic, and, nz32)
370 C(0xebe4, LANG, RSY_a, ILA, r3, m2_64_atomic, new, m2_64_r1_atomic, and, nz64)
371 /* LOAD AND EXCLUSIVE OR */
372 C(0xebf7, LAX, RSY_a, ILA, r3_32s, m2_32s_atomic, new, m2_32_r1_atomic, xor, nz32)
373 C(0xebe7, LAXG, RSY_a, ILA, r3, m2_64_atomic, new, m2_64_r1_atomic, xor, nz64)
374 /* LOAD AND OR */
375 C(0xebf6, LAO, RSY_a, ILA, r3_32s, m2_32s_atomic, new, m2_32_r1_atomic, or, nz32)
376 C(0xebe6, LAOG, RSY_a, ILA, r3, m2_64_atomic, new, m2_64_r1_atomic, or, nz64)
377 /* LOAD AND TEST */
378 C(0x1200, LTR, RR_a, Z, 0, r2_o, 0, cond_r1r2_32, mov2, s32)
379 C(0xb902, LTGR, RRE, Z, 0, r2_o, 0, r1, mov2, s64)
380 C(0xb912, LTGFR, RRE, Z, 0, r2_32s, 0, r1, mov2, s64)
381 C(0xe312, LT, RXY_a, EI, 0, a2, new, r1_32, ld32s, s64)
382 C(0xe302, LTG, RXY_a, EI, 0, a2, r1, 0, ld64, s64)
383 C(0xe332, LTGF, RXY_a, GIE, 0, a2, r1, 0, ld32s, s64)
384 C(0xb302, LTEBR, RRE, Z, 0, e2, 0, cond_e1e2, mov2, f32)
385 C(0xb312, LTDBR, RRE, Z, 0, f2_o, 0, f1, mov2, f64)
386 C(0xb342, LTXBR, RRE, Z, 0, x2_o, 0, x1, movx, f128)
387 /* LOAD BYTE */
388 C(0xb926, LBR, RRE, EI, 0, r2_8s, 0, r1_32, mov2, 0)
389 C(0xb906, LGBR, RRE, EI, 0, r2_8s, 0, r1, mov2, 0)
390 C(0xe376, LB, RXY_a, LD, 0, a2, new, r1_32, ld8s, 0)
391 C(0xe377, LGB, RXY_a, LD, 0, a2, r1, 0, ld8s, 0)
392 /* LOAD COMPLEMENT */
393 C(0x1300, LCR, RR_a, Z, 0, r2, new, r1_32, neg, neg32)
394 C(0xb903, LCGR, RRE, Z, 0, r2, r1, 0, neg, neg64)
395 C(0xb913, LCGFR, RRE, Z, 0, r2_32s, r1, 0, neg, neg64)
396 C(0xb303, LCEBR, RRE, Z, 0, e2, new, e1, negf32, f32)
397 C(0xb313, LCDBR, RRE, Z, 0, f2_o, f1, 0, negf64, f64)
398 C(0xb343, LCXBR, RRE, Z, 0, x2_o, x1, 0, negf128, f128)
399 C(0xb373, LCDFR, RRE, FPSSH, 0, f2_o, f1, 0, negf64, 0)
400 /* LOAD HALFWORD */
401 C(0xb927, LHR, RRE, EI, 0, r2_16s, 0, r1_32, mov2, 0)
402 C(0xb907, LGHR, RRE, EI, 0, r2_16s, 0, r1, mov2, 0)
403 C(0x4800, LH, RX_a, Z, 0, a2, new, r1_32, ld16s, 0)
404 C(0xe378, LHY, RXY_a, LD, 0, a2, new, r1_32, ld16s, 0)
405 C(0xe315, LGH, RXY_a, Z, 0, a2, r1, 0, ld16s, 0)
406 /* LOAD HALFWORD IMMEDIATE */
407 C(0xa708, LHI, RI_a, Z, 0, i2, 0, r1_32, mov2, 0)
408 C(0xa709, LGHI, RI_a, Z, 0, i2, 0, r1, mov2, 0)
409 /* LOAD HALFWORD RELATIVE LONG */
410 C(0xc405, LHRL, RIL_b, GIE, 0, ri2, new, r1_32, ld16s, 0)
411 C(0xc404, LGHRL, RIL_b, GIE, 0, ri2, r1, 0, ld16s, 0)
412 /* LOAD LOGICAL */
413 C(0xb916, LLGFR, RRE, Z, 0, r2_32u, 0, r1, mov2, 0)
414 C(0xe316, LLGF, RXY_a, Z, 0, a2, r1, 0, ld32u, 0)
415 /* LOAD LOGICAL RELATIVE LONG */
416 C(0xc40e, LLGFRL, RIL_b, GIE, 0, ri2, r1, 0, ld32u, 0)
417 /* LOAD LOGICAL CHARACTER */
418 C(0xb994, LLCR, RRE, EI, 0, r2_8u, 0, r1_32, mov2, 0)
419 C(0xb984, LLGCR, RRE, EI, 0, r2_8u, 0, r1, mov2, 0)
420 C(0xe394, LLC, RXY_a, EI, 0, a2, new, r1_32, ld8u, 0)
421 C(0xe390, LLGC, RXY_a, Z, 0, a2, r1, 0, ld8u, 0)
422 /* LOAD LOGICAL HALFWORD */
423 C(0xb995, LLHR, RRE, EI, 0, r2_16u, 0, r1_32, mov2, 0)
424 C(0xb985, LLGHR, RRE, EI, 0, r2_16u, 0, r1, mov2, 0)
425 C(0xe395, LLH, RXY_a, EI, 0, a2, new, r1_32, ld16u, 0)
426 C(0xe391, LLGH, RXY_a, Z, 0, a2, r1, 0, ld16u, 0)
427 /* LOAD LOGICAL HALFWORD RELATIVE LONG */
428 C(0xc402, LLHRL, RIL_b, GIE, 0, ri2, new, r1_32, ld16u, 0)
429 C(0xc406, LLGHRL, RIL_b, GIE, 0, ri2, r1, 0, ld16u, 0)
430 /* LOAD LOGICAL IMMEDATE */
431 D(0xc00e, LLIHF, RIL_a, EI, 0, i2_32u_shl, 0, r1, mov2, 0, 32)
432 D(0xc00f, LLILF, RIL_a, EI, 0, i2_32u_shl, 0, r1, mov2, 0, 0)
433 D(0xa50c, LLIHH, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 48)
434 D(0xa50d, LLIHL, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 32)
435 D(0xa50e, LLILH, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 16)
436 D(0xa50f, LLILL, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 0)
437 /* LOAD LOGICAL THIRTY ONE BITS */
438 C(0xb917, LLGTR, RRE, Z, 0, r2_o, r1, 0, llgt, 0)
439 C(0xe317, LLGT, RXY_a, Z, 0, m2_32u, r1, 0, llgt, 0)
440 /* LOAD FPR FROM GR */
441 C(0xb3c1, LDGR, RRE, FPRGR, 0, r2_o, 0, f1, mov2, 0)
442 /* LOAD GR FROM FPR */
443 C(0xb3cd, LGDR, RRE, FPRGR, 0, f2_o, 0, r1, mov2, 0)
444 /* LOAD NEGATIVE */
445 C(0x1100, LNR, RR_a, Z, 0, r2_32s, new, r1_32, nabs, nabs32)
446 C(0xb901, LNGR, RRE, Z, 0, r2, r1, 0, nabs, nabs64)
447 C(0xb911, LNGFR, RRE, Z, 0, r2_32s, r1, 0, nabs, nabs64)
448 C(0xb301, LNEBR, RRE, Z, 0, e2, new, e1, nabsf32, f32)
449 C(0xb311, LNDBR, RRE, Z, 0, f2_o, f1, 0, nabsf64, f64)
450 C(0xb341, LNXBR, RRE, Z, 0, x2_o, x1, 0, nabsf128, f128)
451 /* LOAD ON CONDITION */
452 C(0xb9f2, LOCR, RRF_c, LOC, r1, r2, new, r1_32, loc, 0)
453 C(0xb9e2, LOCGR, RRF_c, LOC, r1, r2, r1, 0, loc, 0)
454 C(0xebf2, LOC, RSY_b, LOC, r1, m2_32u, new, r1_32, loc, 0)
455 C(0xebe2, LOCG, RSY_b, LOC, r1, m2_64, r1, 0, loc, 0)
456 /* LOAD PAIR DISJOINT TODO */
457 /* LOAD POSITIVE */
458 C(0x1000, LPR, RR_a, Z, 0, r2_32s, new, r1_32, abs, abs32)
459 C(0xb900, LPGR, RRE, Z, 0, r2, r1, 0, abs, abs64)
460 C(0xb910, LPGFR, RRE, Z, 0, r2_32s, r1, 0, abs, abs64)
461 C(0xb300, LPEBR, RRE, Z, 0, e2, new, e1, absf32, f32)
462 C(0xb310, LPDBR, RRE, Z, 0, f2_o, f1, 0, absf64, f64)
463 C(0xb340, LPXBR, RRE, Z, 0, x2_o, x1, 0, absf128, f128)
464 /* LOAD REVERSED */
465 C(0xb91f, LRVR, RRE, Z, 0, r2_32u, new, r1_32, rev32, 0)
466 C(0xb90f, LRVGR, RRE, Z, 0, r2_o, r1, 0, rev64, 0)
467 C(0xe31f, LRVH, RXY_a, Z, 0, m2_16u, new, r1_16, rev16, 0)
468 C(0xe31e, LRV, RXY_a, Z, 0, m2_32u, new, r1_32, rev32, 0)
469 C(0xe30f, LRVG, RXY_a, Z, 0, m2_64, r1, 0, rev64, 0)
470 /* LOAD ZERO */
471 C(0xb374, LZER, RRE, Z, 0, 0, 0, e1, zero, 0)
472 C(0xb375, LZDR, RRE, Z, 0, 0, 0, f1, zero, 0)
473 C(0xb376, LZXR, RRE, Z, 0, 0, 0, x1, zero2, 0)
475 /* LOAD FPC */
476 C(0xb29d, LFPC, S, Z, 0, m2_32u, 0, 0, sfpc, 0)
477 /* LOAD FPC AND SIGNAL */
478 C(0xb2bd, LFAS, S, IEEEE_SIM, 0, m2_32u, 0, 0, sfas, 0)
480 /* LOAD LENGTHENED */
481 C(0xb304, LDEBR, RRE, Z, 0, e2, f1, 0, ldeb, 0)
482 C(0xb305, LXDBR, RRE, Z, 0, f2_o, x1, 0, lxdb, 0)
483 C(0xb306, LXEBR, RRE, Z, 0, e2, x1, 0, lxeb, 0)
484 C(0xed04, LDEB, RXE, Z, 0, m2_32u, f1, 0, ldeb, 0)
485 C(0xed05, LXDB, RXE, Z, 0, m2_64, x1, 0, lxdb, 0)
486 C(0xed06, LXEB, RXE, Z, 0, m2_32u, x1, 0, lxeb, 0)
487 /* LOAD ROUNDED */
488 C(0xb344, LEDBR, RRE, Z, 0, f2_o, new, e1, ledb, 0)
489 C(0xb345, LDXBR, RRE, Z, 0, x2_o, f1, 0, ldxb, 0)
490 C(0xb346, LEXBR, RRE, Z, 0, x2_o, new, e1, lexb, 0)
492 /* LOAD MULTIPLE */
493 C(0x9800, LM, RS_a, Z, 0, a2, 0, 0, lm32, 0)
494 C(0xeb98, LMY, RSY_a, LD, 0, a2, 0, 0, lm32, 0)
495 C(0xeb04, LMG, RSY_a, Z, 0, a2, 0, 0, lm64, 0)
496 /* LOAD MULTIPLE HIGH */
497 C(0xeb96, LMH, RSY_a, Z, 0, a2, 0, 0, lmh, 0)
498 /* LOAD ACCESS MULTIPLE */
499 C(0x9a00, LAM, RS_a, Z, 0, a2, 0, 0, lam, 0)
500 C(0xeb9a, LAMY, RSY_a, LD, 0, a2, 0, 0, lam, 0)
502 /* MOVE */
503 C(0xd200, MVC, SS_a, Z, la1, a2, 0, 0, mvc, 0)
504 C(0xe544, MVHHI, SIL, GIE, la1, i2, 0, m1_16, mov2, 0)
505 C(0xe54c, MVHI, SIL, GIE, la1, i2, 0, m1_32, mov2, 0)
506 C(0xe548, MVGHI, SIL, GIE, la1, i2, 0, m1_64, mov2, 0)
507 C(0x9200, MVI, SI, Z, la1, i2, 0, m1_8, mov2, 0)
508 C(0xeb52, MVIY, SIY, LD, la1, i2, 0, m1_8, mov2, 0)
509 /* MOVE LONG */
510 C(0x0e00, MVCL, RR_a, Z, 0, 0, 0, 0, mvcl, 0)
511 /* MOVE LONG EXTENDED */
512 C(0xa800, MVCLE, RS_a, Z, 0, a2, 0, 0, mvcle, 0)
513 /* MOVE PAGE */
514 C(0xb254, MVPG, RRE, Z, r1_o, r2_o, 0, 0, mvpg, 0)
515 /* MOVE STRING */
516 C(0xb255, MVST, RRE, Z, r1_o, r2_o, 0, 0, mvst, 0)
518 /* MULTIPLY */
519 C(0x1c00, MR, RR_a, Z, r1p1_32s, r2_32s, new, r1_D32, mul, 0)
520 C(0x5c00, M, RX_a, Z, r1p1_32s, m2_32s, new, r1_D32, mul, 0)
521 C(0xe35c, MFY, RXY_a, GIE, r1p1_32s, m2_32s, new, r1_D32, mul, 0)
522 C(0xb317, MEEBR, RRE, Z, e1, e2, new, e1, meeb, 0)
523 C(0xb31c, MDBR, RRE, Z, f1_o, f2_o, f1, 0, mdb, 0)
524 C(0xb34c, MXBR, RRE, Z, 0, x2_o, x1, 0, mxb, 0)
525 C(0xb30c, MDEBR, RRE, Z, f1_o, e2, f1, 0, mdeb, 0)
526 C(0xb307, MXDBR, RRE, Z, 0, f2_o, x1, 0, mxdb, 0)
527 C(0xed17, MEEB, RXE, Z, e1, m2_32u, new, e1, meeb, 0)
528 C(0xed1c, MDB, RXE, Z, f1_o, m2_64, f1, 0, mdb, 0)
529 C(0xed0c, MDEB, RXE, Z, f1_o, m2_32u, f1, 0, mdeb, 0)
530 C(0xed07, MXDB, RXE, Z, 0, m2_64, x1, 0, mxdb, 0)
531 /* MULTIPLY HALFWORD */
532 C(0x4c00, MH, RX_a, Z, r1_o, m2_16s, new, r1_32, mul, 0)
533 C(0xe37c, MHY, RXY_a, GIE, r1_o, m2_16s, new, r1_32, mul, 0)
534 /* MULTIPLY HALFWORD IMMEDIATE */
535 C(0xa70c, MHI, RI_a, Z, r1_o, i2, new, r1_32, mul, 0)
536 C(0xa70d, MGHI, RI_a, Z, r1_o, i2, r1, 0, mul, 0)
537 /* MULTIPLY LOGICAL */
538 C(0xb996, MLR, RRE, Z, r1p1_32u, r2_32u, new, r1_D32, mul, 0)
539 C(0xe396, ML, RXY_a, Z, r1p1_32u, m2_32u, new, r1_D32, mul, 0)
540 C(0xb986, MLGR, RRE, Z, r1p1, r2_o, r1_P, 0, mul128, 0)
541 C(0xe386, MLG, RXY_a, Z, r1p1, m2_64, r1_P, 0, mul128, 0)
542 /* MULTIPLY SINGLE */
543 C(0xb252, MSR, RRE, Z, r1_o, r2_o, new, r1_32, mul, 0)
544 C(0x7100, MS, RX_a, Z, r1_o, m2_32s, new, r1_32, mul, 0)
545 C(0xe351, MSY, RXY_a, LD, r1_o, m2_32s, new, r1_32, mul, 0)
546 C(0xb90c, MSGR, RRE, Z, r1_o, r2_o, r1, 0, mul, 0)
547 C(0xb91c, MSGFR, RRE, Z, r1_o, r2_32s, r1, 0, mul, 0)
548 C(0xe30c, MSG, RXY_a, Z, r1_o, m2_64, r1, 0, mul, 0)
549 C(0xe31c, MSGF, RXY_a, Z, r1_o, m2_32s, r1, 0, mul, 0)
550 /* MULTIPLY SINGLE IMMEDIATE */
551 C(0xc201, MSFI, RIL_a, GIE, r1_o, i2, new, r1_32, mul, 0)
552 C(0xc200, MSGFI, RIL_a, GIE, r1_o, i2, r1, 0, mul, 0)
554 /* MULTIPLY AND ADD */
555 C(0xb30e, MAEBR, RRD, Z, e1, e2, new, e1, maeb, 0)
556 C(0xb31e, MADBR, RRD, Z, f1_o, f2_o, f1, 0, madb, 0)
557 C(0xed0e, MAEB, RXF, Z, e1, m2_32u, new, e1, maeb, 0)
558 C(0xed1e, MADB, RXF, Z, f1_o, m2_64, f1, 0, madb, 0)
559 /* MULTIPLY AND SUBTRACT */
560 C(0xb30f, MSEBR, RRD, Z, e1, e2, new, e1, mseb, 0)
561 C(0xb31f, MSDBR, RRD, Z, f1_o, f2_o, f1, 0, msdb, 0)
562 C(0xed0f, MSEB, RXF, Z, e1, m2_32u, new, e1, mseb, 0)
563 C(0xed1f, MSDB, RXF, Z, f1_o, m2_64, f1, 0, msdb, 0)
565 /* OR */
566 C(0x1600, OR, RR_a, Z, r1, r2, new, r1_32, or, nz32)
567 C(0xb9f6, ORK, RRF_a, DO, r2, r3, new, r1_32, or, nz32)
568 C(0x5600, O, RX_a, Z, r1, m2_32s, new, r1_32, or, nz32)
569 C(0xe356, OY, RXY_a, LD, r1, m2_32s, new, r1_32, or, nz32)
570 C(0xb981, OGR, RRE, Z, r1, r2, r1, 0, or, nz64)
571 C(0xb9e6, OGRK, RRF_a, DO, r2, r3, r1, 0, or, nz64)
572 C(0xe381, OG, RXY_a, Z, r1, m2_64, r1, 0, or, nz64)
573 C(0xd600, OC, SS_a, Z, la1, a2, 0, 0, oc, 0)
574 /* OR IMMEDIATE */
575 D(0xc00c, OIHF, RIL_a, EI, r1_o, i2_32u, r1, 0, ori, 0, 0x2020)
576 D(0xc00d, OILF, RIL_a, EI, r1_o, i2_32u, r1, 0, ori, 0, 0x2000)
577 D(0xa508, OIHH, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1030)
578 D(0xa509, OIHL, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1020)
579 D(0xa50a, OILH, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1010)
580 D(0xa50b, OILL, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1000)
581 C(0x9600, OI, SI, Z, m1_8u, i2_8u, new, m1_8, or, nz64)
582 C(0xeb56, OIY, SIY, LD, m1_8u, i2_8u, new, m1_8, or, nz64)
584 /* PREFETCH */
585 /* Implemented as nops of course. */
586 C(0xe336, PFD, RXY_b, GIE, 0, 0, 0, 0, 0, 0)
587 C(0xc602, PFDRL, RIL_c, GIE, 0, 0, 0, 0, 0, 0)
589 /* POPULATION COUNT */
590 C(0xb9e1, POPCNT, RRE, PC, 0, r2_o, r1, 0, popcnt, nz64)
592 /* ROTATE LEFT SINGLE LOGICAL */
593 C(0xeb1d, RLL, RSY_a, Z, r3_o, sh32, new, r1_32, rll32, 0)
594 C(0xeb1c, RLLG, RSY_a, Z, r3_o, sh64, r1, 0, rll64, 0)
596 /* ROTATE THEN INSERT SELECTED BITS */
597 C(0xec55, RISBG, RIE_f, GIE, 0, r2, r1, 0, risbg, s64)
598 C(0xec5d, RISBHG, RIE_f, GIE, 0, r2, r1, 0, risbg, 0)
599 C(0xec51, RISBLG, RIE_f, GIE, 0, r2, r1, 0, risbg, 0)
600 /* ROTATE_THEN <OP> SELECTED BITS */
601 C(0xec54, RNSBG, RIE_f, GIE, 0, r2, r1, 0, rosbg, 0)
602 C(0xec56, ROSBG, RIE_f, GIE, 0, r2, r1, 0, rosbg, 0)
603 C(0xec57, RXSBG, RIE_f, GIE, 0, r2, r1, 0, rosbg, 0)
605 /* SEARCH STRING */
606 C(0xb25e, SRST, RRE, Z, r1_o, r2_o, 0, 0, srst, 0)
608 /* SET ACCESS */
609 C(0xb24e, SAR, RRE, Z, 0, r2_o, 0, 0, sar, 0)
610 /* SET ADDRESSING MODE */
611 D(0x010c, SAM24, E, Z, 0, 0, 0, 0, sam, 0, 0)
612 D(0x010d, SAM31, E, Z, 0, 0, 0, 0, sam, 0, 1)
613 D(0x010e, SAM64, E, Z, 0, 0, 0, 0, sam, 0, 3)
614 /* SET FPC */
615 C(0xb384, SFPC, RRE, Z, 0, r1_o, 0, 0, sfpc, 0)
616 /* SET FPC AND SIGNAL */
617 C(0xb385, SFASR, RRE, IEEEE_SIM, 0, r1_o, 0, 0, sfas, 0)
618 /* SET BFP ROUNDING MODE */
619 C(0xb299, SRNM, S, Z, 0, 0, 0, 0, srnm, 0)
620 C(0xb2b8, SRNMB, S, FPE, 0, 0, 0, 0, srnm, 0)
621 /* SET DFP ROUNDING MODE */
622 C(0xb2b9, SRNMT, S, DFP, 0, 0, 0, 0, srnm, 0)
624 /* SHIFT LEFT SINGLE */
625 D(0x8b00, SLA, RS_a, Z, r1, sh32, new, r1_32, sla, 0, 31)
626 D(0xebdd, SLAK, RSY_a, DO, r3, sh32, new, r1_32, sla, 0, 31)
627 D(0xeb0b, SLAG, RSY_a, Z, r3, sh64, r1, 0, sla, 0, 63)
628 /* SHIFT LEFT SINGLE LOGICAL */
629 C(0x8900, SLL, RS_a, Z, r1_o, sh32, new, r1_32, sll, 0)
630 C(0xebdf, SLLK, RSY_a, DO, r3_o, sh32, new, r1_32, sll, 0)
631 C(0xeb0d, SLLG, RSY_a, Z, r3_o, sh64, r1, 0, sll, 0)
632 /* SHIFT RIGHT SINGLE */
633 C(0x8a00, SRA, RS_a, Z, r1_32s, sh32, new, r1_32, sra, s32)
634 C(0xebdc, SRAK, RSY_a, DO, r3_32s, sh32, new, r1_32, sra, s32)
635 C(0xeb0a, SRAG, RSY_a, Z, r3_o, sh64, r1, 0, sra, s64)
636 /* SHIFT RIGHT SINGLE LOGICAL */
637 C(0x8800, SRL, RS_a, Z, r1_32u, sh32, new, r1_32, srl, 0)
638 C(0xebde, SRLK, RSY_a, DO, r3_32u, sh32, new, r1_32, srl, 0)
639 C(0xeb0c, SRLG, RSY_a, Z, r3_o, sh64, r1, 0, srl, 0)
640 /* SHIFT LEFT DOUBLE */
641 D(0x8f00, SLDA, RS_a, Z, r1_D32, sh64, new, r1_D32, sla, 0, 31)
642 /* SHIFT LEFT DOUBLE LOGICAL */
643 C(0x8d00, SLDL, RS_a, Z, r1_D32, sh64, new, r1_D32, sll, 0)
644 /* SHIFT RIGHT DOUBLE */
645 C(0x8e00, SRDA, RS_a, Z, r1_D32, sh64, new, r1_D32, sra, s64)
646 /* SHIFT RIGHT DOUBLE LOGICAL */
647 C(0x8c00, SRDL, RS_a, Z, r1_D32, sh64, new, r1_D32, srl, 0)
649 /* SQUARE ROOT */
650 C(0xb314, SQEBR, RRE, Z, 0, e2, new, e1, sqeb, 0)
651 C(0xb315, SQDBR, RRE, Z, 0, f2_o, f1, 0, sqdb, 0)
652 C(0xb316, SQXBR, RRE, Z, 0, x2_o, x1, 0, sqxb, 0)
653 C(0xed14, SQEB, RXE, Z, 0, m2_32u, new, e1, sqeb, 0)
654 C(0xed15, SQDB, RXE, Z, 0, m2_64, f1, 0, sqdb, 0)
656 /* STORE */
657 C(0x5000, ST, RX_a, Z, r1_o, a2, 0, 0, st32, 0)
658 C(0xe350, STY, RXY_a, LD, r1_o, a2, 0, 0, st32, 0)
659 C(0xe324, STG, RXY_a, Z, r1_o, a2, 0, 0, st64, 0)
660 C(0x6000, STD, RX_a, Z, f1_o, a2, 0, 0, st64, 0)
661 C(0xed67, STDY, RXY_a, LD, f1_o, a2, 0, 0, st64, 0)
662 C(0x7000, STE, RX_a, Z, e1, a2, 0, 0, st32, 0)
663 C(0xed66, STEY, RXY_a, LD, e1, a2, 0, 0, st32, 0)
664 /* STORE RELATIVE LONG */
665 C(0xc40f, STRL, RIL_b, GIE, r1_o, ri2, 0, 0, st32, 0)
666 C(0xc40b, STGRL, RIL_b, GIE, r1_o, ri2, 0, 0, st64, 0)
667 /* STORE CHARACTER */
668 C(0x4200, STC, RX_a, Z, r1_o, a2, 0, 0, st8, 0)
669 C(0xe372, STCY, RXY_a, LD, r1_o, a2, 0, 0, st8, 0)
670 /* STORE CHARACTERS UNDER MASK */
671 D(0xbe00, STCM, RS_b, Z, r1_o, a2, 0, 0, stcm, 0, 0)
672 D(0xeb2d, STCMY, RSY_b, LD, r1_o, a2, 0, 0, stcm, 0, 0)
673 D(0xeb2c, STCMH, RSY_b, LD, r1_o, a2, 0, 0, stcm, 0, 32)
674 /* STORE HALFWORD */
675 C(0x4000, STH, RX_a, Z, r1_o, a2, 0, 0, st16, 0)
676 C(0xe370, STHY, RXY_a, LD, r1_o, a2, 0, 0, st16, 0)
677 /* STORE HALFWORD RELATIVE LONG */
678 C(0xc407, STHRL, RIL_b, GIE, r1_o, ri2, 0, 0, st16, 0)
679 /* STORE ON CONDITION */
680 D(0xebf3, STOC, RSY_b, LOC, 0, 0, 0, 0, soc, 0, 0)
681 D(0xebe3, STOCG, RSY_b, LOC, 0, 0, 0, 0, soc, 0, 1)
682 /* STORE REVERSED */
683 C(0xe33f, STRVH, RXY_a, Z, la2, r1_16u, new, m1_16, rev16, 0)
684 C(0xe33e, STRV, RXY_a, Z, la2, r1_32u, new, m1_32, rev32, 0)
685 C(0xe32f, STRVG, RXY_a, Z, la2, r1_o, new, m1_64, rev64, 0)
687 /* STORE FPC */
688 C(0xb29c, STFPC, S, Z, 0, a2, new, m2_32, efpc, 0)
690 /* STORE MULTIPLE */
691 D(0x9000, STM, RS_a, Z, 0, a2, 0, 0, stm, 0, 4)
692 D(0xeb90, STMY, RSY_a, LD, 0, a2, 0, 0, stm, 0, 4)
693 D(0xeb24, STMG, RSY_a, Z, 0, a2, 0, 0, stm, 0, 8)
694 /* STORE MULTIPLE HIGH */
695 C(0xeb26, STMH, RSY_a, Z, 0, a2, 0, 0, stmh, 0)
696 /* STORE ACCESS MULTIPLE */
697 C(0x9b00, STAM, RS_a, Z, 0, a2, 0, 0, stam, 0)
698 C(0xeb9b, STAMY, RSY_a, LD, 0, a2, 0, 0, stam, 0)
700 /* SUBTRACT */
701 C(0x1b00, SR, RR_a, Z, r1, r2, new, r1_32, sub, subs32)
702 C(0xb9f9, SRK, RRF_a, DO, r2, r3, new, r1_32, sub, subs32)
703 C(0x5b00, S, RX_a, Z, r1, m2_32s, new, r1_32, sub, subs32)
704 C(0xe35b, SY, RXY_a, LD, r1, m2_32s, new, r1_32, sub, subs32)
705 C(0xb909, SGR, RRE, Z, r1, r2, r1, 0, sub, subs64)
706 C(0xb919, SGFR, RRE, Z, r1, r2_32s, r1, 0, sub, subs64)
707 C(0xb9e9, SGRK, RRF_a, DO, r2, r3, r1, 0, sub, subs64)
708 C(0xe309, SG, RXY_a, Z, r1, m2_64, r1, 0, sub, subs64)
709 C(0xe319, SGF, RXY_a, Z, r1, m2_32s, r1, 0, sub, subs64)
710 C(0xb30b, SEBR, RRE, Z, e1, e2, new, e1, seb, f32)
711 C(0xb31b, SDBR, RRE, Z, f1_o, f2_o, f1, 0, sdb, f64)
712 C(0xb34b, SXBR, RRE, Z, 0, x2_o, x1, 0, sxb, f128)
713 C(0xed0b, SEB, RXE, Z, e1, m2_32u, new, e1, seb, f32)
714 C(0xed1b, SDB, RXE, Z, f1_o, m2_64, f1, 0, sdb, f64)
715 /* SUBTRACT HALFWORD */
716 C(0x4b00, SH, RX_a, Z, r1, m2_16s, new, r1_32, sub, subs32)
717 C(0xe37b, SHY, RXY_a, LD, r1, m2_16s, new, r1_32, sub, subs32)
718 /* SUBTRACT LOGICAL */
719 C(0x1f00, SLR, RR_a, Z, r1, r2, new, r1_32, sub, subu32)
720 C(0xb9fb, SLRK, RRF_a, DO, r2, r3, new, r1_32, sub, subu32)
721 C(0x5f00, SL, RX_a, Z, r1, m2_32u, new, r1_32, sub, subu32)
722 C(0xe35f, SLY, RXY_a, LD, r1, m2_32u, new, r1_32, sub, subu32)
723 C(0xb90b, SLGR, RRE, Z, r1, r2, r1, 0, sub, subu64)
724 C(0xb91b, SLGFR, RRE, Z, r1, r2_32u, r1, 0, sub, subu64)
725 C(0xb9eb, SLGRK, RRF_a, DO, r2, r3, r1, 0, sub, subu64)
726 C(0xe30b, SLG, RXY_a, Z, r1, m2_64, r1, 0, sub, subu64)
727 C(0xe31b, SLGF, RXY_a, Z, r1, m2_32u, r1, 0, sub, subu64)
728 /* SUBTRACT LOGICAL IMMEDIATE */
729 C(0xc205, SLFI, RIL_a, EI, r1, i2_32u, new, r1_32, sub, subu32)
730 C(0xc204, SLGFI, RIL_a, EI, r1, i2_32u, r1, 0, sub, subu64)
731 /* SUBTRACT LOGICAL WITH BORROW */
732 C(0xb999, SLBR, RRE, Z, r1, r2, new, r1_32, subb, subb32)
733 C(0xb989, SLBGR, RRE, Z, r1, r2, r1, 0, subb, subb64)
734 C(0xe399, SLB, RXY_a, Z, r1, m2_32u, new, r1_32, subb, subb32)
735 C(0xe389, SLBG, RXY_a, Z, r1, m2_64, r1, 0, subb, subb64)
737 /* SUPERVISOR CALL */
738 C(0x0a00, SVC, I, Z, 0, 0, 0, 0, svc, 0)
740 /* TEST DATA CLASS */
741 C(0xed10, TCEB, RXE, Z, e1, a2, 0, 0, tceb, 0)
742 C(0xed11, TCDB, RXE, Z, f1_o, a2, 0, 0, tcdb, 0)
743 C(0xed12, TCXB, RXE, Z, x1_o, a2, 0, 0, tcxb, 0)
745 /* TEST UNDER MASK */
746 C(0x9100, TM, SI, Z, m1_8u, i2_8u, 0, 0, 0, tm32)
747 C(0xeb51, TMY, SIY, LD, m1_8u, i2_8u, 0, 0, 0, tm32)
748 D(0xa702, TMHH, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 48)
749 D(0xa703, TMHL, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 32)
750 D(0xa700, TMLH, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 16)
751 D(0xa701, TMLL, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 0)
753 /* TRANSLATE */
754 C(0xdc00, TR, SS_a, Z, la1, a2, 0, 0, tr, 0)
756 /* UNPACK */
757 /* Really format SS_b, but we pack both lengths into one argument
758 for the helper call, so we might as well leave one 8-bit field. */
759 C(0xf300, UNPK, SS_a, Z, la1, a2, 0, 0, unpk, 0)
761 #ifndef CONFIG_USER_ONLY
762 /* COMPARE AND SWAP AND PURGE */
763 C(0xb250, CSP, RRE, Z, 0, ra2, 0, 0, csp, 0)
764 /* DIAGNOSE (KVM hypercall) */
765 C(0x8300, DIAG, RX_a, Z, 0, 0, 0, 0, diag, 0)
766 /* INSERT STORAGE KEY EXTENDED */
767 C(0xb229, ISKE, RRE, Z, 0, r2_o, new, r1_8, iske, 0)
768 /* INVALIDATE PAGE TABLE ENTRY */
769 C(0xb221, IPTE, RRF_a, Z, r1_o, r2_o, 0, 0, ipte, 0)
770 /* LOAD CONTROL */
771 C(0xb700, LCTL, RS_a, Z, 0, a2, 0, 0, lctl, 0)
772 C(0xeb2f, LCTLG, RSY_a, Z, 0, a2, 0, 0, lctlg, 0)
773 /* LOAD PSW */
774 C(0x8200, LPSW, S, Z, 0, a2, 0, 0, lpsw, 0)
775 /* LOAD PSW EXTENDED */
776 C(0xb2b2, LPSWE, S, Z, 0, a2, 0, 0, lpswe, 0)
777 /* LOAD REAL ADDRESS */
778 C(0xb100, LRA, RX_a, Z, 0, a2, r1, 0, lra, 0)
779 C(0xe313, LRAY, RXY_a, LD, 0, a2, r1, 0, lra, 0)
780 C(0xe303, LRAG, RXY_a, Z, 0, a2, r1, 0, lra, 0)
781 /* LOAD USING REAL ADDRESS */
782 C(0xb24b, LURA, RRE, Z, 0, r2, new, r1_32, lura, 0)
783 C(0xb905, LURAG, RRE, Z, 0, r2, r1, 0, lurag, 0)
784 /* MOVE TO PRIMARY */
785 C(0xda00, MVCP, SS_d, Z, la1, a2, 0, 0, mvcp, 0)
786 /* MOVE TO SECONDARY */
787 C(0xdb00, MVCS, SS_d, Z, la1, a2, 0, 0, mvcs, 0)
788 /* PURGE TLB */
789 C(0xb20d, PTLB, S, Z, 0, 0, 0, 0, ptlb, 0)
790 /* RESET REFERENCE BIT EXTENDED */
791 C(0xb22a, RRBE, RRE, Z, 0, r2_o, 0, 0, rrbe, 0)
792 /* SERVICE CALL LOGICAL PROCESSOR (PV hypercall) */
793 C(0xb220, SERVC, RRE, Z, r1_o, r2_o, 0, 0, servc, 0)
794 /* SET ADDRESS SPACE CONTROL FAST */
795 C(0xb279, SACF, S, Z, 0, a2, 0, 0, sacf, 0)
796 /* SET CLOCK */
797 /* ??? Not implemented - is it necessary? */
798 C(0xb204, SCK, S, Z, 0, 0, 0, 0, 0, 0)
799 /* SET CLOCK COMPARATOR */
800 C(0xb206, SCKC, S, Z, 0, m2_64, 0, 0, sckc, 0)
801 /* SET CPU TIMER */
802 C(0xb208, SPT, S, Z, 0, m2_64, 0, 0, spt, 0)
803 /* SET PREFIX */
804 C(0xb210, SPX, S, Z, 0, m2_32u, 0, 0, spx, 0)
805 /* SET PSW KEY FROM ADDRESS */
806 C(0xb20a, SPKA, S, Z, 0, a2, 0, 0, spka, 0)
807 /* SET STORAGE KEY EXTENDED */
808 C(0xb22b, SSKE, RRF_c, Z, r1_o, r2_o, 0, 0, sske, 0)
809 /* SET SYSTEM MASK */
810 C(0x8000, SSM, S, Z, 0, m2_8u, 0, 0, ssm, 0)
811 /* SIGNAL PROCESSOR */
812 C(0xae00, SIGP, RS_a, Z, r3_o, a2, 0, 0, sigp, 0)
813 /* STORE CLOCK */
814 C(0xb205, STCK, S, Z, la2, 0, new, m1_64, stck, 0)
815 C(0xb27c, STCKF, S, Z, la2, 0, new, m1_64, stck, 0)
816 /* STORE CLOCK EXTENDED */
817 C(0xb278, STCKE, S, Z, 0, a2, 0, 0, stcke, 0)
818 /* STORE CLOCK COMPARATOR */
819 C(0xb207, STCKC, S, Z, la2, 0, new, m1_64, stckc, 0)
820 /* STORE CONTROL */
821 C(0xb600, STCTL, RS_a, Z, 0, a2, 0, 0, stctl, 0)
822 C(0xeb25, STCTG, RSY_a, Z, 0, a2, 0, 0, stctg, 0)
823 /* STORE CPU ADDRESS */
824 C(0xb212, STAP, S, Z, la2, 0, new, m1_16, stap, 0)
825 /* STORE CPU ID */
826 C(0xb202, STIDP, S, Z, la2, 0, new, m1_64, stidp, 0)
827 /* STORE CPU TIMER */
828 C(0xb209, STPT, S, Z, la2, 0, new, m1_64, stpt, 0)
829 /* STORE FACILITY LIST */
830 C(0xb2b1, STFL, S, Z, 0, 0, 0, 0, stfl, 0)
831 /* STORE PREFIX */
832 C(0xb211, STPX, S, Z, la2, 0, new, m1_32, stpx, 0)
833 /* STORE SYSTEM INFORMATION */
834 C(0xb27d, STSI, S, Z, 0, a2, 0, 0, stsi, 0)
835 /* STORE THEN AND SYSTEM MASK */
836 C(0xac00, STNSM, SI, Z, la1, 0, 0, 0, stnosm, 0)
837 /* STORE THEN OR SYSTEM MASK */
838 C(0xad00, STOSM, SI, Z, la1, 0, 0, 0, stnosm, 0)
839 /* STORE USING REAL ADDRESS */
840 C(0xb246, STURA, RRE, Z, r1_o, r2_o, 0, 0, stura, 0)
841 C(0xb925, STURG, RRE, Z, r1_o, r2_o, 0, 0, sturg, 0)
842 /* TEST PROTECTION */
843 C(0xe501, TPROT, SSE, Z, la1, a2, 0, 0, tprot, 0)
845 /* I/O Instructions. For each we simply indicate non-operation. */
846 C(0xb276, XSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
847 C(0xb230, CSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
848 C(0xb231, HSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
849 C(0xb232, MSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
850 C(0xb23b, RCHP, S, Z, 0, 0, 0, 0, subchannel, 0)
851 C(0xb238, RSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
852 C(0xb233, SSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
853 C(0xb234, STSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
854 C(0xb235, TSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
855 /* ??? Not listed in PoO ninth edition, but there's a linux driver that
856 uses it: "A CHSC subchannel is usually present on LPAR only." */
857 C(0xb25f, CHSC, S, Z, 0, 0, 0, 0, subchannel, 0)
858 #endif /* CONFIG_USER_ONLY */