]> Git Repo - qemu.git/blame - target-s390x/insn-data.def
target-s390x: fix exception for invalid operation code
[qemu.git] / target-s390x / insn-data.def
CommitLineData
13f67dd5
AG
1/*
2 * Arguments to the opcode prototypes
3 *
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)
6 *
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
18 *
19 * The helpers get called in order: I1, I2, P, OP, W, CC
20 */
21
ad044d09
RH
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)
587626f8
RH
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)
ad044d09
RH
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)
d82287de
RH
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)
50
ad044d09
RH
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)
e272b3ac
RH
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)
4e4bb438
RH
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)
ad044d09 74
3bbfbd1f
RH
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)
0a949039 83 C(0xd400, NC, SS_a, Z, la1, a2, 0, 0, nc, 0)
facfc864
RH
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)
a05d2b6b
RH
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)
3bbfbd1f 93
8ac33cdb
RH
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)
7233f2ed
RH
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)
c61aad69
RH
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)
2cf5e350
RH
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)
8ac33cdb 124
374724f9
RH
125/* CHECKSUM */
126 C(0xb241, CKSM, RRE, Z, r1_o, ra2, new, r1_32, cksm, 0)
127
2db014b5
RH
128/* COPY SIGN */
129 C(0xb372, CPSDR, RRF_b, FPSSH, f3_o, f2_o, f1, 0, cps, 0)
130
a7e836d5
RH
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)
587626f8
RH
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)
a7e836d5
RH
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)
403e217f
RH
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)
a7e836d5
RH
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)
164
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)
4f7403d5 173 C(0xd500, CLC, SS_a, Z, la1, a2, 0, 0, clc, 0)
a7e836d5
RH
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)
eb66e6a9
RH
188/* COMPARE LOGICAL LONG EXTENDED */
189 C(0xa900, CLCLE, RS_a, Z, 0, a2, 0, 0, clcle, 0)
32a44d58
RH
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)
aa31bf60
RH
194/* COMPARE LOGICAL STRING */
195 C(0xb25d, CLST, RRE, Z, r1_o, r2_o, 0, 0, clst, 0)
a7e836d5 196
5550359f
RH
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)
215
f3de39c4 216/* COMPARE AND SWAP */
b7886de3
RH
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)
f3de39c4 220/* COMPARE DOUBLE AND SWAP */
b7886de3
RH
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)
f3de39c4 224
1c268751
RH
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)
235
c49daa51
RH
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)
68c8bd93
RH
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)
683bb9a8
RH
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)
6ac1b45f
RH
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)
2112bf1b
RH
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)
c49daa51 267
891452e5
RH
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)
f08a5c31
RH
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)
891452e5
RH
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)
286
3bbfbd1f
RH
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)
d074ac6d 295 C(0xd700, XC, SS_a, Z, 0, 0, 0, 0, xc, 0)
facfc864
RH
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)
a05d2b6b
RH
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)
facfc864 301
6e764e97
RH
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)
306
d62a4c97
RH
307/* EXTRACT ACCESS */
308 C(0xb24f, EAR, RRE, Z, 0, 0, new, r1_32, ear, 0)
0774710f
RH
309/* EXTRACT CPU ATTRIBUTE */
310 C(0xeb4c, ECAG, RSY_a, GIE, 0, a2, r1, 0, ecag, 0)
ea20490f
RH
311/* EXTRACT FPC */
312 C(0xb38c, EFPC, RRE, Z, 0, 0, new, r1_32, efpc, 0)
e30a9d3f
RH
313/* EXTRACT PSW */
314 C(0xb98d, EPSW, RRE, Z, 0, 0, 0, 0, epsw, 0)
ea20490f 315
102bf2c6
RH
316/* FIND LEFTMOST ONE */
317 C(0xb983, FLOGR, RRE, EI, 0, r2_o, r1_P, 0, flogr, 0)
318
afdc70be
RH
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)
58a9e35b
RH
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)
facfc864
RH
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)
6e2704e7
RH
333/* INSERT PROGRAM MASK */
334 C(0xb222, IPM, RRE, Z, 0, 0, r1, 0, ipm, 0)
3bbfbd1f 335
22c37a08
RH
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)
92892330 339 C(0xe358, LY, RXY_a, LD, 0, a2, new, r1_32, ld32s, 0)
22c37a08
RH
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)
d764a8d1
RH
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)
22c37a08
RH
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)
aedec19d
RH
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)
a1c7610a
AJ
360/* LOAD ADDRESS EXTENDED */
361 C(0x5100, LAE, RX_a, Z, 0, a2, 0, r1, mov2e, 0)
362 C(0xe375, LAEY, RXY_a, GIE, 0, a2, 0, r1, mov2e, 0)
aedec19d
RH
363/* LOAD ADDRESS RELATIVE LONG */
364 C(0xc000, LARL, RIL_b, Z, 0, ri2, 0, r1, mov2, 0)
57af7289
AG
365/* LOAD AND ADD */
366 C(0xebf8, LAA, RSY_a, ILA, r3_32s, m2_32s_atomic, new, m2_32_r1_atomic, add, adds32)
367 C(0xebe8, LAAG, RSY_a, ILA, r3, m2_64_atomic, new, m2_64_r1_atomic, add, adds64)
368/* LOAD AND ADD LOGICAL */
369 C(0xebfa, LAAL, RSY_a, ILA, r3_32s, m2_32s_atomic, new, m2_32_r1_atomic, add, addu32)
370 C(0xebea, LAALG, RSY_a, ILA, r3, m2_64_atomic, new, m2_64_r1_atomic, add, addu64)
371/* LOAD AND AND */
372 C(0xebf4, LAN, RSY_a, ILA, r3_32s, m2_32s_atomic, new, m2_32_r1_atomic, and, nz32)
373 C(0xebe4, LANG, RSY_a, ILA, r3, m2_64_atomic, new, m2_64_r1_atomic, and, nz64)
374/* LOAD AND EXCLUSIVE OR */
375 C(0xebf7, LAX, RSY_a, ILA, r3_32s, m2_32s_atomic, new, m2_32_r1_atomic, xor, nz32)
376 C(0xebe7, LAXG, RSY_a, ILA, r3, m2_64_atomic, new, m2_64_r1_atomic, xor, nz64)
377/* LOAD AND OR */
378 C(0xebf6, LAO, RSY_a, ILA, r3_32s, m2_32s_atomic, new, m2_32_r1_atomic, or, nz32)
379 C(0xebe6, LAOG, RSY_a, ILA, r3, m2_64_atomic, new, m2_64_r1_atomic, or, nz64)
11bf2d73
RH
380/* LOAD AND TEST */
381 C(0x1200, LTR, RR_a, Z, 0, r2_o, 0, cond_r1r2_32, mov2, s32)
382 C(0xb902, LTGR, RRE, Z, 0, r2_o, 0, r1, mov2, s64)
383 C(0xb912, LTGFR, RRE, Z, 0, r2_32s, 0, r1, mov2, s64)
384 C(0xe312, LT, RXY_a, EI, 0, a2, new, r1_32, ld32s, s64)
385 C(0xe302, LTG, RXY_a, EI, 0, a2, r1, 0, ld64, s64)
386 C(0xe332, LTGF, RXY_a, GIE, 0, a2, r1, 0, ld32s, s64)
587626f8
RH
387 C(0xb302, LTEBR, RRE, Z, 0, e2, 0, cond_e1e2, mov2, f32)
388 C(0xb312, LTDBR, RRE, Z, 0, f2_o, 0, f1, mov2, f64)
389 C(0xb342, LTXBR, RRE, Z, 0, x2_o, 0, x1, movx, f128)
c698d876
RH
390/* LOAD BYTE */
391 C(0xb926, LBR, RRE, EI, 0, r2_8s, 0, r1_32, mov2, 0)
392 C(0xb906, LGBR, RRE, EI, 0, r2_8s, 0, r1, mov2, 0)
393 C(0xe376, LB, RXY_a, LD, 0, a2, new, r1_32, ld8s, 0)
394 C(0xe377, LGB, RXY_a, LD, 0, a2, r1, 0, ld8s, 0)
b9bca3e5
RH
395/* LOAD COMPLEMENT */
396 C(0x1300, LCR, RR_a, Z, 0, r2, new, r1_32, neg, neg32)
397 C(0xb903, LCGR, RRE, Z, 0, r2, r1, 0, neg, neg64)
398 C(0xb913, LCGFR, RRE, Z, 0, r2_32s, r1, 0, neg, neg64)
5d7fd045
RH
399 C(0xb303, LCEBR, RRE, Z, 0, e2, new, e1, negf32, f32)
400 C(0xb313, LCDBR, RRE, Z, 0, f2_o, f1, 0, negf64, f64)
401 C(0xb343, LCXBR, RRE, Z, 0, x2_o, x1, 0, negf128, f128)
1d1f6301 402 C(0xb373, LCDFR, RRE, FPSSH, 0, f2_o, f1, 0, negf64, 0)
c698d876
RH
403/* LOAD HALFWORD */
404 C(0xb927, LHR, RRE, EI, 0, r2_16s, 0, r1_32, mov2, 0)
405 C(0xb907, LGHR, RRE, EI, 0, r2_16s, 0, r1, mov2, 0)
406 C(0x4800, LH, RX_a, Z, 0, a2, new, r1_32, ld16s, 0)
407 C(0xe378, LHY, RXY_a, LD, 0, a2, new, r1_32, ld16s, 0)
408 C(0xe315, LGH, RXY_a, Z, 0, a2, r1, 0, ld16s, 0)
409/* LOAD HALFWORD IMMEDIATE */
410 C(0xa708, LHI, RI_a, Z, 0, i2, 0, r1_32, mov2, 0)
411 C(0xa709, LGHI, RI_a, Z, 0, i2, 0, r1, mov2, 0)
412/* LOAD HALFWORD RELATIVE LONG */
413 C(0xc405, LHRL, RIL_b, GIE, 0, ri2, new, r1_32, ld16s, 0)
414 C(0xc404, LGHRL, RIL_b, GIE, 0, ri2, r1, 0, ld16s, 0)
22c37a08
RH
415/* LOAD LOGICAL */
416 C(0xb916, LLGFR, RRE, Z, 0, r2_32u, 0, r1, mov2, 0)
417 C(0xe316, LLGF, RXY_a, Z, 0, a2, r1, 0, ld32u, 0)
418/* LOAD LOGICAL RELATIVE LONG */
419 C(0xc40e, LLGFRL, RIL_b, GIE, 0, ri2, r1, 0, ld32u, 0)
c698d876
RH
420/* LOAD LOGICAL CHARACTER */
421 C(0xb994, LLCR, RRE, EI, 0, r2_8u, 0, r1_32, mov2, 0)
422 C(0xb984, LLGCR, RRE, EI, 0, r2_8u, 0, r1, mov2, 0)
423 C(0xe394, LLC, RXY_a, EI, 0, a2, new, r1_32, ld8u, 0)
424 C(0xe390, LLGC, RXY_a, Z, 0, a2, r1, 0, ld8u, 0)
425/* LOAD LOGICAL HALFWORD */
426 C(0xb995, LLHR, RRE, EI, 0, r2_16u, 0, r1_32, mov2, 0)
427 C(0xb985, LLGHR, RRE, EI, 0, r2_16u, 0, r1, mov2, 0)
428 C(0xe395, LLH, RXY_a, EI, 0, a2, new, r1_32, ld16u, 0)
429 C(0xe391, LLGH, RXY_a, Z, 0, a2, r1, 0, ld16u, 0)
430/* LOAD LOGICAL HALFWORD RELATIVE LONG */
431 C(0xc402, LLHRL, RIL_b, GIE, 0, ri2, new, r1_32, ld16u, 0)
432 C(0xc406, LLGHRL, RIL_b, GIE, 0, ri2, r1, 0, ld16u, 0)
ade9dea4
RH
433/* LOAD LOGICAL IMMEDATE */
434 D(0xc00e, LLIHF, RIL_a, EI, 0, i2_32u_shl, 0, r1, mov2, 0, 32)
435 D(0xc00f, LLILF, RIL_a, EI, 0, i2_32u_shl, 0, r1, mov2, 0, 0)
436 D(0xa50c, LLIHH, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 48)
437 D(0xa50d, LLIHL, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 32)
438 D(0xa50e, LLILH, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 16)
439 D(0xa50f, LLILL, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 0)
7691c23b
RH
440/* LOAD LOGICAL THIRTY ONE BITS */
441 C(0xb917, LLGTR, RRE, Z, 0, r2_o, r1, 0, llgt, 0)
442 C(0xe317, LLGT, RXY_a, Z, 0, m2_32u, r1, 0, llgt, 0)
143cbbc5
RH
443/* LOAD FPR FROM GR */
444 C(0xb3c1, LDGR, RRE, FPRGR, 0, r2_o, 0, f1, mov2, 0)
445/* LOAD GR FROM FPR */
446 C(0xb3cd, LGDR, RRE, FPRGR, 0, f2_o, 0, r1, mov2, 0)
b9bca3e5
RH
447/* LOAD NEGATIVE */
448 C(0x1100, LNR, RR_a, Z, 0, r2_32s, new, r1_32, nabs, nabs32)
449 C(0xb901, LNGR, RRE, Z, 0, r2, r1, 0, nabs, nabs64)
450 C(0xb911, LNGFR, RRE, Z, 0, r2_32s, r1, 0, nabs, nabs64)
5d7fd045
RH
451 C(0xb301, LNEBR, RRE, Z, 0, e2, new, e1, nabsf32, f32)
452 C(0xb311, LNDBR, RRE, Z, 0, f2_o, f1, 0, nabsf64, f64)
453 C(0xb341, LNXBR, RRE, Z, 0, x2_o, x1, 0, nabsf128, f128)
632086da
RH
454/* LOAD ON CONDITION */
455 C(0xb9f2, LOCR, RRF_c, LOC, r1, r2, new, r1_32, loc, 0)
456 C(0xb9e2, LOCGR, RRF_c, LOC, r1, r2, r1, 0, loc, 0)
457 C(0xebf2, LOC, RSY_b, LOC, r1, m2_32u, new, r1_32, loc, 0)
458 C(0xebe2, LOCG, RSY_b, LOC, r1, m2_64, r1, 0, loc, 0)
57af7289 459/* LOAD PAIR DISJOINT TODO */
b9bca3e5
RH
460/* LOAD POSITIVE */
461 C(0x1000, LPR, RR_a, Z, 0, r2_32s, new, r1_32, abs, abs32)
462 C(0xb900, LPGR, RRE, Z, 0, r2, r1, 0, abs, abs64)
463 C(0xb910, LPGFR, RRE, Z, 0, r2_32s, r1, 0, abs, abs64)
5d7fd045
RH
464 C(0xb300, LPEBR, RRE, Z, 0, e2, new, e1, absf32, f32)
465 C(0xb310, LPDBR, RRE, Z, 0, f2_o, f1, 0, absf64, f64)
466 C(0xb340, LPXBR, RRE, Z, 0, x2_o, x1, 0, absf128, f128)
d54f5865
RH
467/* LOAD REVERSED */
468 C(0xb91f, LRVR, RRE, Z, 0, r2_32u, new, r1_32, rev32, 0)
469 C(0xb90f, LRVGR, RRE, Z, 0, r2_o, r1, 0, rev64, 0)
470 C(0xe31f, LRVH, RXY_a, Z, 0, m2_16u, new, r1_16, rev16, 0)
471 C(0xe31e, LRV, RXY_a, Z, 0, m2_32u, new, r1_32, rev32, 0)
472 C(0xe30f, LRVG, RXY_a, Z, 0, m2_64, r1, 0, rev64, 0)
24db8412
RH
473/* LOAD ZERO */
474 C(0xb374, LZER, RRE, Z, 0, 0, 0, e1, zero, 0)
475 C(0xb375, LZDR, RRE, Z, 0, 0, 0, f1, zero, 0)
476 C(0xb376, LZXR, RRE, Z, 0, 0, 0, x1, zero2, 0)
22c37a08 477
8379bfdb
RH
478/* LOAD FPC */
479 C(0xb29d, LFPC, S, Z, 0, m2_32u, 0, 0, sfpc, 0)
411edc22
RH
480/* LOAD FPC AND SIGNAL */
481 C(0xb2bd, LFAS, S, IEEEE_SIM, 0, m2_32u, 0, 0, sfas, 0)
8379bfdb 482
587626f8
RH
483/* LOAD LENGTHENED */
484 C(0xb304, LDEBR, RRE, Z, 0, e2, f1, 0, ldeb, 0)
485 C(0xb305, LXDBR, RRE, Z, 0, f2_o, x1, 0, lxdb, 0)
486 C(0xb306, LXEBR, RRE, Z, 0, e2, x1, 0, lxeb, 0)
487 C(0xed04, LDEB, RXE, Z, 0, m2_32u, f1, 0, ldeb, 0)
488 C(0xed05, LXDB, RXE, Z, 0, m2_64, x1, 0, lxdb, 0)
489 C(0xed06, LXEB, RXE, Z, 0, m2_32u, x1, 0, lxeb, 0)
490/* LOAD ROUNDED */
491 C(0xb344, LEDBR, RRE, Z, 0, f2_o, new, e1, ledb, 0)
492 C(0xb345, LDXBR, RRE, Z, 0, x2_o, f1, 0, ldxb, 0)
493 C(0xb346, LEXBR, RRE, Z, 0, x2_o, new, e1, lexb, 0)
494
77f8d6c3
RH
495/* LOAD MULTIPLE */
496 C(0x9800, LM, RS_a, Z, 0, a2, 0, 0, lm32, 0)
497 C(0xeb98, LMY, RSY_a, LD, 0, a2, 0, 0, lm32, 0)
498 C(0xeb04, LMG, RSY_a, Z, 0, a2, 0, 0, lm64, 0)
499/* LOAD MULTIPLE HIGH */
500 C(0xeb96, LMH, RSY_a, Z, 0, a2, 0, 0, lmh, 0)
7df3e93a
RH
501/* LOAD ACCESS MULTIPLE */
502 C(0x9a00, LAM, RS_a, Z, 0, a2, 0, 0, lam, 0)
503 C(0xeb9a, LAMY, RSY_a, LD, 0, a2, 0, 0, lam, 0)
77f8d6c3 504
6a04d76a 505/* MOVE */
af9e5a04 506 C(0xd200, MVC, SS_a, Z, la1, a2, 0, 0, mvc, 0)
6a04d76a
RH
507 C(0xe544, MVHHI, SIL, GIE, la1, i2, 0, m1_16, mov2, 0)
508 C(0xe54c, MVHI, SIL, GIE, la1, i2, 0, m1_32, mov2, 0)
509 C(0xe548, MVGHI, SIL, GIE, la1, i2, 0, m1_64, mov2, 0)
510 C(0x9200, MVI, SI, Z, la1, i2, 0, m1_8, mov2, 0)
511 C(0xeb52, MVIY, SIY, LD, la1, i2, 0, m1_8, mov2, 0)
e1eaada9
RH
512/* MOVE LONG */
513 C(0x0e00, MVCL, RR_a, Z, 0, 0, 0, 0, mvcl, 0)
eb66e6a9
RH
514/* MOVE LONG EXTENDED */
515 C(0xa800, MVCLE, RS_a, Z, 0, a2, 0, 0, mvcle, 0)
ee6c38d5
RH
516/* MOVE PAGE */
517 C(0xb254, MVPG, RRE, Z, r1_o, r2_o, 0, 0, mvpg, 0)
aa31bf60
RH
518/* MOVE STRING */
519 C(0xb255, MVST, RRE, Z, r1_o, r2_o, 0, 0, mvst, 0)
e1eaada9 520
d87aaf93
RH
521/* MULTIPLY */
522 C(0x1c00, MR, RR_a, Z, r1p1_32s, r2_32s, new, r1_D32, mul, 0)
523 C(0x5c00, M, RX_a, Z, r1p1_32s, m2_32s, new, r1_D32, mul, 0)
524 C(0xe35c, MFY, RXY_a, GIE, r1p1_32s, m2_32s, new, r1_D32, mul, 0)
83b00736
RH
525 C(0xb317, MEEBR, RRE, Z, e1, e2, new, e1, meeb, 0)
526 C(0xb31c, MDBR, RRE, Z, f1_o, f2_o, f1, 0, mdb, 0)
527 C(0xb34c, MXBR, RRE, Z, 0, x2_o, x1, 0, mxb, 0)
528 C(0xb30c, MDEBR, RRE, Z, f1_o, e2, f1, 0, mdeb, 0)
529 C(0xb307, MXDBR, RRE, Z, 0, f2_o, x1, 0, mxdb, 0)
530 C(0xed17, MEEB, RXE, Z, e1, m2_32u, new, e1, meeb, 0)
531 C(0xed1c, MDB, RXE, Z, f1_o, m2_64, f1, 0, mdb, 0)
532 C(0xed0c, MDEB, RXE, Z, f1_o, m2_32u, f1, 0, mdeb, 0)
533 C(0xed07, MXDB, RXE, Z, 0, m2_64, x1, 0, mxdb, 0)
d1c04a2b
RH
534/* MULTIPLY HALFWORD */
535 C(0x4c00, MH, RX_a, Z, r1_o, m2_16s, new, r1_32, mul, 0)
536 C(0xe37c, MHY, RXY_a, GIE, r1_o, m2_16s, new, r1_32, mul, 0)
537/* MULTIPLY HALFWORD IMMEDIATE */
538 C(0xa70c, MHI, RI_a, Z, r1_o, i2, new, r1_32, mul, 0)
539 C(0xa70d, MGHI, RI_a, Z, r1_o, i2, r1, 0, mul, 0)
d87aaf93
RH
540/* MULTIPLY LOGICAL */
541 C(0xb996, MLR, RRE, Z, r1p1_32u, r2_32u, new, r1_D32, mul, 0)
542 C(0xe396, ML, RXY_a, Z, r1p1_32u, m2_32u, new, r1_D32, mul, 0)
1ac5889f
RH
543 C(0xb986, MLGR, RRE, Z, r1p1, r2_o, r1_P, 0, mul128, 0)
544 C(0xe386, MLG, RXY_a, Z, r1p1, m2_64, r1_P, 0, mul128, 0)
d1c04a2b
RH
545/* MULTIPLY SINGLE */
546 C(0xb252, MSR, RRE, Z, r1_o, r2_o, new, r1_32, mul, 0)
547 C(0x7100, MS, RX_a, Z, r1_o, m2_32s, new, r1_32, mul, 0)
548 C(0xe351, MSY, RXY_a, LD, r1_o, m2_32s, new, r1_32, mul, 0)
549 C(0xb90c, MSGR, RRE, Z, r1_o, r2_o, r1, 0, mul, 0)
550 C(0xb91c, MSGFR, RRE, Z, r1_o, r2_32s, r1, 0, mul, 0)
551 C(0xe30c, MSG, RXY_a, Z, r1_o, m2_64, r1, 0, mul, 0)
552 C(0xe31c, MSGF, RXY_a, Z, r1_o, m2_32s, r1, 0, mul, 0)
553/* MULTIPLY SINGLE IMMEDIATE */
554 C(0xc201, MSFI, RIL_a, GIE, r1_o, i2, new, r1_32, mul, 0)
555 C(0xc200, MSGFI, RIL_a, GIE, r1_o, i2, r1, 0, mul, 0)
556
722bfec3
RH
557/* MULTIPLY AND ADD */
558 C(0xb30e, MAEBR, RRD, Z, e1, e2, new, e1, maeb, 0)
559 C(0xb31e, MADBR, RRD, Z, f1_o, f2_o, f1, 0, madb, 0)
560 C(0xed0e, MAEB, RXF, Z, e1, m2_32u, new, e1, maeb, 0)
561 C(0xed1e, MADB, RXF, Z, f1_o, m2_64, f1, 0, madb, 0)
562/* MULTIPLY AND SUBTRACT */
563 C(0xb30f, MSEBR, RRD, Z, e1, e2, new, e1, mseb, 0)
564 C(0xb31f, MSDBR, RRD, Z, f1_o, f2_o, f1, 0, msdb, 0)
565 C(0xed0f, MSEB, RXF, Z, e1, m2_32u, new, e1, mseb, 0)
566 C(0xed1f, MSDB, RXF, Z, f1_o, m2_64, f1, 0, msdb, 0)
567
3bbfbd1f
RH
568/* OR */
569 C(0x1600, OR, RR_a, Z, r1, r2, new, r1_32, or, nz32)
570 C(0xb9f6, ORK, RRF_a, DO, r2, r3, new, r1_32, or, nz32)
571 C(0x5600, O, RX_a, Z, r1, m2_32s, new, r1_32, or, nz32)
572 C(0xe356, OY, RXY_a, LD, r1, m2_32s, new, r1_32, or, nz32)
573 C(0xb981, OGR, RRE, Z, r1, r2, r1, 0, or, nz64)
574 C(0xb9e6, OGRK, RRF_a, DO, r2, r3, r1, 0, or, nz64)
575 C(0xe381, OG, RXY_a, Z, r1, m2_64, r1, 0, or, nz64)
0a949039 576 C(0xd600, OC, SS_a, Z, la1, a2, 0, 0, oc, 0)
facfc864
RH
577/* OR IMMEDIATE */
578 D(0xc00c, OIHF, RIL_a, EI, r1_o, i2_32u, r1, 0, ori, 0, 0x2020)
579 D(0xc00d, OILF, RIL_a, EI, r1_o, i2_32u, r1, 0, ori, 0, 0x2000)
580 D(0xa508, OIHH, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1030)
581 D(0xa509, OIHL, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1020)
582 D(0xa50a, OILH, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1010)
583 D(0xa50b, OILL, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1000)
a05d2b6b
RH
584 C(0x9600, OI, SI, Z, m1_8u, i2_8u, new, m1_8, or, nz64)
585 C(0xeb56, OIY, SIY, LD, m1_8u, i2_8u, new, m1_8, or, nz64)
3bbfbd1f 586
e0def909
RH
587/* PREFETCH */
588 /* Implemented as nops of course. */
589 C(0xe336, PFD, RXY_b, GIE, 0, 0, 0, 0, 0, 0)
590 C(0xc602, PFDRL, RIL_c, GIE, 0, 0, 0, 0, 0, 0)
591
99b4f24b
RH
592/* POPULATION COUNT */
593 C(0xb9e1, POPCNT, RRE, PC, 0, r2_o, r1, 0, popcnt, nz64)
594
cbe24bfa
RH
595/* ROTATE LEFT SINGLE LOGICAL */
596 C(0xeb1d, RLL, RSY_a, Z, r3_o, sh32, new, r1_32, rll32, 0)
597 C(0xeb1c, RLLG, RSY_a, Z, r3_o, sh64, r1, 0, rll64, 0)
598
2d6a8698
RH
599/* ROTATE THEN INSERT SELECTED BITS */
600 C(0xec55, RISBG, RIE_f, GIE, 0, r2, r1, 0, risbg, s64)
92892330
AJ
601 C(0xec5d, RISBHG, RIE_f, HW, 0, r2, r1, 0, risbg, 0)
602 C(0xec51, RISBLG, RIE_f, HW, 0, r2, r1, 0, risbg, 0)
d6c6372e
RH
603/* ROTATE_THEN <OP> SELECTED BITS */
604 C(0xec54, RNSBG, RIE_f, GIE, 0, r2, r1, 0, rosbg, 0)
605 C(0xec56, ROSBG, RIE_f, GIE, 0, r2, r1, 0, rosbg, 0)
606 C(0xec57, RXSBG, RIE_f, GIE, 0, r2, r1, 0, rosbg, 0)
2d6a8698 607
4600c994
RH
608/* SEARCH STRING */
609 C(0xb25e, SRST, RRE, Z, r1_o, r2_o, 0, 0, srst, 0)
610
d62a4c97
RH
611/* SET ACCESS */
612 C(0xb24e, SAR, RRE, Z, 0, r2_o, 0, 0, sar, 0)
8612c935
RH
613/* SET ADDRESSING MODE */
614 D(0x010c, SAM24, E, Z, 0, 0, 0, 0, sam, 0, 0)
615 D(0x010d, SAM31, E, Z, 0, 0, 0, 0, sam, 0, 1)
616 D(0x010e, SAM64, E, Z, 0, 0, 0, 0, sam, 0, 3)
8379bfdb
RH
617/* SET FPC */
618 C(0xb384, SFPC, RRE, Z, 0, r1_o, 0, 0, sfpc, 0)
411edc22
RH
619/* SET FPC AND SIGNAL */
620 C(0xb385, SFASR, RRE, IEEEE_SIM, 0, r1_o, 0, 0, sfas, 0)
a12000b9
RH
621/* SET BFP ROUNDING MODE */
622 C(0xb299, SRNM, S, Z, 0, 0, 0, 0, srnm, 0)
623 C(0xb2b8, SRNMB, S, FPE, 0, 0, 0, 0, srnm, 0)
624/* SET DFP ROUNDING MODE */
625 C(0xb2b9, SRNMT, S, DFP, 0, 0, 0, 0, srnm, 0)
8379bfdb 626
cbe24bfa
RH
627/* SHIFT LEFT SINGLE */
628 D(0x8b00, SLA, RS_a, Z, r1, sh32, new, r1_32, sla, 0, 31)
629 D(0xebdd, SLAK, RSY_a, DO, r3, sh32, new, r1_32, sla, 0, 31)
630 D(0xeb0b, SLAG, RSY_a, Z, r3, sh64, r1, 0, sla, 0, 63)
631/* SHIFT LEFT SINGLE LOGICAL */
632 C(0x8900, SLL, RS_a, Z, r1_o, sh32, new, r1_32, sll, 0)
633 C(0xebdf, SLLK, RSY_a, DO, r3_o, sh32, new, r1_32, sll, 0)
634 C(0xeb0d, SLLG, RSY_a, Z, r3_o, sh64, r1, 0, sll, 0)
635/* SHIFT RIGHT SINGLE */
636 C(0x8a00, SRA, RS_a, Z, r1_32s, sh32, new, r1_32, sra, s32)
637 C(0xebdc, SRAK, RSY_a, DO, r3_32s, sh32, new, r1_32, sra, s32)
638 C(0xeb0a, SRAG, RSY_a, Z, r3_o, sh64, r1, 0, sra, s64)
639/* SHIFT RIGHT SINGLE LOGICAL */
640 C(0x8800, SRL, RS_a, Z, r1_32u, sh32, new, r1_32, srl, 0)
641 C(0xebde, SRLK, RSY_a, DO, r3_32u, sh32, new, r1_32, srl, 0)
642 C(0xeb0c, SRLG, RSY_a, Z, r3_o, sh64, r1, 0, srl, 0)
a79ba339
RH
643/* SHIFT LEFT DOUBLE */
644 D(0x8f00, SLDA, RS_a, Z, r1_D32, sh64, new, r1_D32, sla, 0, 31)
645/* SHIFT LEFT DOUBLE LOGICAL */
646 C(0x8d00, SLDL, RS_a, Z, r1_D32, sh64, new, r1_D32, sll, 0)
647/* SHIFT RIGHT DOUBLE */
648 C(0x8e00, SRDA, RS_a, Z, r1_D32, sh64, new, r1_D32, sra, s64)
649/* SHIFT RIGHT DOUBLE LOGICAL */
650 C(0x8c00, SRDL, RS_a, Z, r1_D32, sh64, new, r1_D32, srl, 0)
cbe24bfa 651
16d7b2a4
RH
652/* SQUARE ROOT */
653 C(0xb314, SQEBR, RRE, Z, 0, e2, new, e1, sqeb, 0)
654 C(0xb315, SQDBR, RRE, Z, 0, f2_o, f1, 0, sqdb, 0)
655 C(0xb316, SQXBR, RRE, Z, 0, x2_o, x1, 0, sqxb, 0)
656 C(0xed14, SQEB, RXE, Z, 0, m2_32u, new, e1, sqeb, 0)
657 C(0xed15, SQDB, RXE, Z, 0, m2_64, f1, 0, sqdb, 0)
658
2b280b97
RH
659/* STORE */
660 C(0x5000, ST, RX_a, Z, r1_o, a2, 0, 0, st32, 0)
661 C(0xe350, STY, RXY_a, LD, r1_o, a2, 0, 0, st32, 0)
662 C(0xe324, STG, RXY_a, Z, r1_o, a2, 0, 0, st64, 0)
00574261
RH
663 C(0x6000, STD, RX_a, Z, f1_o, a2, 0, 0, st64, 0)
664 C(0xed67, STDY, RXY_a, LD, f1_o, a2, 0, 0, st64, 0)
665 C(0x7000, STE, RX_a, Z, e1, a2, 0, 0, st32, 0)
666 C(0xed66, STEY, RXY_a, LD, e1, a2, 0, 0, st32, 0)
2b280b97
RH
667/* STORE RELATIVE LONG */
668 C(0xc40f, STRL, RIL_b, GIE, r1_o, ri2, 0, 0, st32, 0)
669 C(0xc40b, STGRL, RIL_b, GIE, r1_o, ri2, 0, 0, st64, 0)
670/* STORE CHARACTER */
671 C(0x4200, STC, RX_a, Z, r1_o, a2, 0, 0, st8, 0)
672 C(0xe372, STCY, RXY_a, LD, r1_o, a2, 0, 0, st8, 0)
2ae68059
RH
673/* STORE CHARACTERS UNDER MASK */
674 D(0xbe00, STCM, RS_b, Z, r1_o, a2, 0, 0, stcm, 0, 0)
675 D(0xeb2d, STCMY, RSY_b, LD, r1_o, a2, 0, 0, stcm, 0, 0)
92892330 676 D(0xeb2c, STCMH, RSY_b, Z, r1_o, a2, 0, 0, stcm, 0, 32)
2b280b97
RH
677/* STORE HALFWORD */
678 C(0x4000, STH, RX_a, Z, r1_o, a2, 0, 0, st16, 0)
679 C(0xe370, STHY, RXY_a, LD, r1_o, a2, 0, 0, st16, 0)
680/* STORE HALFWORD RELATIVE LONG */
681 C(0xc407, STHRL, RIL_b, GIE, r1_o, ri2, 0, 0, st16, 0)
b92fa334
RH
682/* STORE ON CONDITION */
683 D(0xebf3, STOC, RSY_b, LOC, 0, 0, 0, 0, soc, 0, 0)
684 D(0xebe3, STOCG, RSY_b, LOC, 0, 0, 0, 0, soc, 0, 1)
e025e52a
RH
685/* STORE REVERSED */
686 C(0xe33f, STRVH, RXY_a, Z, la2, r1_16u, new, m1_16, rev16, 0)
687 C(0xe33e, STRV, RXY_a, Z, la2, r1_32u, new, m1_32, rev32, 0)
688 C(0xe32f, STRVG, RXY_a, Z, la2, r1_o, new, m1_64, rev64, 0)
2b280b97 689
ea20490f
RH
690/* STORE FPC */
691 C(0xb29c, STFPC, S, Z, 0, a2, new, m2_32, efpc, 0)
692
77f8d6c3
RH
693/* STORE MULTIPLE */
694 D(0x9000, STM, RS_a, Z, 0, a2, 0, 0, stm, 0, 4)
695 D(0xeb90, STMY, RSY_a, LD, 0, a2, 0, 0, stm, 0, 4)
696 D(0xeb24, STMG, RSY_a, Z, 0, a2, 0, 0, stm, 0, 8)
697/* STORE MULTIPLE HIGH */
698 C(0xeb26, STMH, RSY_a, Z, 0, a2, 0, 0, stmh, 0)
7df3e93a
RH
699/* STORE ACCESS MULTIPLE */
700 C(0x9b00, STAM, RS_a, Z, 0, a2, 0, 0, stam, 0)
701 C(0xeb9b, STAMY, RSY_a, LD, 0, a2, 0, 0, stam, 0)
77f8d6c3 702
ad044d09
RH
703/* SUBTRACT */
704 C(0x1b00, SR, RR_a, Z, r1, r2, new, r1_32, sub, subs32)
705 C(0xb9f9, SRK, RRF_a, DO, r2, r3, new, r1_32, sub, subs32)
706 C(0x5b00, S, RX_a, Z, r1, m2_32s, new, r1_32, sub, subs32)
707 C(0xe35b, SY, RXY_a, LD, r1, m2_32s, new, r1_32, sub, subs32)
708 C(0xb909, SGR, RRE, Z, r1, r2, r1, 0, sub, subs64)
709 C(0xb919, SGFR, RRE, Z, r1, r2_32s, r1, 0, sub, subs64)
710 C(0xb9e9, SGRK, RRF_a, DO, r2, r3, r1, 0, sub, subs64)
711 C(0xe309, SG, RXY_a, Z, r1, m2_64, r1, 0, sub, subs64)
712 C(0xe319, SGF, RXY_a, Z, r1, m2_32s, r1, 0, sub, subs64)
1a800a2d
RH
713 C(0xb30b, SEBR, RRE, Z, e1, e2, new, e1, seb, f32)
714 C(0xb31b, SDBR, RRE, Z, f1_o, f2_o, f1, 0, sdb, f64)
715 C(0xb34b, SXBR, RRE, Z, 0, x2_o, x1, 0, sxb, f128)
716 C(0xed0b, SEB, RXE, Z, e1, m2_32u, new, e1, seb, f32)
717 C(0xed1b, SDB, RXE, Z, f1_o, m2_64, f1, 0, sdb, f64)
3f4cb56a
RH
718/* SUBTRACT HALFWORD */
719 C(0x4b00, SH, RX_a, Z, r1, m2_16s, new, r1_32, sub, subs32)
720 C(0xe37b, SHY, RXY_a, LD, r1, m2_16s, new, r1_32, sub, subs32)
ad044d09
RH
721/* SUBTRACT LOGICAL */
722 C(0x1f00, SLR, RR_a, Z, r1, r2, new, r1_32, sub, subu32)
723 C(0xb9fb, SLRK, RRF_a, DO, r2, r3, new, r1_32, sub, subu32)
724 C(0x5f00, SL, RX_a, Z, r1, m2_32u, new, r1_32, sub, subu32)
725 C(0xe35f, SLY, RXY_a, LD, r1, m2_32u, new, r1_32, sub, subu32)
726 C(0xb90b, SLGR, RRE, Z, r1, r2, r1, 0, sub, subu64)
727 C(0xb91b, SLGFR, RRE, Z, r1, r2_32u, r1, 0, sub, subu64)
728 C(0xb9eb, SLGRK, RRF_a, DO, r2, r3, r1, 0, sub, subu64)
729 C(0xe30b, SLG, RXY_a, Z, r1, m2_64, r1, 0, sub, subu64)
730 C(0xe31b, SLGF, RXY_a, Z, r1, m2_32u, r1, 0, sub, subu64)
731/* SUBTRACT LOGICAL IMMEDIATE */
732 C(0xc205, SLFI, RIL_a, EI, r1, i2_32u, new, r1_32, sub, subu32)
733 C(0xc204, SLGFI, RIL_a, EI, r1, i2_32u, r1, 0, sub, subu64)
4e4bb438
RH
734/* SUBTRACT LOGICAL WITH BORROW */
735 C(0xb999, SLBR, RRE, Z, r1, r2, new, r1_32, subb, subb32)
736 C(0xb989, SLBGR, RRE, Z, r1, r2, r1, 0, subb, subb64)
737 C(0xe399, SLB, RXY_a, Z, r1, m2_32u, new, r1_32, subb, subb32)
738 C(0xe389, SLBG, RXY_a, Z, r1, m2_64, r1, 0, subb, subb64)
00d2dc19 739
b9836c1a
RH
740/* SUPERVISOR CALL */
741 C(0x0a00, SVC, I, Z, 0, 0, 0, 0, svc, 0)
742
31aa97d1
RH
743/* TEST DATA CLASS */
744 C(0xed10, TCEB, RXE, Z, e1, a2, 0, 0, tceb, 0)
745 C(0xed11, TCDB, RXE, Z, f1_o, a2, 0, 0, tcdb, 0)
746 C(0xed12, TCXB, RXE, Z, x1_o, a2, 0, 0, tcxb, 0)
747
00d2dc19
RH
748/* TEST UNDER MASK */
749 C(0x9100, TM, SI, Z, m1_8u, i2_8u, 0, 0, 0, tm32)
750 C(0xeb51, TMY, SIY, LD, m1_8u, i2_8u, 0, 0, 0, tm32)
751 D(0xa702, TMHH, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 48)
752 D(0xa703, TMHL, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 32)
753 D(0xa700, TMLH, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 16)
754 D(0xa701, TMLL, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 0)
d9a39927 755
0a949039
RH
756/* TRANSLATE */
757 C(0xdc00, TR, SS_a, Z, la1, a2, 0, 0, tr, 0)
758
759/* UNPACK */
760 /* Really format SS_b, but we pack both lengths into one argument
761 for the helper call, so we might as well leave one 8-bit field. */
762 C(0xf300, UNPK, SS_a, Z, la1, a2, 0, 0, unpk, 0)
763
d9a39927 764#ifndef CONFIG_USER_ONLY
3d596f49
RH
765/* COMPARE AND SWAP AND PURGE */
766 C(0xb250, CSP, RRE, Z, 0, ra2, 0, 0, csp, 0)
972e35b9
RH
767/* DIAGNOSE (KVM hypercall) */
768 C(0x8300, DIAG, RX_a, Z, 0, 0, 0, 0, diag, 0)
8026417c
RH
769/* INSERT STORAGE KEY EXTENDED */
770 C(0xb229, ISKE, RRE, Z, 0, r2_o, new, r1_8, iske, 0)
cfef53e3
RH
771/* INVALIDATE PAGE TABLE ENTRY */
772 C(0xb221, IPTE, RRF_a, Z, r1_o, r2_o, 0, 0, ipte, 0)
504488b8
RH
773/* LOAD CONTROL */
774 C(0xb700, LCTL, RS_a, Z, 0, a2, 0, 0, lctl, 0)
3e398cf9 775 C(0xeb2f, LCTLG, RSY_a, Z, 0, a2, 0, 0, lctlg, 0)
8b5ff571
RH
776/* LOAD PSW */
777 C(0x8200, LPSW, S, Z, 0, a2, 0, 0, lpsw, 0)
7ab938d7
RH
778/* LOAD PSW EXTENDED */
779 C(0xb2b2, LPSWE, S, Z, 0, a2, 0, 0, lpswe, 0)
d8fe4a9c
RH
780/* LOAD REAL ADDRESS */
781 C(0xb100, LRA, RX_a, Z, 0, a2, r1, 0, lra, 0)
782 C(0xe313, LRAY, RXY_a, LD, 0, a2, r1, 0, lra, 0)
783 C(0xe303, LRAG, RXY_a, Z, 0, a2, r1, 0, lra, 0)
9c3fd85b
RH
784/* LOAD USING REAL ADDRESS */
785 C(0xb24b, LURA, RRE, Z, 0, r2, new, r1_32, lura, 0)
786 C(0xb905, LURAG, RRE, Z, 0, r2, r1, 0, lurag, 0)
97c3ab61
RH
787/* MOVE TO PRIMARY */
788 C(0xda00, MVCP, SS_d, Z, la1, a2, 0, 0, mvcp, 0)
789/* MOVE TO SECONDARY */
790 C(0xdb00, MVCS, SS_d, Z, la1, a2, 0, 0, mvcs, 0)
0568d8aa
RH
791/* PURGE TLB */
792 C(0xb20d, PTLB, S, Z, 0, 0, 0, 0, ptlb, 0)
5cc69c54
RH
793/* RESET REFERENCE BIT EXTENDED */
794 C(0xb22a, RRBE, RRE, Z, 0, r2_o, 0, 0, rrbe, 0)
dc458df9
RH
795/* SERVICE CALL LOGICAL PROCESSOR (PV hypercall) */
796 C(0xb220, SERVC, RRE, Z, r1_o, r2_o, 0, 0, servc, 0)
14244b21
RH
797/* SET ADDRESS SPACE CONTROL FAST */
798 C(0xb279, SACF, S, Z, 0, a2, 0, 0, sacf, 0)
35289799
RH
799/* SET CLOCK */
800 /* ??? Not implemented - is it necessary? */
801 C(0xb204, SCK, S, Z, 0, 0, 0, 0, 0, 0)
dd3eb7b5
RH
802/* SET CLOCK COMPARATOR */
803 C(0xb206, SCKC, S, Z, 0, m2_64, 0, 0, sckc, 0)
c4f0a863
RH
804/* SET CPU TIMER */
805 C(0xb208, SPT, S, Z, 0, m2_64, 0, 0, spt, 0)
e805a0d3
RH
806/* SET PREFIX */
807 C(0xb210, SPX, S, Z, 0, m2_32u, 0, 0, spx, 0)
28d55556
RH
808/* SET PSW KEY FROM ADDRESS */
809 C(0xb20a, SPKA, S, Z, 0, a2, 0, 0, spka, 0)
2bbde27f
RH
810/* SET STORAGE KEY EXTENDED */
811 C(0xb22b, SSKE, RRF_c, Z, r1_o, r2_o, 0, 0, sske, 0)
7d30bb73
RH
812/* SET SYSTEM MASK */
813 C(0x8000, SSM, S, Z, 0, m2_8u, 0, 0, ssm, 0)
0c240015
RH
814/* SIGNAL PROCESSOR */
815 C(0xae00, SIGP, RS_a, Z, r3_o, a2, 0, 0, sigp, 0)
434c91a5
RH
816/* STORE CLOCK */
817 C(0xb205, STCK, S, Z, la2, 0, new, m1_64, stck, 0)
818 C(0xb27c, STCKF, S, Z, la2, 0, new, m1_64, stck, 0)
39a5003c
RH
819/* STORE CLOCK EXTENDED */
820 C(0xb278, STCKE, S, Z, 0, a2, 0, 0, stcke, 0)
dd3eb7b5
RH
821/* STORE CLOCK COMPARATOR */
822 C(0xb207, STCKC, S, Z, la2, 0, new, m1_64, stckc, 0)
504488b8
RH
823/* STORE CONTROL */
824 C(0xb600, STCTL, RS_a, Z, 0, a2, 0, 0, stctl, 0)
3e398cf9 825 C(0xeb25, STCTG, RSY_a, Z, 0, a2, 0, 0, stctg, 0)
411fea3d
RH
826/* STORE CPU ADDRESS */
827 C(0xb212, STAP, S, Z, la2, 0, new, m1_16, stap, 0)
71bd6669
RH
828/* STORE CPU ID */
829 C(0xb202, STIDP, S, Z, la2, 0, new, m1_64, stidp, 0)
c4f0a863
RH
830/* STORE CPU TIMER */
831 C(0xb209, STPT, S, Z, la2, 0, new, m1_64, stpt, 0)
fc778b55
RH
832/* STORE FACILITY LIST */
833 C(0xb2b1, STFL, S, Z, 0, 0, 0, 0, stfl, 0)
e805a0d3
RH
834/* STORE PREFIX */
835 C(0xb211, STPX, S, Z, la2, 0, new, m1_32, stpx, 0)
d14b3e09
RH
836/* STORE SYSTEM INFORMATION */
837 C(0xb27d, STSI, S, Z, 0, a2, 0, 0, stsi, 0)
145cdb40
RH
838/* STORE THEN AND SYSTEM MASK */
839 C(0xac00, STNSM, SI, Z, la1, 0, 0, 0, stnosm, 0)
840/* STORE THEN OR SYSTEM MASK */
841 C(0xad00, STOSM, SI, Z, la1, 0, 0, 0, stnosm, 0)
204504e2
RH
842/* STORE USING REAL ADDRESS */
843 C(0xb246, STURA, RRE, Z, r1_o, r2_o, 0, 0, stura, 0)
9c3fd85b 844 C(0xb925, STURG, RRE, Z, r1_o, r2_o, 0, 0, sturg, 0)
112bf079
RH
845/* TEST PROTECTION */
846 C(0xe501, TPROT, SSE, Z, la1, a2, 0, 0, tprot, 0)
2c423fc0
RH
847
848/* I/O Instructions. For each we simply indicate non-operation. */
849 C(0xb276, XSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
850 C(0xb230, CSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
851 C(0xb231, HSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
852 C(0xb232, MSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
853 C(0xb23b, RCHP, S, Z, 0, 0, 0, 0, subchannel, 0)
854 C(0xb238, RSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
855 C(0xb233, SSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
856 C(0xb234, STSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
857 C(0xb235, TSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
858 /* ??? Not listed in PoO ninth edition, but there's a linux driver that
859 uses it: "A CHSC subchannel is usually present on LPAR only." */
860 C(0xb25f, CHSC, S, Z, 0, 0, 0, 0, subchannel, 0)
d9a39927 861#endif /* CONFIG_USER_ONLY */
This page took 0.321357 seconds and 4 git commands to generate.