]> Git Repo - qemu.git/blame - target-s390x/insn-data.def
target-s390x: implement LPDFR and LNDFR instructions
[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 */
74266b4a
AJ
162 C(0xc605, CHRL, RIL_b, GIE, r1_o, mri2_32s, 0, 0, 0, cmps32)
163 C(0xc604, CGHRL, RIL_b, GIE, r1_o, mri2_64, 0, 0, 0, cmps64)
a7e836d5
RH
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)
1dedb9b7 234 D(0xec71, CLGIT, RIE_a, GIE, r1_o, i2_32u, 0, 0, ct, 0, 1)
1c268751 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)
df46283c 454 C(0xb371, LNDFR, RRE, FPSSH, 0, f2_o, f1, 0, nabsf64, 0)
632086da
RH
455/* LOAD ON CONDITION */
456 C(0xb9f2, LOCR, RRF_c, LOC, r1, r2, new, r1_32, loc, 0)
457 C(0xb9e2, LOCGR, RRF_c, LOC, r1, r2, r1, 0, loc, 0)
458 C(0xebf2, LOC, RSY_b, LOC, r1, m2_32u, new, r1_32, loc, 0)
459 C(0xebe2, LOCG, RSY_b, LOC, r1, m2_64, r1, 0, loc, 0)
57af7289 460/* LOAD PAIR DISJOINT TODO */
b9bca3e5
RH
461/* LOAD POSITIVE */
462 C(0x1000, LPR, RR_a, Z, 0, r2_32s, new, r1_32, abs, abs32)
463 C(0xb900, LPGR, RRE, Z, 0, r2, r1, 0, abs, abs64)
464 C(0xb910, LPGFR, RRE, Z, 0, r2_32s, r1, 0, abs, abs64)
5d7fd045
RH
465 C(0xb300, LPEBR, RRE, Z, 0, e2, new, e1, absf32, f32)
466 C(0xb310, LPDBR, RRE, Z, 0, f2_o, f1, 0, absf64, f64)
467 C(0xb340, LPXBR, RRE, Z, 0, x2_o, x1, 0, absf128, f128)
df46283c 468 C(0xb370, LPDFR, RRE, FPSSH, 0, f2_o, f1, 0, absf64, 0)
d54f5865
RH
469/* LOAD REVERSED */
470 C(0xb91f, LRVR, RRE, Z, 0, r2_32u, new, r1_32, rev32, 0)
471 C(0xb90f, LRVGR, RRE, Z, 0, r2_o, r1, 0, rev64, 0)
472 C(0xe31f, LRVH, RXY_a, Z, 0, m2_16u, new, r1_16, rev16, 0)
473 C(0xe31e, LRV, RXY_a, Z, 0, m2_32u, new, r1_32, rev32, 0)
474 C(0xe30f, LRVG, RXY_a, Z, 0, m2_64, r1, 0, rev64, 0)
24db8412
RH
475/* LOAD ZERO */
476 C(0xb374, LZER, RRE, Z, 0, 0, 0, e1, zero, 0)
477 C(0xb375, LZDR, RRE, Z, 0, 0, 0, f1, zero, 0)
478 C(0xb376, LZXR, RRE, Z, 0, 0, 0, x1, zero2, 0)
22c37a08 479
8379bfdb
RH
480/* LOAD FPC */
481 C(0xb29d, LFPC, S, Z, 0, m2_32u, 0, 0, sfpc, 0)
411edc22
RH
482/* LOAD FPC AND SIGNAL */
483 C(0xb2bd, LFAS, S, IEEEE_SIM, 0, m2_32u, 0, 0, sfas, 0)
ed0bcece
AJ
484/* LOAD FP INTEGER */
485 C(0xb357, FIEBR, RRF_e, Z, 0, e2, new, e1, fieb, 0)
486 C(0xb35f, FIDBR, RRF_e, Z, 0, f2_o, f1, 0, fidb, 0)
487 C(0xb347, FIXBR, RRF_e, Z, 0, x2_o, x1, 0, fixb, 0)
8379bfdb 488
587626f8
RH
489/* LOAD LENGTHENED */
490 C(0xb304, LDEBR, RRE, Z, 0, e2, f1, 0, ldeb, 0)
491 C(0xb305, LXDBR, RRE, Z, 0, f2_o, x1, 0, lxdb, 0)
492 C(0xb306, LXEBR, RRE, Z, 0, e2, x1, 0, lxeb, 0)
493 C(0xed04, LDEB, RXE, Z, 0, m2_32u, f1, 0, ldeb, 0)
494 C(0xed05, LXDB, RXE, Z, 0, m2_64, x1, 0, lxdb, 0)
495 C(0xed06, LXEB, RXE, Z, 0, m2_32u, x1, 0, lxeb, 0)
496/* LOAD ROUNDED */
497 C(0xb344, LEDBR, RRE, Z, 0, f2_o, new, e1, ledb, 0)
498 C(0xb345, LDXBR, RRE, Z, 0, x2_o, f1, 0, ldxb, 0)
499 C(0xb346, LEXBR, RRE, Z, 0, x2_o, new, e1, lexb, 0)
500
77f8d6c3
RH
501/* LOAD MULTIPLE */
502 C(0x9800, LM, RS_a, Z, 0, a2, 0, 0, lm32, 0)
503 C(0xeb98, LMY, RSY_a, LD, 0, a2, 0, 0, lm32, 0)
504 C(0xeb04, LMG, RSY_a, Z, 0, a2, 0, 0, lm64, 0)
505/* LOAD MULTIPLE HIGH */
506 C(0xeb96, LMH, RSY_a, Z, 0, a2, 0, 0, lmh, 0)
7df3e93a
RH
507/* LOAD ACCESS MULTIPLE */
508 C(0x9a00, LAM, RS_a, Z, 0, a2, 0, 0, lam, 0)
509 C(0xeb9a, LAMY, RSY_a, LD, 0, a2, 0, 0, lam, 0)
77f8d6c3 510
6a04d76a 511/* MOVE */
af9e5a04 512 C(0xd200, MVC, SS_a, Z, la1, a2, 0, 0, mvc, 0)
6a04d76a
RH
513 C(0xe544, MVHHI, SIL, GIE, la1, i2, 0, m1_16, mov2, 0)
514 C(0xe54c, MVHI, SIL, GIE, la1, i2, 0, m1_32, mov2, 0)
515 C(0xe548, MVGHI, SIL, GIE, la1, i2, 0, m1_64, mov2, 0)
516 C(0x9200, MVI, SI, Z, la1, i2, 0, m1_8, mov2, 0)
517 C(0xeb52, MVIY, SIY, LD, la1, i2, 0, m1_8, mov2, 0)
e1eaada9
RH
518/* MOVE LONG */
519 C(0x0e00, MVCL, RR_a, Z, 0, 0, 0, 0, mvcl, 0)
eb66e6a9
RH
520/* MOVE LONG EXTENDED */
521 C(0xa800, MVCLE, RS_a, Z, 0, a2, 0, 0, mvcle, 0)
ee6c38d5
RH
522/* MOVE PAGE */
523 C(0xb254, MVPG, RRE, Z, r1_o, r2_o, 0, 0, mvpg, 0)
aa31bf60
RH
524/* MOVE STRING */
525 C(0xb255, MVST, RRE, Z, r1_o, r2_o, 0, 0, mvst, 0)
e1eaada9 526
d87aaf93
RH
527/* MULTIPLY */
528 C(0x1c00, MR, RR_a, Z, r1p1_32s, r2_32s, new, r1_D32, mul, 0)
529 C(0x5c00, M, RX_a, Z, r1p1_32s, m2_32s, new, r1_D32, mul, 0)
530 C(0xe35c, MFY, RXY_a, GIE, r1p1_32s, m2_32s, new, r1_D32, mul, 0)
83b00736
RH
531 C(0xb317, MEEBR, RRE, Z, e1, e2, new, e1, meeb, 0)
532 C(0xb31c, MDBR, RRE, Z, f1_o, f2_o, f1, 0, mdb, 0)
533 C(0xb34c, MXBR, RRE, Z, 0, x2_o, x1, 0, mxb, 0)
534 C(0xb30c, MDEBR, RRE, Z, f1_o, e2, f1, 0, mdeb, 0)
535 C(0xb307, MXDBR, RRE, Z, 0, f2_o, x1, 0, mxdb, 0)
536 C(0xed17, MEEB, RXE, Z, e1, m2_32u, new, e1, meeb, 0)
537 C(0xed1c, MDB, RXE, Z, f1_o, m2_64, f1, 0, mdb, 0)
538 C(0xed0c, MDEB, RXE, Z, f1_o, m2_32u, f1, 0, mdeb, 0)
539 C(0xed07, MXDB, RXE, Z, 0, m2_64, x1, 0, mxdb, 0)
d1c04a2b
RH
540/* MULTIPLY HALFWORD */
541 C(0x4c00, MH, RX_a, Z, r1_o, m2_16s, new, r1_32, mul, 0)
542 C(0xe37c, MHY, RXY_a, GIE, r1_o, m2_16s, new, r1_32, mul, 0)
543/* MULTIPLY HALFWORD IMMEDIATE */
544 C(0xa70c, MHI, RI_a, Z, r1_o, i2, new, r1_32, mul, 0)
545 C(0xa70d, MGHI, RI_a, Z, r1_o, i2, r1, 0, mul, 0)
d87aaf93
RH
546/* MULTIPLY LOGICAL */
547 C(0xb996, MLR, RRE, Z, r1p1_32u, r2_32u, new, r1_D32, mul, 0)
548 C(0xe396, ML, RXY_a, Z, r1p1_32u, m2_32u, new, r1_D32, mul, 0)
1ac5889f
RH
549 C(0xb986, MLGR, RRE, Z, r1p1, r2_o, r1_P, 0, mul128, 0)
550 C(0xe386, MLG, RXY_a, Z, r1p1, m2_64, r1_P, 0, mul128, 0)
d1c04a2b
RH
551/* MULTIPLY SINGLE */
552 C(0xb252, MSR, RRE, Z, r1_o, r2_o, new, r1_32, mul, 0)
553 C(0x7100, MS, RX_a, Z, r1_o, m2_32s, new, r1_32, mul, 0)
554 C(0xe351, MSY, RXY_a, LD, r1_o, m2_32s, new, r1_32, mul, 0)
555 C(0xb90c, MSGR, RRE, Z, r1_o, r2_o, r1, 0, mul, 0)
556 C(0xb91c, MSGFR, RRE, Z, r1_o, r2_32s, r1, 0, mul, 0)
557 C(0xe30c, MSG, RXY_a, Z, r1_o, m2_64, r1, 0, mul, 0)
558 C(0xe31c, MSGF, RXY_a, Z, r1_o, m2_32s, r1, 0, mul, 0)
559/* MULTIPLY SINGLE IMMEDIATE */
560 C(0xc201, MSFI, RIL_a, GIE, r1_o, i2, new, r1_32, mul, 0)
561 C(0xc200, MSGFI, RIL_a, GIE, r1_o, i2, r1, 0, mul, 0)
562
722bfec3
RH
563/* MULTIPLY AND ADD */
564 C(0xb30e, MAEBR, RRD, Z, e1, e2, new, e1, maeb, 0)
565 C(0xb31e, MADBR, RRD, Z, f1_o, f2_o, f1, 0, madb, 0)
566 C(0xed0e, MAEB, RXF, Z, e1, m2_32u, new, e1, maeb, 0)
567 C(0xed1e, MADB, RXF, Z, f1_o, m2_64, f1, 0, madb, 0)
568/* MULTIPLY AND SUBTRACT */
569 C(0xb30f, MSEBR, RRD, Z, e1, e2, new, e1, mseb, 0)
570 C(0xb31f, MSDBR, RRD, Z, f1_o, f2_o, f1, 0, msdb, 0)
571 C(0xed0f, MSEB, RXF, Z, e1, m2_32u, new, e1, mseb, 0)
572 C(0xed1f, MSDB, RXF, Z, f1_o, m2_64, f1, 0, msdb, 0)
573
3bbfbd1f
RH
574/* OR */
575 C(0x1600, OR, RR_a, Z, r1, r2, new, r1_32, or, nz32)
576 C(0xb9f6, ORK, RRF_a, DO, r2, r3, new, r1_32, or, nz32)
577 C(0x5600, O, RX_a, Z, r1, m2_32s, new, r1_32, or, nz32)
578 C(0xe356, OY, RXY_a, LD, r1, m2_32s, new, r1_32, or, nz32)
579 C(0xb981, OGR, RRE, Z, r1, r2, r1, 0, or, nz64)
580 C(0xb9e6, OGRK, RRF_a, DO, r2, r3, r1, 0, or, nz64)
581 C(0xe381, OG, RXY_a, Z, r1, m2_64, r1, 0, or, nz64)
0a949039 582 C(0xd600, OC, SS_a, Z, la1, a2, 0, 0, oc, 0)
facfc864
RH
583/* OR IMMEDIATE */
584 D(0xc00c, OIHF, RIL_a, EI, r1_o, i2_32u, r1, 0, ori, 0, 0x2020)
585 D(0xc00d, OILF, RIL_a, EI, r1_o, i2_32u, r1, 0, ori, 0, 0x2000)
586 D(0xa508, OIHH, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1030)
587 D(0xa509, OIHL, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1020)
588 D(0xa50a, OILH, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1010)
589 D(0xa50b, OILL, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1000)
a05d2b6b
RH
590 C(0x9600, OI, SI, Z, m1_8u, i2_8u, new, m1_8, or, nz64)
591 C(0xeb56, OIY, SIY, LD, m1_8u, i2_8u, new, m1_8, or, nz64)
3bbfbd1f 592
e0def909
RH
593/* PREFETCH */
594 /* Implemented as nops of course. */
595 C(0xe336, PFD, RXY_b, GIE, 0, 0, 0, 0, 0, 0)
596 C(0xc602, PFDRL, RIL_c, GIE, 0, 0, 0, 0, 0, 0)
597
99b4f24b
RH
598/* POPULATION COUNT */
599 C(0xb9e1, POPCNT, RRE, PC, 0, r2_o, r1, 0, popcnt, nz64)
600
cbe24bfa
RH
601/* ROTATE LEFT SINGLE LOGICAL */
602 C(0xeb1d, RLL, RSY_a, Z, r3_o, sh32, new, r1_32, rll32, 0)
603 C(0xeb1c, RLLG, RSY_a, Z, r3_o, sh64, r1, 0, rll64, 0)
604
2d6a8698
RH
605/* ROTATE THEN INSERT SELECTED BITS */
606 C(0xec55, RISBG, RIE_f, GIE, 0, r2, r1, 0, risbg, s64)
92892330
AJ
607 C(0xec5d, RISBHG, RIE_f, HW, 0, r2, r1, 0, risbg, 0)
608 C(0xec51, RISBLG, RIE_f, HW, 0, r2, r1, 0, risbg, 0)
d6c6372e
RH
609/* ROTATE_THEN <OP> SELECTED BITS */
610 C(0xec54, RNSBG, RIE_f, GIE, 0, r2, r1, 0, rosbg, 0)
611 C(0xec56, ROSBG, RIE_f, GIE, 0, r2, r1, 0, rosbg, 0)
612 C(0xec57, RXSBG, RIE_f, GIE, 0, r2, r1, 0, rosbg, 0)
2d6a8698 613
4600c994
RH
614/* SEARCH STRING */
615 C(0xb25e, SRST, RRE, Z, r1_o, r2_o, 0, 0, srst, 0)
616
d62a4c97
RH
617/* SET ACCESS */
618 C(0xb24e, SAR, RRE, Z, 0, r2_o, 0, 0, sar, 0)
8612c935
RH
619/* SET ADDRESSING MODE */
620 D(0x010c, SAM24, E, Z, 0, 0, 0, 0, sam, 0, 0)
621 D(0x010d, SAM31, E, Z, 0, 0, 0, 0, sam, 0, 1)
622 D(0x010e, SAM64, E, Z, 0, 0, 0, 0, sam, 0, 3)
8379bfdb
RH
623/* SET FPC */
624 C(0xb384, SFPC, RRE, Z, 0, r1_o, 0, 0, sfpc, 0)
411edc22
RH
625/* SET FPC AND SIGNAL */
626 C(0xb385, SFASR, RRE, IEEEE_SIM, 0, r1_o, 0, 0, sfas, 0)
a12000b9
RH
627/* SET BFP ROUNDING MODE */
628 C(0xb299, SRNM, S, Z, 0, 0, 0, 0, srnm, 0)
629 C(0xb2b8, SRNMB, S, FPE, 0, 0, 0, 0, srnm, 0)
630/* SET DFP ROUNDING MODE */
9182886d 631 C(0xb2b9, SRNMT, S, DFPR, 0, 0, 0, 0, srnm, 0)
8379bfdb 632
cbe24bfa
RH
633/* SHIFT LEFT SINGLE */
634 D(0x8b00, SLA, RS_a, Z, r1, sh32, new, r1_32, sla, 0, 31)
635 D(0xebdd, SLAK, RSY_a, DO, r3, sh32, new, r1_32, sla, 0, 31)
636 D(0xeb0b, SLAG, RSY_a, Z, r3, sh64, r1, 0, sla, 0, 63)
637/* SHIFT LEFT SINGLE LOGICAL */
638 C(0x8900, SLL, RS_a, Z, r1_o, sh32, new, r1_32, sll, 0)
639 C(0xebdf, SLLK, RSY_a, DO, r3_o, sh32, new, r1_32, sll, 0)
640 C(0xeb0d, SLLG, RSY_a, Z, r3_o, sh64, r1, 0, sll, 0)
641/* SHIFT RIGHT SINGLE */
642 C(0x8a00, SRA, RS_a, Z, r1_32s, sh32, new, r1_32, sra, s32)
643 C(0xebdc, SRAK, RSY_a, DO, r3_32s, sh32, new, r1_32, sra, s32)
644 C(0xeb0a, SRAG, RSY_a, Z, r3_o, sh64, r1, 0, sra, s64)
645/* SHIFT RIGHT SINGLE LOGICAL */
646 C(0x8800, SRL, RS_a, Z, r1_32u, sh32, new, r1_32, srl, 0)
647 C(0xebde, SRLK, RSY_a, DO, r3_32u, sh32, new, r1_32, srl, 0)
648 C(0xeb0c, SRLG, RSY_a, Z, r3_o, sh64, r1, 0, srl, 0)
a79ba339
RH
649/* SHIFT LEFT DOUBLE */
650 D(0x8f00, SLDA, RS_a, Z, r1_D32, sh64, new, r1_D32, sla, 0, 31)
651/* SHIFT LEFT DOUBLE LOGICAL */
652 C(0x8d00, SLDL, RS_a, Z, r1_D32, sh64, new, r1_D32, sll, 0)
653/* SHIFT RIGHT DOUBLE */
654 C(0x8e00, SRDA, RS_a, Z, r1_D32, sh64, new, r1_D32, sra, s64)
655/* SHIFT RIGHT DOUBLE LOGICAL */
656 C(0x8c00, SRDL, RS_a, Z, r1_D32, sh64, new, r1_D32, srl, 0)
cbe24bfa 657
16d7b2a4
RH
658/* SQUARE ROOT */
659 C(0xb314, SQEBR, RRE, Z, 0, e2, new, e1, sqeb, 0)
660 C(0xb315, SQDBR, RRE, Z, 0, f2_o, f1, 0, sqdb, 0)
661 C(0xb316, SQXBR, RRE, Z, 0, x2_o, x1, 0, sqxb, 0)
662 C(0xed14, SQEB, RXE, Z, 0, m2_32u, new, e1, sqeb, 0)
663 C(0xed15, SQDB, RXE, Z, 0, m2_64, f1, 0, sqdb, 0)
664
2b280b97
RH
665/* STORE */
666 C(0x5000, ST, RX_a, Z, r1_o, a2, 0, 0, st32, 0)
667 C(0xe350, STY, RXY_a, LD, r1_o, a2, 0, 0, st32, 0)
668 C(0xe324, STG, RXY_a, Z, r1_o, a2, 0, 0, st64, 0)
00574261
RH
669 C(0x6000, STD, RX_a, Z, f1_o, a2, 0, 0, st64, 0)
670 C(0xed67, STDY, RXY_a, LD, f1_o, a2, 0, 0, st64, 0)
671 C(0x7000, STE, RX_a, Z, e1, a2, 0, 0, st32, 0)
672 C(0xed66, STEY, RXY_a, LD, e1, a2, 0, 0, st32, 0)
2b280b97
RH
673/* STORE RELATIVE LONG */
674 C(0xc40f, STRL, RIL_b, GIE, r1_o, ri2, 0, 0, st32, 0)
675 C(0xc40b, STGRL, RIL_b, GIE, r1_o, ri2, 0, 0, st64, 0)
676/* STORE CHARACTER */
677 C(0x4200, STC, RX_a, Z, r1_o, a2, 0, 0, st8, 0)
678 C(0xe372, STCY, RXY_a, LD, r1_o, a2, 0, 0, st8, 0)
2ae68059
RH
679/* STORE CHARACTERS UNDER MASK */
680 D(0xbe00, STCM, RS_b, Z, r1_o, a2, 0, 0, stcm, 0, 0)
681 D(0xeb2d, STCMY, RSY_b, LD, r1_o, a2, 0, 0, stcm, 0, 0)
92892330 682 D(0xeb2c, STCMH, RSY_b, Z, r1_o, a2, 0, 0, stcm, 0, 32)
2b280b97
RH
683/* STORE HALFWORD */
684 C(0x4000, STH, RX_a, Z, r1_o, a2, 0, 0, st16, 0)
685 C(0xe370, STHY, RXY_a, LD, r1_o, a2, 0, 0, st16, 0)
686/* STORE HALFWORD RELATIVE LONG */
687 C(0xc407, STHRL, RIL_b, GIE, r1_o, ri2, 0, 0, st16, 0)
b92fa334
RH
688/* STORE ON CONDITION */
689 D(0xebf3, STOC, RSY_b, LOC, 0, 0, 0, 0, soc, 0, 0)
690 D(0xebe3, STOCG, RSY_b, LOC, 0, 0, 0, 0, soc, 0, 1)
e025e52a
RH
691/* STORE REVERSED */
692 C(0xe33f, STRVH, RXY_a, Z, la2, r1_16u, new, m1_16, rev16, 0)
693 C(0xe33e, STRV, RXY_a, Z, la2, r1_32u, new, m1_32, rev32, 0)
694 C(0xe32f, STRVG, RXY_a, Z, la2, r1_o, new, m1_64, rev64, 0)
2b280b97 695
ea20490f
RH
696/* STORE FPC */
697 C(0xb29c, STFPC, S, Z, 0, a2, new, m2_32, efpc, 0)
698
77f8d6c3
RH
699/* STORE MULTIPLE */
700 D(0x9000, STM, RS_a, Z, 0, a2, 0, 0, stm, 0, 4)
701 D(0xeb90, STMY, RSY_a, LD, 0, a2, 0, 0, stm, 0, 4)
702 D(0xeb24, STMG, RSY_a, Z, 0, a2, 0, 0, stm, 0, 8)
703/* STORE MULTIPLE HIGH */
704 C(0xeb26, STMH, RSY_a, Z, 0, a2, 0, 0, stmh, 0)
7df3e93a
RH
705/* STORE ACCESS MULTIPLE */
706 C(0x9b00, STAM, RS_a, Z, 0, a2, 0, 0, stam, 0)
707 C(0xeb9b, STAMY, RSY_a, LD, 0, a2, 0, 0, stam, 0)
77f8d6c3 708
ad044d09
RH
709/* SUBTRACT */
710 C(0x1b00, SR, RR_a, Z, r1, r2, new, r1_32, sub, subs32)
711 C(0xb9f9, SRK, RRF_a, DO, r2, r3, new, r1_32, sub, subs32)
712 C(0x5b00, S, RX_a, Z, r1, m2_32s, new, r1_32, sub, subs32)
713 C(0xe35b, SY, RXY_a, LD, r1, m2_32s, new, r1_32, sub, subs32)
714 C(0xb909, SGR, RRE, Z, r1, r2, r1, 0, sub, subs64)
715 C(0xb919, SGFR, RRE, Z, r1, r2_32s, r1, 0, sub, subs64)
716 C(0xb9e9, SGRK, RRF_a, DO, r2, r3, r1, 0, sub, subs64)
717 C(0xe309, SG, RXY_a, Z, r1, m2_64, r1, 0, sub, subs64)
718 C(0xe319, SGF, RXY_a, Z, r1, m2_32s, r1, 0, sub, subs64)
1a800a2d
RH
719 C(0xb30b, SEBR, RRE, Z, e1, e2, new, e1, seb, f32)
720 C(0xb31b, SDBR, RRE, Z, f1_o, f2_o, f1, 0, sdb, f64)
721 C(0xb34b, SXBR, RRE, Z, 0, x2_o, x1, 0, sxb, f128)
722 C(0xed0b, SEB, RXE, Z, e1, m2_32u, new, e1, seb, f32)
723 C(0xed1b, SDB, RXE, Z, f1_o, m2_64, f1, 0, sdb, f64)
3f4cb56a
RH
724/* SUBTRACT HALFWORD */
725 C(0x4b00, SH, RX_a, Z, r1, m2_16s, new, r1_32, sub, subs32)
726 C(0xe37b, SHY, RXY_a, LD, r1, m2_16s, new, r1_32, sub, subs32)
ad044d09
RH
727/* SUBTRACT LOGICAL */
728 C(0x1f00, SLR, RR_a, Z, r1, r2, new, r1_32, sub, subu32)
729 C(0xb9fb, SLRK, RRF_a, DO, r2, r3, new, r1_32, sub, subu32)
730 C(0x5f00, SL, RX_a, Z, r1, m2_32u, new, r1_32, sub, subu32)
731 C(0xe35f, SLY, RXY_a, LD, r1, m2_32u, new, r1_32, sub, subu32)
732 C(0xb90b, SLGR, RRE, Z, r1, r2, r1, 0, sub, subu64)
733 C(0xb91b, SLGFR, RRE, Z, r1, r2_32u, r1, 0, sub, subu64)
734 C(0xb9eb, SLGRK, RRF_a, DO, r2, r3, r1, 0, sub, subu64)
735 C(0xe30b, SLG, RXY_a, Z, r1, m2_64, r1, 0, sub, subu64)
736 C(0xe31b, SLGF, RXY_a, Z, r1, m2_32u, r1, 0, sub, subu64)
737/* SUBTRACT LOGICAL IMMEDIATE */
738 C(0xc205, SLFI, RIL_a, EI, r1, i2_32u, new, r1_32, sub, subu32)
739 C(0xc204, SLGFI, RIL_a, EI, r1, i2_32u, r1, 0, sub, subu64)
4e4bb438
RH
740/* SUBTRACT LOGICAL WITH BORROW */
741 C(0xb999, SLBR, RRE, Z, r1, r2, new, r1_32, subb, subb32)
742 C(0xb989, SLBGR, RRE, Z, r1, r2, r1, 0, subb, subb64)
743 C(0xe399, SLB, RXY_a, Z, r1, m2_32u, new, r1_32, subb, subb32)
744 C(0xe389, SLBG, RXY_a, Z, r1, m2_64, r1, 0, subb, subb64)
00d2dc19 745
b9836c1a
RH
746/* SUPERVISOR CALL */
747 C(0x0a00, SVC, I, Z, 0, 0, 0, 0, svc, 0)
748
31aa97d1
RH
749/* TEST DATA CLASS */
750 C(0xed10, TCEB, RXE, Z, e1, a2, 0, 0, tceb, 0)
751 C(0xed11, TCDB, RXE, Z, f1_o, a2, 0, 0, tcdb, 0)
752 C(0xed12, TCXB, RXE, Z, x1_o, a2, 0, 0, tcxb, 0)
753
00d2dc19
RH
754/* TEST UNDER MASK */
755 C(0x9100, TM, SI, Z, m1_8u, i2_8u, 0, 0, 0, tm32)
756 C(0xeb51, TMY, SIY, LD, m1_8u, i2_8u, 0, 0, 0, tm32)
757 D(0xa702, TMHH, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 48)
758 D(0xa703, TMHL, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 32)
759 D(0xa700, TMLH, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 16)
760 D(0xa701, TMLL, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 0)
d9a39927 761
0a949039
RH
762/* TRANSLATE */
763 C(0xdc00, TR, SS_a, Z, la1, a2, 0, 0, tr, 0)
54f00775
AJ
764/* TRANSLATE AND TEST */
765 C(0xdd00, TRT, SS_a, Z, la1, a2, 0, 0, trt, 0)
3f4de675
AJ
766/* TRANSLATE EXTENDED */
767 C(0xb2a5, TRE, RRE, Z, 0, r2, r1_P, 0, tre, 0)
0a949039
RH
768
769/* UNPACK */
770 /* Really format SS_b, but we pack both lengths into one argument
771 for the helper call, so we might as well leave one 8-bit field. */
772 C(0xf300, UNPK, SS_a, Z, la1, a2, 0, 0, unpk, 0)
773
d9a39927 774#ifndef CONFIG_USER_ONLY
3d596f49
RH
775/* COMPARE AND SWAP AND PURGE */
776 C(0xb250, CSP, RRE, Z, 0, ra2, 0, 0, csp, 0)
972e35b9
RH
777/* DIAGNOSE (KVM hypercall) */
778 C(0x8300, DIAG, RX_a, Z, 0, 0, 0, 0, diag, 0)
8026417c
RH
779/* INSERT STORAGE KEY EXTENDED */
780 C(0xb229, ISKE, RRE, Z, 0, r2_o, new, r1_8, iske, 0)
cfef53e3
RH
781/* INVALIDATE PAGE TABLE ENTRY */
782 C(0xb221, IPTE, RRF_a, Z, r1_o, r2_o, 0, 0, ipte, 0)
504488b8
RH
783/* LOAD CONTROL */
784 C(0xb700, LCTL, RS_a, Z, 0, a2, 0, 0, lctl, 0)
3e398cf9 785 C(0xeb2f, LCTLG, RSY_a, Z, 0, a2, 0, 0, lctlg, 0)
8b5ff571
RH
786/* LOAD PSW */
787 C(0x8200, LPSW, S, Z, 0, a2, 0, 0, lpsw, 0)
7ab938d7
RH
788/* LOAD PSW EXTENDED */
789 C(0xb2b2, LPSWE, S, Z, 0, a2, 0, 0, lpswe, 0)
d8fe4a9c
RH
790/* LOAD REAL ADDRESS */
791 C(0xb100, LRA, RX_a, Z, 0, a2, r1, 0, lra, 0)
792 C(0xe313, LRAY, RXY_a, LD, 0, a2, r1, 0, lra, 0)
793 C(0xe303, LRAG, RXY_a, Z, 0, a2, r1, 0, lra, 0)
9c3fd85b
RH
794/* LOAD USING REAL ADDRESS */
795 C(0xb24b, LURA, RRE, Z, 0, r2, new, r1_32, lura, 0)
796 C(0xb905, LURAG, RRE, Z, 0, r2, r1, 0, lurag, 0)
97c3ab61
RH
797/* MOVE TO PRIMARY */
798 C(0xda00, MVCP, SS_d, Z, la1, a2, 0, 0, mvcp, 0)
799/* MOVE TO SECONDARY */
800 C(0xdb00, MVCS, SS_d, Z, la1, a2, 0, 0, mvcs, 0)
0568d8aa
RH
801/* PURGE TLB */
802 C(0xb20d, PTLB, S, Z, 0, 0, 0, 0, ptlb, 0)
5cc69c54
RH
803/* RESET REFERENCE BIT EXTENDED */
804 C(0xb22a, RRBE, RRE, Z, 0, r2_o, 0, 0, rrbe, 0)
dc458df9
RH
805/* SERVICE CALL LOGICAL PROCESSOR (PV hypercall) */
806 C(0xb220, SERVC, RRE, Z, r1_o, r2_o, 0, 0, servc, 0)
14244b21
RH
807/* SET ADDRESS SPACE CONTROL FAST */
808 C(0xb279, SACF, S, Z, 0, a2, 0, 0, sacf, 0)
35289799
RH
809/* SET CLOCK */
810 /* ??? Not implemented - is it necessary? */
811 C(0xb204, SCK, S, Z, 0, 0, 0, 0, 0, 0)
dd3eb7b5
RH
812/* SET CLOCK COMPARATOR */
813 C(0xb206, SCKC, S, Z, 0, m2_64, 0, 0, sckc, 0)
c4f0a863
RH
814/* SET CPU TIMER */
815 C(0xb208, SPT, S, Z, 0, m2_64, 0, 0, spt, 0)
e805a0d3
RH
816/* SET PREFIX */
817 C(0xb210, SPX, S, Z, 0, m2_32u, 0, 0, spx, 0)
28d55556
RH
818/* SET PSW KEY FROM ADDRESS */
819 C(0xb20a, SPKA, S, Z, 0, a2, 0, 0, spka, 0)
2bbde27f
RH
820/* SET STORAGE KEY EXTENDED */
821 C(0xb22b, SSKE, RRF_c, Z, r1_o, r2_o, 0, 0, sske, 0)
7d30bb73
RH
822/* SET SYSTEM MASK */
823 C(0x8000, SSM, S, Z, 0, m2_8u, 0, 0, ssm, 0)
0c240015
RH
824/* SIGNAL PROCESSOR */
825 C(0xae00, SIGP, RS_a, Z, r3_o, a2, 0, 0, sigp, 0)
434c91a5
RH
826/* STORE CLOCK */
827 C(0xb205, STCK, S, Z, la2, 0, new, m1_64, stck, 0)
f7c21140 828 C(0xb27c, STCKF, S, SCF, la2, 0, new, m1_64, stck, 0)
39a5003c
RH
829/* STORE CLOCK EXTENDED */
830 C(0xb278, STCKE, S, Z, 0, a2, 0, 0, stcke, 0)
dd3eb7b5
RH
831/* STORE CLOCK COMPARATOR */
832 C(0xb207, STCKC, S, Z, la2, 0, new, m1_64, stckc, 0)
504488b8
RH
833/* STORE CONTROL */
834 C(0xb600, STCTL, RS_a, Z, 0, a2, 0, 0, stctl, 0)
3e398cf9 835 C(0xeb25, STCTG, RSY_a, Z, 0, a2, 0, 0, stctg, 0)
411fea3d
RH
836/* STORE CPU ADDRESS */
837 C(0xb212, STAP, S, Z, la2, 0, new, m1_16, stap, 0)
71bd6669
RH
838/* STORE CPU ID */
839 C(0xb202, STIDP, S, Z, la2, 0, new, m1_64, stidp, 0)
c4f0a863
RH
840/* STORE CPU TIMER */
841 C(0xb209, STPT, S, Z, la2, 0, new, m1_64, stpt, 0)
fc778b55
RH
842/* STORE FACILITY LIST */
843 C(0xb2b1, STFL, S, Z, 0, 0, 0, 0, stfl, 0)
e805a0d3
RH
844/* STORE PREFIX */
845 C(0xb211, STPX, S, Z, la2, 0, new, m1_32, stpx, 0)
d14b3e09
RH
846/* STORE SYSTEM INFORMATION */
847 C(0xb27d, STSI, S, Z, 0, a2, 0, 0, stsi, 0)
145cdb40
RH
848/* STORE THEN AND SYSTEM MASK */
849 C(0xac00, STNSM, SI, Z, la1, 0, 0, 0, stnosm, 0)
850/* STORE THEN OR SYSTEM MASK */
851 C(0xad00, STOSM, SI, Z, la1, 0, 0, 0, stnosm, 0)
204504e2
RH
852/* STORE USING REAL ADDRESS */
853 C(0xb246, STURA, RRE, Z, r1_o, r2_o, 0, 0, stura, 0)
9c3fd85b 854 C(0xb925, STURG, RRE, Z, r1_o, r2_o, 0, 0, sturg, 0)
112bf079
RH
855/* TEST PROTECTION */
856 C(0xe501, TPROT, SSE, Z, la1, a2, 0, 0, tprot, 0)
2c423fc0
RH
857
858/* I/O Instructions. For each we simply indicate non-operation. */
859 C(0xb276, XSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
860 C(0xb230, CSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
861 C(0xb231, HSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
862 C(0xb232, MSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
863 C(0xb23b, RCHP, S, Z, 0, 0, 0, 0, subchannel, 0)
864 C(0xb238, RSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
865 C(0xb233, SSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
866 C(0xb234, STSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
867 C(0xb235, TSCH, S, Z, 0, 0, 0, 0, subchannel, 0)
868 /* ??? Not listed in PoO ninth edition, but there's a linux driver that
869 uses it: "A CHSC subchannel is usually present on LPAR only." */
870 C(0xb25f, CHSC, S, Z, 0, 0, 0, 0, subchannel, 0)
d9a39927 871#endif /* CONFIG_USER_ONLY */
This page took 0.338897 seconds and 4 git commands to generate.