]> Git Repo - qemu.git/blame - target/s390x/insn-data.def
target/s390x: Implement load-on-condition-2 insns
[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)
a1f12d85
AJ
37/* ADD HIGH */
38 C(0xb9c8, AHHHR, RRF_a, HW, r2_sr32, r3_sr32, new, r1_32h, add, adds32)
39 C(0xb9d8, AHHLR, RRF_a, HW, r2_sr32, r3, new, r1_32h, add, adds32)
ad044d09
RH
40/* ADD IMMEDIATE */
41 C(0xc209, AFI, RIL_a, EI, r1, i2, new, r1_32, add, adds32)
42 C(0xeb6a, ASI, SIY, GIE, m1_32s, i2, new, m1_32, add, adds32)
43 C(0xecd8, AHIK, RIE_d, DO, r3, i2, new, r1_32, add, adds32)
44 C(0xc208, AGFI, RIL_a, EI, r1, i2, r1, 0, add, adds64)
45 C(0xeb7a, AGSI, SIY, GIE, m1_64, i2, new, m1_64, add, adds64)
46 C(0xecd9, AGHIK, RIE_d, DO, r3, i2, r1, 0, add, adds64)
a1f12d85
AJ
47/* ADD IMMEDIATE HIGH */
48 C(0xcc08, AIH, RIL_a, HW, r1_sr32, i2, new, r1_32h, add, adds32)
d82287de
RH
49/* ADD HALFWORD */
50 C(0x4a00, AH, RX_a, Z, r1, m2_16s, new, r1_32, add, adds32)
51 C(0xe37a, AHY, RXY_a, LD, r1, m2_16s, new, r1_32, add, adds32)
52/* ADD HALFWORD IMMEDIATE */
53 C(0xa70a, AHI, RI_a, Z, r1, i2, new, r1_32, add, adds32)
54 C(0xa70b, AGHI, RI_a, Z, r1, i2, r1, 0, add, adds64)
55
ad044d09
RH
56/* ADD LOGICAL */
57 C(0x1e00, ALR, RR_a, Z, r1, r2, new, r1_32, add, addu32)
58 C(0xb9fa, ALRK, RRF_a, DO, r2, r3, new, r1_32, add, addu32)
59 C(0x5e00, AL, RX_a, Z, r1, m2_32u, new, r1_32, add, addu32)
60 C(0xe35e, ALY, RXY_a, LD, r1, m2_32u, new, r1_32, add, addu32)
61 C(0xb90a, ALGR, RRE, Z, r1, r2, r1, 0, add, addu64)
62 C(0xb91a, ALGFR, RRE, Z, r1, r2_32u, r1, 0, add, addu64)
63 C(0xb9ea, ALGRK, RRF_a, DO, r2, r3, r1, 0, add, addu64)
64 C(0xe30a, ALG, RXY_a, Z, r1, m2_64, r1, 0, add, addu64)
65 C(0xe31a, ALGF, RXY_a, Z, r1, m2_32u, r1, 0, add, addu64)
a1f12d85
AJ
66/* ADD LOGICAL HIGH */
67 C(0xb9ca, ALHHHR, RRF_a, HW, r2_sr32, r3_sr32, new, r1_32h, add, addu32)
68 C(0xb9da, ALHHLR, RRF_a, HW, r2_sr32, r3, new, r1_32h, add, addu32)
ad044d09
RH
69/* ADD LOGICAL IMMEDIATE */
70 C(0xc20b, ALFI, RIL_a, EI, r1, i2_32u, new, r1_32, add, addu32)
71 C(0xc20a, ALGFI, RIL_a, EI, r1, i2_32u, r1, 0, add, addu64)
e272b3ac
RH
72/* ADD LOGICAL WITH SIGNED IMMEDIATE */
73 C(0xeb6e, ALSI, SIY, GIE, m1_32u, i2, new, m1_32, add, addu32)
74 C(0xecda, ALHSIK, RIE_d, DO, r3, i2, new, r1_32, add, addu32)
75 C(0xeb7e, ALGSI, SIY, GIE, m1_64, i2, new, m1_64, add, addu64)
76 C(0xecdb, ALGHSIK, RIE_d, DO, r3, i2, r1, 0, add, addu64)
a1f12d85
AJ
77/* ADD LOGICAL WITH SIGNED IMMEDIATE HIGH */
78 C(0xcc0a, ALSIH, RIL_a, HW, r1_sr32, i2, new, r1_32h, add, addu32)
79 C(0xcc0b, ALSIHN, RIL_a, HW, r1_sr32, i2, new, r1_32h, add, 0)
4e4bb438
RH
80/* ADD LOGICAL WITH CARRY */
81 C(0xb998, ALCR, RRE, Z, r1, r2, new, r1_32, addc, addc32)
82 C(0xb988, ALCGR, RRE, Z, r1, r2, r1, 0, addc, addc64)
83 C(0xe398, ALC, RXY_a, Z, r1, m2_32u, new, r1_32, addc, addc32)
84 C(0xe388, ALCG, RXY_a, Z, r1, m2_64, r1, 0, addc, addc64)
ad044d09 85
3bbfbd1f
RH
86/* AND */
87 C(0x1400, NR, RR_a, Z, r1, r2, new, r1_32, and, nz32)
88 C(0xb9f4, NRK, RRF_a, DO, r2, r3, new, r1_32, and, nz32)
89 C(0x5400, N, RX_a, Z, r1, m2_32s, new, r1_32, and, nz32)
90 C(0xe354, NY, RXY_a, LD, r1, m2_32s, new, r1_32, and, nz32)
91 C(0xb980, NGR, RRE, Z, r1, r2, r1, 0, and, nz64)
92 C(0xb9e4, NGRK, RRF_a, DO, r2, r3, r1, 0, and, nz64)
93 C(0xe380, NG, RXY_a, Z, r1, m2_64, r1, 0, and, nz64)
0a949039 94 C(0xd400, NC, SS_a, Z, la1, a2, 0, 0, nc, 0)
facfc864
RH
95/* AND IMMEDIATE */
96 D(0xc00a, NIHF, RIL_a, EI, r1_o, i2_32u, r1, 0, andi, 0, 0x2020)
97 D(0xc00b, NILF, RIL_a, EI, r1_o, i2_32u, r1, 0, andi, 0, 0x2000)
98 D(0xa504, NIHH, RI_a, Z, r1_o, i2_16u, r1, 0, andi, 0, 0x1030)
99 D(0xa505, NIHL, RI_a, Z, r1_o, i2_16u, r1, 0, andi, 0, 0x1020)
100 D(0xa506, NILH, RI_a, Z, r1_o, i2_16u, r1, 0, andi, 0, 0x1010)
101 D(0xa507, NILL, RI_a, Z, r1_o, i2_16u, r1, 0, andi, 0, 0x1000)
a05d2b6b
RH
102 C(0x9400, NI, SI, Z, m1_8u, i2_8u, new, m1_8, and, nz64)
103 C(0xeb54, NIY, SIY, LD, m1_8u, i2_8u, new, m1_8, and, nz64)
3bbfbd1f 104
8ac33cdb
RH
105/* BRANCH AND SAVE */
106 C(0x0d00, BASR, RR_a, Z, 0, r2_nz, r1, 0, bas, 0)
107 C(0x4d00, BAS, RX_a, Z, 0, a2, r1, 0, bas, 0)
108/* BRANCH RELATIVE AND SAVE */
109 C(0xa705, BRAS, RI_b, Z, 0, 0, r1, 0, basi, 0)
110 C(0xc005, BRASL, RIL_b, Z, 0, 0, r1, 0, basi, 0)
7233f2ed
RH
111/* BRANCH ON CONDITION */
112 C(0x0700, BCR, RR_b, Z, 0, r2_nz, 0, 0, bc, 0)
113 C(0x4700, BC, RX_b, Z, 0, a2, 0, 0, bc, 0)
114/* BRANCH RELATIVE ON CONDITION */
115 C(0xa704, BRC, RI_c, Z, 0, 0, 0, 0, bc, 0)
116 C(0xc004, BRCL, RIL_c, Z, 0, 0, 0, 0, bc, 0)
c61aad69
RH
117/* BRANCH ON COUNT */
118 C(0x0600, BCTR, RR_a, Z, 0, r2_nz, 0, 0, bct32, 0)
119 C(0xb946, BCTGR, RRE, Z, 0, r2_nz, 0, 0, bct64, 0)
120 C(0x4600, BCT, RX_a, Z, 0, a2, 0, 0, bct32, 0)
121 C(0xe346, BCTG, RXY_a, Z, 0, a2, 0, 0, bct64, 0)
122/* BRANCH RELATIVE ON COUNT */
123 C(0xa706, BRCT, RI_b, Z, 0, 0, 0, 0, bct32, 0)
124 C(0xa707, BRCTG, RI_b, Z, 0, 0, 0, 0, bct64, 0)
a1f12d85
AJ
125/* BRANCH RELATIVE ON COUNT HIGH */
126 C(0xcc06, BRCTH, RIL_b, HW, 0, 0, 0, 0, bcth, 0)
2cf5e350
RH
127/* BRANCH ON INDEX */
128 D(0x8600, BXH, RS_a, Z, 0, a2, 0, 0, bx32, 0, 0)
129 D(0x8700, BXLE, RS_a, Z, 0, a2, 0, 0, bx32, 0, 1)
130 D(0xeb44, BXHG, RSY_a, Z, 0, a2, 0, 0, bx64, 0, 0)
131 D(0xeb45, BXLEG, RSY_a, Z, 0, a2, 0, 0, bx64, 0, 1)
132/* BRANCH RELATIVE ON INDEX */
133 D(0x8400, BRXH, RSI, Z, 0, 0, 0, 0, bx32, 0, 0)
134 D(0x8500, BRXLE, RSI, Z, 0, 0, 0, 0, bx32, 0, 1)
135 D(0xec44, BRXHG, RIE_e, Z, 0, 0, 0, 0, bx64, 0, 0)
136 D(0xec45, BRXHLE, RIE_e, Z, 0, 0, 0, 0, bx64, 0, 1)
8ac33cdb 137
374724f9
RH
138/* CHECKSUM */
139 C(0xb241, CKSM, RRE, Z, r1_o, ra2, new, r1_32, cksm, 0)
140
2db014b5
RH
141/* COPY SIGN */
142 C(0xb372, CPSDR, RRF_b, FPSSH, f3_o, f2_o, f1, 0, cps, 0)
143
a7e836d5
RH
144/* COMPARE */
145 C(0x1900, CR, RR_a, Z, r1_o, r2_o, 0, 0, 0, cmps32)
146 C(0x5900, C, RX_a, Z, r1_o, m2_32s, 0, 0, 0, cmps32)
147 C(0xe359, CY, RXY_a, LD, r1_o, m2_32s, 0, 0, 0, cmps32)
148 C(0xb920, CGR, RRE, Z, r1_o, r2_o, 0, 0, 0, cmps64)
149 C(0xb930, CGFR, RRE, Z, r1_o, r2_32s, 0, 0, 0, cmps64)
150 C(0xe320, CG, RXY_a, Z, r1_o, m2_64, 0, 0, 0, cmps64)
151 C(0xe330, CGF, RXY_a, Z, r1_o, m2_32s, 0, 0, 0, cmps64)
587626f8
RH
152 C(0xb309, CEBR, RRE, Z, e1, e2, 0, 0, ceb, 0)
153 C(0xb319, CDBR, RRE, Z, f1_o, f2_o, 0, 0, cdb, 0)
154 C(0xb349, CXBR, RRE, Z, x1_o, x2_o, 0, 0, cxb, 0)
155 C(0xed09, CEB, RXE, Z, e1, m2_32u, 0, 0, ceb, 0)
156 C(0xed19, CDB, RXE, Z, f1_o, m2_64, 0, 0, cdb, 0)
9c8be598
AJ
157/* COMPARE AND SIGNAL */
158 C(0xb308, KEBR, RRE, Z, e1, e2, 0, 0, keb, 0)
159 C(0xb318, KDBR, RRE, Z, f1_o, f2_o, 0, 0, kdb, 0)
160 C(0xb348, KXBR, RRE, Z, x1_o, x2_o, 0, 0, kxb, 0)
161 C(0xed08, KEB, RXE, Z, e1, m2_32u, 0, 0, keb, 0)
162 C(0xed18, KDB, RXE, Z, f1_o, m2_64, 0, 0, kdb, 0)
a7e836d5
RH
163/* COMPARE IMMEDIATE */
164 C(0xc20d, CFI, RIL_a, EI, r1, i2, 0, 0, 0, cmps32)
165 C(0xc20c, CGFI, RIL_a, EI, r1, i2, 0, 0, 0, cmps64)
403e217f
RH
166/* COMPARE RELATIVE LONG */
167 C(0xc60d, CRL, RIL_b, GIE, r1, mri2_32s, 0, 0, 0, cmps32)
168 C(0xc608, CGRL, RIL_b, GIE, r1, mri2_64, 0, 0, 0, cmps64)
169 C(0xc60c, CGFRL, RIL_b, GIE, r1, mri2_32s, 0, 0, 0, cmps64)
a7e836d5
RH
170/* COMPARE HALFWORD */
171 C(0x4900, CH, RX_a, Z, r1_o, m2_16s, 0, 0, 0, cmps32)
172 C(0xe379, CHY, RXY_a, LD, r1_o, m2_16s, 0, 0, 0, cmps32)
173 C(0xe334, CGH, RXY_a, GIE, r1_o, m2_16s, 0, 0, 0, cmps64)
174/* COMPARE HALFWORD IMMEDIATE */
175 C(0xa70e, CHI, RI_a, Z, r1_o, i2, 0, 0, 0, cmps32)
176 C(0xa70f, CGHI, RI_a, Z, r1_o, i2, 0, 0, 0, cmps64)
177 C(0xe554, CHHSI, SIL, GIE, m1_16s, i2, 0, 0, 0, cmps64)
178 C(0xe55c, CHSI, SIL, GIE, m1_32s, i2, 0, 0, 0, cmps64)
179 C(0xe558, CGHSI, SIL, GIE, m1_64, i2, 0, 0, 0, cmps64)
180/* COMPARE HALFWORD RELATIVE LONG */
74266b4a
AJ
181 C(0xc605, CHRL, RIL_b, GIE, r1_o, mri2_32s, 0, 0, 0, cmps32)
182 C(0xc604, CGHRL, RIL_b, GIE, r1_o, mri2_64, 0, 0, 0, cmps64)
a1f12d85
AJ
183/* COMPARE HIGH */
184 C(0xb9cd, CHHR, RRE, HW, r1_sr32, r2_sr32, 0, 0, 0, cmps32)
185 C(0xb9dd, CHLR, RRE, HW, r1_sr32, r2_o, 0, 0, 0, cmps32)
186 C(0xe3cd, CHF, RXY_a, HW, r1_sr32, m2_32s, 0, 0, 0, cmps32)
187/* COMPARE IMMEDIATE HIGH */
188 C(0xcc0d, CIH, RIL_a, HW, r1_sr32, i2, 0, 0, 0, cmps32)
a7e836d5
RH
189
190/* COMPARE LOGICAL */
191 C(0x1500, CLR, RR_a, Z, r1, r2, 0, 0, 0, cmpu32)
192 C(0x5500, CL, RX_a, Z, r1, m2_32s, 0, 0, 0, cmpu32)
193 C(0xe355, CLY, RXY_a, LD, r1, m2_32s, 0, 0, 0, cmpu32)
194 C(0xb921, CLGR, RRE, Z, r1, r2, 0, 0, 0, cmpu64)
195 C(0xb931, CLGFR, RRE, Z, r1, r2_32u, 0, 0, 0, cmpu64)
196 C(0xe321, CLG, RXY_a, Z, r1, m2_64, 0, 0, 0, cmpu64)
197 C(0xe331, CLGF, RXY_a, Z, r1, m2_32u, 0, 0, 0, cmpu64)
4f7403d5 198 C(0xd500, CLC, SS_a, Z, la1, a2, 0, 0, clc, 0)
a1f12d85
AJ
199/* COMPARE LOGICAL HIGH */
200 C(0xb9cf, CLHHR, RRE, HW, r1_sr32, r2_sr32, 0, 0, 0, cmpu32)
201 C(0xb9df, CLHLR, RRE, HW, r1_sr32, r2_o, 0, 0, 0, cmpu32)
202 C(0xe3cf, CLHF, RXY_a, HW, r1_sr32, m2_32s, 0, 0, 0, cmpu32)
a7e836d5
RH
203/* COMPARE LOGICAL IMMEDIATE */
204 C(0xc20f, CLFI, RIL_a, EI, r1, i2, 0, 0, 0, cmpu32)
205 C(0xc20e, CLGFI, RIL_a, EI, r1, i2_32u, 0, 0, 0, cmpu64)
206 C(0x9500, CLI, SI, Z, m1_8u, i2_8u, 0, 0, 0, cmpu64)
207 C(0xeb55, CLIY, SIY, LD, m1_8u, i2_8u, 0, 0, 0, cmpu64)
208 C(0xe555, CLHHSI, SIL, GIE, m1_16u, i2_16u, 0, 0, 0, cmpu64)
209 C(0xe55d, CLFHSI, SIL, GIE, m1_32u, i2_16u, 0, 0, 0, cmpu64)
210 C(0xe559, CLGHSI, SIL, GIE, m1_64, i2_16u, 0, 0, 0, cmpu64)
a1f12d85
AJ
211/* COMPARE LOGICAL IMMEDIATE HIGH */
212 C(0xcc0f, CLIH, RIL_a, HW, r1_sr32, i2, 0, 0, 0, cmpu32)
a7e836d5
RH
213/* COMPARE LOGICAL RELATIVE LONG */
214 C(0xc60f, CLRL, RIL_b, GIE, r1_o, mri2_32u, 0, 0, 0, cmpu32)
215 C(0xc60a, CLGRL, RIL_b, GIE, r1_o, mri2_64, 0, 0, 0, cmpu64)
216 C(0xc60e, CLGFRL, RIL_b, GIE, r1_o, mri2_32u, 0, 0, 0, cmpu64)
217 C(0xc607, CLHRL, RIL_b, GIE, r1_o, mri2_16u, 0, 0, 0, cmpu32)
218 C(0xc606, CLGHRL, RIL_b, GIE, r1_o, mri2_16u, 0, 0, 0, cmpu64)
5c2b48a8
AJ
219/* COMPARE LOGICAL LONG */
220 C(0x0f00, CLCL, RR_a, Z, 0, 0, 0, 0, clcl, 0)
eb66e6a9
RH
221/* COMPARE LOGICAL LONG EXTENDED */
222 C(0xa900, CLCLE, RS_a, Z, 0, a2, 0, 0, clcle, 0)
31006af3
AJ
223/* COMPARE LOGICAL LONG UNICODE */
224 C(0xeb8f, CLCLU, RSY_a, E2, 0, a2, 0, 0, clclu, 0)
32a44d58
RH
225/* COMPARE LOGICAL CHARACTERS UNDER MASK */
226 C(0xbd00, CLM, RS_b, Z, r1_o, a2, 0, 0, clm, 0)
227 C(0xeb21, CLMY, RSY_b, LD, r1_o, a2, 0, 0, clm, 0)
228 C(0xeb20, CLMH, RSY_b, Z, r1_sr32, a2, 0, 0, clm, 0)
aa31bf60
RH
229/* COMPARE LOGICAL STRING */
230 C(0xb25d, CLST, RRE, Z, r1_o, r2_o, 0, 0, clst, 0)
a7e836d5 231
5550359f
RH
232/* COMPARE AND BRANCH */
233 D(0xecf6, CRB, RRS, GIE, r1_32s, r2_32s, 0, 0, cj, 0, 0)
234 D(0xece4, CGRB, RRS, GIE, r1_o, r2_o, 0, 0, cj, 0, 0)
235 D(0xec76, CRJ, RIE_b, GIE, r1_32s, r2_32s, 0, 0, cj, 0, 0)
236 D(0xec64, CGRJ, RIE_b, GIE, r1_o, r2_o, 0, 0, cj, 0, 0)
237 D(0xecfe, CIB, RIS, GIE, r1_32s, i2, 0, 0, cj, 0, 0)
238 D(0xecfc, CGIB, RIS, GIE, r1_o, i2, 0, 0, cj, 0, 0)
239 D(0xec7e, CIJ, RIE_c, GIE, r1_32s, i2, 0, 0, cj, 0, 0)
240 D(0xec7c, CGIJ, RIE_c, GIE, r1_o, i2, 0, 0, cj, 0, 0)
241/* COMPARE LOGICAL AND BRANCH */
242 D(0xecf7, CLRB, RRS, GIE, r1_32u, r2_32u, 0, 0, cj, 0, 1)
243 D(0xece5, CLGRB, RRS, GIE, r1_o, r2_o, 0, 0, cj, 0, 1)
244 D(0xec77, CLRJ, RIE_b, GIE, r1_32u, r2_32u, 0, 0, cj, 0, 1)
245 D(0xec65, CLGRJ, RIE_b, GIE, r1_o, r2_o, 0, 0, cj, 0, 1)
246 D(0xecff, CLIB, RIS, GIE, r1_32u, i2_8u, 0, 0, cj, 0, 1)
247 D(0xecfd, CLGIB, RIS, GIE, r1_o, i2_8u, 0, 0, cj, 0, 1)
248 D(0xec7f, CLIJ, RIE_c, GIE, r1_32u, i2_8u, 0, 0, cj, 0, 1)
249 D(0xec7d, CLGIJ, RIE_c, GIE, r1_o, i2_8u, 0, 0, cj, 0, 1)
250
f3de39c4 251/* COMPARE AND SWAP */
303a9ab8
RH
252 D(0xba00, CS, RS_a, Z, r3_32u, r1_32u, new, r1_32, cs, 0, MO_TEUL)
253 D(0xeb14, CSY, RSY_a, LD, r3_32u, r1_32u, new, r1_32, cs, 0, MO_TEUL)
254 D(0xeb30, CSG, RSY_a, Z, r3_o, r1_o, new, r1, cs, 0, MO_TEQ)
f3de39c4 255/* COMPARE DOUBLE AND SWAP */
303a9ab8
RH
256 D(0xbb00, CDS, RS_a, Z, r3_D32, r1_D32, new, r1_D32, cs, 0, MO_TEQ)
257 D(0xeb31, CDSY, RSY_a, LD, r3_D32, r1_D32, new, r1_D32, cs, 0, MO_TEQ)
b7886de3 258 C(0xeb3e, CDSG, RSY_a, Z, 0, 0, 0, 0, cdsg, 0)
f3de39c4 259
1c268751
RH
260/* COMPARE AND TRAP */
261 D(0xb972, CRT, RRF_c, GIE, r1_32s, r2_32s, 0, 0, ct, 0, 0)
262 D(0xb960, CGRT, RRF_c, GIE, r1_o, r2_o, 0, 0, ct, 0, 0)
263 D(0xec72, CIT, RIE_a, GIE, r1_32s, i2, 0, 0, ct, 0, 0)
264 D(0xec70, CGIT, RIE_a, GIE, r1_o, i2, 0, 0, ct, 0, 0)
265/* COMPARE LOGICAL AND TRAP */
266 D(0xb973, CLRT, RRF_c, GIE, r1_32u, r2_32u, 0, 0, ct, 0, 1)
267 D(0xb961, CLGRT, RRF_c, GIE, r1_o, r2_o, 0, 0, ct, 0, 1)
375ee58b
AJ
268 D(0xeb23, CLT, RSY_b, MIE, r1_32u, m2_32u, 0, 0, ct, 0, 1)
269 D(0xeb2b, CLGT, RSY_b, MIE, r1_o, m2_64, 0, 0, ct, 0, 1)
1c268751 270 D(0xec73, CLFIT, RIE_a, GIE, r1_32u, i2_32u, 0, 0, ct, 0, 1)
1dedb9b7 271 D(0xec71, CLGIT, RIE_a, GIE, r1_o, i2_32u, 0, 0, ct, 0, 1)
1c268751 272
c49daa51
RH
273/* CONVERT TO DECIMAL */
274 C(0x4e00, CVD, RX_a, Z, r1_o, a2, 0, 0, cvd, 0)
275 C(0xe326, CVDY, RXY_a, LD, r1_o, a2, 0, 0, cvd, 0)
68c8bd93
RH
276/* CONVERT TO FIXED */
277 C(0xb398, CFEBR, RRF_e, Z, 0, e2, new, r1_32, cfeb, 0)
278 C(0xb399, CFDBR, RRF_e, Z, 0, f2_o, new, r1_32, cfdb, 0)
279 C(0xb39a, CFXBR, RRF_e, Z, 0, x2_o, new, r1_32, cfxb, 0)
280 C(0xb3a8, CGEBR, RRF_e, Z, 0, e2, r1, 0, cgeb, 0)
281 C(0xb3a9, CGDBR, RRF_e, Z, 0, f2_o, r1, 0, cgdb, 0)
282 C(0xb3aa, CGXBR, RRF_e, Z, 0, x2_o, r1, 0, cgxb, 0)
683bb9a8
RH
283/* CONVERT FROM FIXED */
284 C(0xb394, CEFBR, RRF_e, Z, 0, r2_32s, new, e1, cegb, 0)
285 C(0xb395, CDFBR, RRF_e, Z, 0, r2_32s, f1, 0, cdgb, 0)
286 C(0xb396, CXFBR, RRF_e, Z, 0, r2_32s, x1, 0, cxgb, 0)
287 C(0xb3a4, CEGBR, RRF_e, Z, 0, r2_o, new, e1, cegb, 0)
288 C(0xb3a5, CDGBR, RRF_e, Z, 0, r2_o, f1, 0, cdgb, 0)
289 C(0xb3a6, CXGBR, RRF_e, Z, 0, r2_o, x1, 0, cxgb, 0)
6ac1b45f
RH
290/* CONVERT TO LOGICAL */
291 C(0xb39c, CLFEBR, RRF_e, FPE, 0, e2, new, r1_32, clfeb, 0)
292 C(0xb39d, CLFDBR, RRF_e, FPE, 0, f2_o, new, r1_32, clfdb, 0)
293 C(0xb39e, CLFXBR, RRF_e, FPE, 0, x2_o, new, r1_32, clfxb, 0)
294 C(0xb3ac, CLGEBR, RRF_e, FPE, 0, e2, r1, 0, clgeb, 0)
295 C(0xb3ad, CLGDBR, RRF_e, FPE, 0, f2_o, r1, 0, clgdb, 0)
296 C(0xb3ae, CLGXBR, RRF_e, FPE, 0, x2_o, r1, 0, clgxb, 0)
2112bf1b
RH
297/* CONVERT FROM LOGICAL */
298 C(0xb390, CELFBR, RRF_e, FPE, 0, r2_32u, new, e1, celgb, 0)
299 C(0xb391, CDLFBR, RRF_e, FPE, 0, r2_32u, f1, 0, cdlgb, 0)
300 C(0xb392, CXLFBR, RRF_e, FPE, 0, r2_32u, x1, 0, cxlgb, 0)
301 C(0xb3a0, CELGBR, RRF_e, FPE, 0, r2_o, new, e1, celgb, 0)
302 C(0xb3a1, CDLGBR, RRF_e, FPE, 0, r2_o, f1, 0, cdlgb, 0)
303 C(0xb3a2, CXLGBR, RRF_e, FPE, 0, r2_o, x1, 0, cxlgb, 0)
c49daa51 304
891452e5
RH
305/* DIVIDE */
306 C(0x1d00, DR, RR_a, Z, r1_D32, r2_32s, new_P, r1_P32, divs32, 0)
307 C(0x5d00, D, RX_a, Z, r1_D32, m2_32s, new_P, r1_P32, divs32, 0)
f08a5c31
RH
308 C(0xb30d, DEBR, RRE, Z, e1, e2, new, e1, deb, 0)
309 C(0xb31d, DDBR, RRE, Z, f1_o, f2_o, f1, 0, ddb, 0)
310 C(0xb34d, DXBR, RRE, Z, 0, x2_o, x1, 0, dxb, 0)
311 C(0xed0d, DEB, RXE, Z, e1, m2_32u, new, e1, deb, 0)
312 C(0xed1d, DDB, RXE, Z, f1_o, m2_64, f1, 0, ddb, 0)
891452e5
RH
313/* DIVIDE LOGICAL */
314 C(0xb997, DLR, RRE, Z, r1_D32, r2_32u, new_P, r1_P32, divu32, 0)
315 C(0xe397, DL, RXY_a, Z, r1_D32, m2_32u, new_P, r1_P32, divu32, 0)
316 C(0xb987, DLGR, RRE, Z, 0, r2_o, r1_P, 0, divu64, 0)
317 C(0xe387, DLG, RXY_a, Z, 0, m2_64, r1_P, 0, divu64, 0)
318/* DIVIDE SINGLE */
319 C(0xb90d, DSGR, RRE, Z, r1p1, r2, r1_P, 0, divs64, 0)
320 C(0xb91d, DSGFR, RRE, Z, r1p1, r2_32s, r1_P, 0, divs64, 0)
321 C(0xe30d, DSG, RXY_a, Z, r1p1, m2_64, r1_P, 0, divs64, 0)
322 C(0xe31d, DSGF, RXY_a, Z, r1p1, m2_32s, r1_P, 0, divs64, 0)
323
3bbfbd1f
RH
324/* EXCLUSIVE OR */
325 C(0x1700, XR, RR_a, Z, r1, r2, new, r1_32, xor, nz32)
326 C(0xb9f7, XRK, RRF_a, DO, r2, r3, new, r1_32, xor, nz32)
327 C(0x5700, X, RX_a, Z, r1, m2_32s, new, r1_32, xor, nz32)
328 C(0xe357, XY, RXY_a, LD, r1, m2_32s, new, r1_32, xor, nz32)
329 C(0xb982, XGR, RRE, Z, r1, r2, r1, 0, xor, nz64)
330 C(0xb9e7, XGRK, RRF_a, DO, r2, r3, r1, 0, xor, nz64)
331 C(0xe382, XG, RXY_a, Z, r1, m2_64, r1, 0, xor, nz64)
d074ac6d 332 C(0xd700, XC, SS_a, Z, 0, 0, 0, 0, xc, 0)
facfc864
RH
333/* EXCLUSIVE OR IMMEDIATE */
334 D(0xc006, XIHF, RIL_a, EI, r1_o, i2_32u, r1, 0, xori, 0, 0x2020)
335 D(0xc007, XILF, RIL_a, EI, r1_o, i2_32u, r1, 0, xori, 0, 0x2000)
a05d2b6b
RH
336 C(0x9700, XI, SI, Z, m1_8u, i2_8u, new, m1_8, xor, nz64)
337 C(0xeb57, XIY, SIY, LD, m1_8u, i2_8u, new, m1_8, xor, nz64)
facfc864 338
6e764e97 339/* EXECUTE */
a72da8b7 340 C(0x4400, EX, RX_a, Z, 0, a2, 0, 0, ex, 0)
6e764e97 341/* EXECUTE RELATIVE LONG */
a72da8b7 342 C(0xc600, EXRL, RIL_b, EE, 0, ri2, 0, 0, ex, 0)
6e764e97 343
d62a4c97
RH
344/* EXTRACT ACCESS */
345 C(0xb24f, EAR, RRE, Z, 0, 0, new, r1_32, ear, 0)
0774710f
RH
346/* EXTRACT CPU ATTRIBUTE */
347 C(0xeb4c, ECAG, RSY_a, GIE, 0, a2, r1, 0, ecag, 0)
ea20490f
RH
348/* EXTRACT FPC */
349 C(0xb38c, EFPC, RRE, Z, 0, 0, new, r1_32, efpc, 0)
e30a9d3f
RH
350/* EXTRACT PSW */
351 C(0xb98d, EPSW, RRE, Z, 0, 0, 0, 0, epsw, 0)
ea20490f 352
102bf2c6
RH
353/* FIND LEFTMOST ONE */
354 C(0xb983, FLOGR, RRE, EI, 0, r2_o, r1_P, 0, flogr, 0)
355
afdc70be
RH
356/* INSERT CHARACTER */
357 C(0x4300, IC, RX_a, Z, 0, m2_8u, 0, r1_8, mov2, 0)
358 C(0xe373, ICY, RXY_a, LD, 0, m2_8u, 0, r1_8, mov2, 0)
58a9e35b
RH
359/* INSERT CHARACTERS UNDER MASK */
360 D(0xbf00, ICM, RS_b, Z, 0, a2, r1, 0, icm, 0, 0)
361 D(0xeb81, ICMY, RSY_b, LD, 0, a2, r1, 0, icm, 0, 0)
362 D(0xeb80, ICMH, RSY_b, Z, 0, a2, r1, 0, icm, 0, 32)
facfc864
RH
363/* INSERT IMMEDIATE */
364 D(0xc008, IIHF, RIL_a, EI, r1_o, i2_32u, r1, 0, insi, 0, 0x2020)
365 D(0xc009, IILF, RIL_a, EI, r1_o, i2_32u, r1, 0, insi, 0, 0x2000)
366 D(0xa500, IIHH, RI_a, Z, r1_o, i2_16u, r1, 0, insi, 0, 0x1030)
367 D(0xa501, IIHL, RI_a, Z, r1_o, i2_16u, r1, 0, insi, 0, 0x1020)
368 D(0xa502, IILH, RI_a, Z, r1_o, i2_16u, r1, 0, insi, 0, 0x1010)
369 D(0xa503, IILL, RI_a, Z, r1_o, i2_16u, r1, 0, insi, 0, 0x1000)
6e2704e7
RH
370/* INSERT PROGRAM MASK */
371 C(0xb222, IPM, RRE, Z, 0, 0, r1, 0, ipm, 0)
3bbfbd1f 372
22c37a08
RH
373/* LOAD */
374 C(0x1800, LR, RR_a, Z, 0, r2_o, 0, cond_r1r2_32, mov2, 0)
375 C(0x5800, L, RX_a, Z, 0, a2, new, r1_32, ld32s, 0)
92892330 376 C(0xe358, LY, RXY_a, LD, 0, a2, new, r1_32, ld32s, 0)
22c37a08
RH
377 C(0xb904, LGR, RRE, Z, 0, r2_o, 0, r1, mov2, 0)
378 C(0xb914, LGFR, RRE, Z, 0, r2_32s, 0, r1, mov2, 0)
379 C(0xe304, LG, RXY_a, Z, 0, a2, r1, 0, ld64, 0)
380 C(0xe314, LGF, RXY_a, Z, 0, a2, r1, 0, ld32s, 0)
d764a8d1
RH
381 C(0x2800, LDR, RR_a, Z, 0, f2_o, 0, f1, mov2, 0)
382 C(0x6800, LD, RX_a, Z, 0, m2_64, 0, f1, mov2, 0)
383 C(0xed65, LDY, RXY_a, LD, 0, m2_64, 0, f1, mov2, 0)
384 C(0x3800, LER, RR_a, Z, 0, e2, 0, cond_e1e2, mov2, 0)
385 C(0x7800, LE, RX_a, Z, 0, m2_32u, 0, e1, mov2, 0)
386 C(0xed64, LEY, RXY_a, LD, 0, m2_32u, 0, e1, mov2, 0)
387 C(0xb365, LXR, RRE, Z, 0, x2_o, 0, x1, movx, 0)
22c37a08
RH
388/* LOAD IMMEDIATE */
389 C(0xc001, LGFI, RIL_a, EI, 0, i2, 0, r1, mov2, 0)
390/* LOAD RELATIVE LONG */
391 C(0xc40d, LRL, RIL_b, GIE, 0, ri2, new, r1_32, ld32s, 0)
392 C(0xc408, LGRL, RIL_b, GIE, 0, ri2, r1, 0, ld64, 0)
393 C(0xc40c, LGFRL, RIL_b, GIE, 0, ri2, r1, 0, ld32s, 0)
aedec19d
RH
394/* LOAD ADDRESS */
395 C(0x4100, LA, RX_a, Z, 0, a2, 0, r1, mov2, 0)
396 C(0xe371, LAY, RXY_a, LD, 0, a2, 0, r1, mov2, 0)
a1c7610a
AJ
397/* LOAD ADDRESS EXTENDED */
398 C(0x5100, LAE, RX_a, Z, 0, a2, 0, r1, mov2e, 0)
399 C(0xe375, LAEY, RXY_a, GIE, 0, a2, 0, r1, mov2e, 0)
aedec19d
RH
400/* LOAD ADDRESS RELATIVE LONG */
401 C(0xc000, LARL, RIL_b, Z, 0, ri2, 0, r1, mov2, 0)
57af7289 402/* LOAD AND ADD */
4dba4d6f
RH
403 D(0xebf8, LAA, RSY_a, ILA, r3_32s, a2, new, in2_r1_32, laa, adds32, MO_TESL)
404 D(0xebe8, LAAG, RSY_a, ILA, r3, a2, new, in2_r1, laa, adds64, MO_TEQ)
57af7289 405/* LOAD AND ADD LOGICAL */
4dba4d6f
RH
406 D(0xebfa, LAAL, RSY_a, ILA, r3_32u, a2, new, in2_r1_32, laa, addu32, MO_TEUL)
407 D(0xebea, LAALG, RSY_a, ILA, r3, a2, new, in2_r1, laa, addu64, MO_TEQ)
57af7289 408/* LOAD AND AND */
4dba4d6f
RH
409 D(0xebf4, LAN, RSY_a, ILA, r3_32s, a2, new, in2_r1_32, lan, nz32, MO_TESL)
410 D(0xebe4, LANG, RSY_a, ILA, r3, a2, new, in2_r1, lan, nz64, MO_TEQ)
57af7289 411/* LOAD AND EXCLUSIVE OR */
4dba4d6f
RH
412 D(0xebf7, LAX, RSY_a, ILA, r3_32s, a2, new, in2_r1_32, lax, nz32, MO_TESL)
413 D(0xebe7, LAXG, RSY_a, ILA, r3, a2, new, in2_r1, lax, nz64, MO_TEQ)
57af7289 414/* LOAD AND OR */
4dba4d6f
RH
415 D(0xebf6, LAO, RSY_a, ILA, r3_32s, a2, new, in2_r1_32, lao, nz32, MO_TESL)
416 D(0xebe6, LAOG, RSY_a, ILA, r3, a2, new, in2_r1, lao, nz64, MO_TEQ)
11bf2d73
RH
417/* LOAD AND TEST */
418 C(0x1200, LTR, RR_a, Z, 0, r2_o, 0, cond_r1r2_32, mov2, s32)
419 C(0xb902, LTGR, RRE, Z, 0, r2_o, 0, r1, mov2, s64)
420 C(0xb912, LTGFR, RRE, Z, 0, r2_32s, 0, r1, mov2, s64)
421 C(0xe312, LT, RXY_a, EI, 0, a2, new, r1_32, ld32s, s64)
422 C(0xe302, LTG, RXY_a, EI, 0, a2, r1, 0, ld64, s64)
423 C(0xe332, LTGF, RXY_a, GIE, 0, a2, r1, 0, ld32s, s64)
587626f8
RH
424 C(0xb302, LTEBR, RRE, Z, 0, e2, 0, cond_e1e2, mov2, f32)
425 C(0xb312, LTDBR, RRE, Z, 0, f2_o, 0, f1, mov2, f64)
426 C(0xb342, LTXBR, RRE, Z, 0, x2_o, 0, x1, movx, f128)
782a8479
AJ
427/* LOAD AND TRAP */
428 C(0xe39f, LAT, RXY_a, LAT, 0, m2_32u, r1, 0, lat, 0)
429 C(0xe385, LGAT, RXY_a, LAT, 0, a2, r1, 0, lgat, 0)
c698d876
RH
430/* LOAD BYTE */
431 C(0xb926, LBR, RRE, EI, 0, r2_8s, 0, r1_32, mov2, 0)
432 C(0xb906, LGBR, RRE, EI, 0, r2_8s, 0, r1, mov2, 0)
433 C(0xe376, LB, RXY_a, LD, 0, a2, new, r1_32, ld8s, 0)
434 C(0xe377, LGB, RXY_a, LD, 0, a2, r1, 0, ld8s, 0)
a1f12d85
AJ
435/* LOAD BYTE HIGH */
436 C(0xe3c0, LBH, RXY_a, HW, 0, a2, new, r1_32h, ld8s, 0)
b9bca3e5
RH
437/* LOAD COMPLEMENT */
438 C(0x1300, LCR, RR_a, Z, 0, r2, new, r1_32, neg, neg32)
439 C(0xb903, LCGR, RRE, Z, 0, r2, r1, 0, neg, neg64)
440 C(0xb913, LCGFR, RRE, Z, 0, r2_32s, r1, 0, neg, neg64)
5d7fd045
RH
441 C(0xb303, LCEBR, RRE, Z, 0, e2, new, e1, negf32, f32)
442 C(0xb313, LCDBR, RRE, Z, 0, f2_o, f1, 0, negf64, f64)
443 C(0xb343, LCXBR, RRE, Z, 0, x2_o, x1, 0, negf128, f128)
1d1f6301 444 C(0xb373, LCDFR, RRE, FPSSH, 0, f2_o, f1, 0, negf64, 0)
c698d876
RH
445/* LOAD HALFWORD */
446 C(0xb927, LHR, RRE, EI, 0, r2_16s, 0, r1_32, mov2, 0)
447 C(0xb907, LGHR, RRE, EI, 0, r2_16s, 0, r1, mov2, 0)
448 C(0x4800, LH, RX_a, Z, 0, a2, new, r1_32, ld16s, 0)
449 C(0xe378, LHY, RXY_a, LD, 0, a2, new, r1_32, ld16s, 0)
450 C(0xe315, LGH, RXY_a, Z, 0, a2, r1, 0, ld16s, 0)
a1f12d85
AJ
451/* LOAD HALFWORD HIGH */
452 C(0xe3c4, LHH, RXY_a, HW, 0, a2, new, r1_32h, ld16s, 0)
c698d876
RH
453/* LOAD HALFWORD IMMEDIATE */
454 C(0xa708, LHI, RI_a, Z, 0, i2, 0, r1_32, mov2, 0)
455 C(0xa709, LGHI, RI_a, Z, 0, i2, 0, r1, mov2, 0)
456/* LOAD HALFWORD RELATIVE LONG */
457 C(0xc405, LHRL, RIL_b, GIE, 0, ri2, new, r1_32, ld16s, 0)
458 C(0xc404, LGHRL, RIL_b, GIE, 0, ri2, r1, 0, ld16s, 0)
a1f12d85
AJ
459/* LOAD HIGH */
460 C(0xe3ca, LFH, RXY_a, HW, 0, a2, new, r1_32h, ld32u, 0)
782a8479
AJ
461/* LOAG HIGH AND TRAP */
462 C(0xe3c8, LFHAT, RXY_a, LAT, 0, m2_32u, r1, 0, lfhat, 0)
22c37a08
RH
463/* LOAD LOGICAL */
464 C(0xb916, LLGFR, RRE, Z, 0, r2_32u, 0, r1, mov2, 0)
465 C(0xe316, LLGF, RXY_a, Z, 0, a2, r1, 0, ld32u, 0)
782a8479
AJ
466/* LOAD LOGICAL AND TRAP */
467 C(0xe39d, LLGFAT, RXY_a, LAT, 0, a2, r1, 0, llgfat, 0)
22c37a08
RH
468/* LOAD LOGICAL RELATIVE LONG */
469 C(0xc40e, LLGFRL, RIL_b, GIE, 0, ri2, r1, 0, ld32u, 0)
c698d876
RH
470/* LOAD LOGICAL CHARACTER */
471 C(0xb994, LLCR, RRE, EI, 0, r2_8u, 0, r1_32, mov2, 0)
472 C(0xb984, LLGCR, RRE, EI, 0, r2_8u, 0, r1, mov2, 0)
473 C(0xe394, LLC, RXY_a, EI, 0, a2, new, r1_32, ld8u, 0)
474 C(0xe390, LLGC, RXY_a, Z, 0, a2, r1, 0, ld8u, 0)
a1f12d85
AJ
475/* LOAD LOGICAL CHARACTER HIGH */
476 C(0xe3c2, LLCH, RXY_a, HW, 0, a2, new, r1_32h, ld8u, 0)
c698d876
RH
477/* LOAD LOGICAL HALFWORD */
478 C(0xb995, LLHR, RRE, EI, 0, r2_16u, 0, r1_32, mov2, 0)
479 C(0xb985, LLGHR, RRE, EI, 0, r2_16u, 0, r1, mov2, 0)
480 C(0xe395, LLH, RXY_a, EI, 0, a2, new, r1_32, ld16u, 0)
481 C(0xe391, LLGH, RXY_a, Z, 0, a2, r1, 0, ld16u, 0)
a1f12d85
AJ
482/* LOAD LOGICAL HALFWORD HIGH */
483 C(0xe3c6, LLHH, RXY_a, HW, 0, a2, new, r1_32h, ld16u, 0)
c698d876
RH
484/* LOAD LOGICAL HALFWORD RELATIVE LONG */
485 C(0xc402, LLHRL, RIL_b, GIE, 0, ri2, new, r1_32, ld16u, 0)
486 C(0xc406, LLGHRL, RIL_b, GIE, 0, ri2, r1, 0, ld16u, 0)
ade9dea4
RH
487/* LOAD LOGICAL IMMEDATE */
488 D(0xc00e, LLIHF, RIL_a, EI, 0, i2_32u_shl, 0, r1, mov2, 0, 32)
489 D(0xc00f, LLILF, RIL_a, EI, 0, i2_32u_shl, 0, r1, mov2, 0, 0)
490 D(0xa50c, LLIHH, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 48)
491 D(0xa50d, LLIHL, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 32)
492 D(0xa50e, LLILH, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 16)
493 D(0xa50f, LLILL, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 0)
7691c23b
RH
494/* LOAD LOGICAL THIRTY ONE BITS */
495 C(0xb917, LLGTR, RRE, Z, 0, r2_o, r1, 0, llgt, 0)
496 C(0xe317, LLGT, RXY_a, Z, 0, m2_32u, r1, 0, llgt, 0)
782a8479
AJ
497/* LOAD LOGICAL THIRTY ONE BITS AND TRAP */
498 C(0xe39c, LLGTAT, RXY_a, LAT, 0, m2_32u, r1, 0, llgtat, 0)
499
143cbbc5
RH
500/* LOAD FPR FROM GR */
501 C(0xb3c1, LDGR, RRE, FPRGR, 0, r2_o, 0, f1, mov2, 0)
502/* LOAD GR FROM FPR */
503 C(0xb3cd, LGDR, RRE, FPRGR, 0, f2_o, 0, r1, mov2, 0)
b9bca3e5
RH
504/* LOAD NEGATIVE */
505 C(0x1100, LNR, RR_a, Z, 0, r2_32s, new, r1_32, nabs, nabs32)
506 C(0xb901, LNGR, RRE, Z, 0, r2, r1, 0, nabs, nabs64)
507 C(0xb911, LNGFR, RRE, Z, 0, r2_32s, r1, 0, nabs, nabs64)
5d7fd045
RH
508 C(0xb301, LNEBR, RRE, Z, 0, e2, new, e1, nabsf32, f32)
509 C(0xb311, LNDBR, RRE, Z, 0, f2_o, f1, 0, nabsf64, f64)
510 C(0xb341, LNXBR, RRE, Z, 0, x2_o, x1, 0, nabsf128, f128)
df46283c 511 C(0xb371, LNDFR, RRE, FPSSH, 0, f2_o, f1, 0, nabsf64, 0)
632086da
RH
512/* LOAD ON CONDITION */
513 C(0xb9f2, LOCR, RRF_c, LOC, r1, r2, new, r1_32, loc, 0)
514 C(0xb9e2, LOCGR, RRF_c, LOC, r1, r2, r1, 0, loc, 0)
515 C(0xebf2, LOC, RSY_b, LOC, r1, m2_32u, new, r1_32, loc, 0)
516 C(0xebe2, LOCG, RSY_b, LOC, r1, m2_64, r1, 0, loc, 0)
45aa9aa3
RH
517/* LOAD HALFWORD IMMEDIATE ON CONDITION */
518 C(0xec42, LOCHI, RIE_g, LOC2, r1, i2, new, r1_32, loc, 0)
519 C(0xec46, LOCGHI, RIE_g, LOC2, r1, i2, r1, 0, loc, 0)
520 C(0xec4e, LOCHHI, RIE_g, LOC2, r1_sr32, i2, new, r1_32h, loc, 0)
521/* LOAD HIGH ON CONDITION */
522 C(0xb9e0, LOCFHR, RRF_c, LOC2, r1_sr32, r2, new, r1_32h, loc, 0)
523 C(0xebe0, LOCFH, RSY_b, LOC2, r1_sr32, m2_32u, new, r1_32h, loc, 0)
1807aaa5
EB
524/* LOAD PAIR DISJOINT */
525 D(0xc804, LPD, SSF, ILA, 0, 0, new_P, r3_P32, lpd, 0, MO_TEUL)
526 D(0xc805, LPDG, SSF, ILA, 0, 0, new_P, r3_P64, lpd, 0, MO_TEQ)
e22dfdb2
AJ
527/* LOAD PAIR FROM QUADWORD */
528 C(0xe38f, LPQ, RXY_a, Z, 0, a2, r1_P, 0, lpq, 0)
b9bca3e5
RH
529/* LOAD POSITIVE */
530 C(0x1000, LPR, RR_a, Z, 0, r2_32s, new, r1_32, abs, abs32)
531 C(0xb900, LPGR, RRE, Z, 0, r2, r1, 0, abs, abs64)
532 C(0xb910, LPGFR, RRE, Z, 0, r2_32s, r1, 0, abs, abs64)
5d7fd045
RH
533 C(0xb300, LPEBR, RRE, Z, 0, e2, new, e1, absf32, f32)
534 C(0xb310, LPDBR, RRE, Z, 0, f2_o, f1, 0, absf64, f64)
535 C(0xb340, LPXBR, RRE, Z, 0, x2_o, x1, 0, absf128, f128)
df46283c 536 C(0xb370, LPDFR, RRE, FPSSH, 0, f2_o, f1, 0, absf64, 0)
d54f5865
RH
537/* LOAD REVERSED */
538 C(0xb91f, LRVR, RRE, Z, 0, r2_32u, new, r1_32, rev32, 0)
539 C(0xb90f, LRVGR, RRE, Z, 0, r2_o, r1, 0, rev64, 0)
540 C(0xe31f, LRVH, RXY_a, Z, 0, m2_16u, new, r1_16, rev16, 0)
541 C(0xe31e, LRV, RXY_a, Z, 0, m2_32u, new, r1_32, rev32, 0)
542 C(0xe30f, LRVG, RXY_a, Z, 0, m2_64, r1, 0, rev64, 0)
24db8412
RH
543/* LOAD ZERO */
544 C(0xb374, LZER, RRE, Z, 0, 0, 0, e1, zero, 0)
545 C(0xb375, LZDR, RRE, Z, 0, 0, 0, f1, zero, 0)
546 C(0xb376, LZXR, RRE, Z, 0, 0, 0, x1, zero2, 0)
22c37a08 547
8379bfdb
RH
548/* LOAD FPC */
549 C(0xb29d, LFPC, S, Z, 0, m2_32u, 0, 0, sfpc, 0)
411edc22
RH
550/* LOAD FPC AND SIGNAL */
551 C(0xb2bd, LFAS, S, IEEEE_SIM, 0, m2_32u, 0, 0, sfas, 0)
ed0bcece
AJ
552/* LOAD FP INTEGER */
553 C(0xb357, FIEBR, RRF_e, Z, 0, e2, new, e1, fieb, 0)
554 C(0xb35f, FIDBR, RRF_e, Z, 0, f2_o, f1, 0, fidb, 0)
555 C(0xb347, FIXBR, RRF_e, Z, 0, x2_o, x1, 0, fixb, 0)
8379bfdb 556
587626f8
RH
557/* LOAD LENGTHENED */
558 C(0xb304, LDEBR, RRE, Z, 0, e2, f1, 0, ldeb, 0)
559 C(0xb305, LXDBR, RRE, Z, 0, f2_o, x1, 0, lxdb, 0)
560 C(0xb306, LXEBR, RRE, Z, 0, e2, x1, 0, lxeb, 0)
561 C(0xed04, LDEB, RXE, Z, 0, m2_32u, f1, 0, ldeb, 0)
562 C(0xed05, LXDB, RXE, Z, 0, m2_64, x1, 0, lxdb, 0)
563 C(0xed06, LXEB, RXE, Z, 0, m2_32u, x1, 0, lxeb, 0)
564/* LOAD ROUNDED */
565 C(0xb344, LEDBR, RRE, Z, 0, f2_o, new, e1, ledb, 0)
566 C(0xb345, LDXBR, RRE, Z, 0, x2_o, f1, 0, ldxb, 0)
567 C(0xb346, LEXBR, RRE, Z, 0, x2_o, new, e1, lexb, 0)
568
77f8d6c3
RH
569/* LOAD MULTIPLE */
570 C(0x9800, LM, RS_a, Z, 0, a2, 0, 0, lm32, 0)
571 C(0xeb98, LMY, RSY_a, LD, 0, a2, 0, 0, lm32, 0)
572 C(0xeb04, LMG, RSY_a, Z, 0, a2, 0, 0, lm64, 0)
573/* LOAD MULTIPLE HIGH */
574 C(0xeb96, LMH, RSY_a, Z, 0, a2, 0, 0, lmh, 0)
7df3e93a
RH
575/* LOAD ACCESS MULTIPLE */
576 C(0x9a00, LAM, RS_a, Z, 0, a2, 0, 0, lam, 0)
577 C(0xeb9a, LAMY, RSY_a, LD, 0, a2, 0, 0, lam, 0)
77f8d6c3 578
6a04d76a 579/* MOVE */
af9e5a04 580 C(0xd200, MVC, SS_a, Z, la1, a2, 0, 0, mvc, 0)
6a04d76a
RH
581 C(0xe544, MVHHI, SIL, GIE, la1, i2, 0, m1_16, mov2, 0)
582 C(0xe54c, MVHI, SIL, GIE, la1, i2, 0, m1_32, mov2, 0)
583 C(0xe548, MVGHI, SIL, GIE, la1, i2, 0, m1_64, mov2, 0)
584 C(0x9200, MVI, SI, Z, la1, i2, 0, m1_8, mov2, 0)
585 C(0xeb52, MVIY, SIY, LD, la1, i2, 0, m1_8, mov2, 0)
6c9deca8
AJ
586/* MOVE INVERSE */
587 C(0xe800, MVCIN, SS_a, Z, la1, a2, 0, 0, mvcin, 0)
e1eaada9
RH
588/* MOVE LONG */
589 C(0x0e00, MVCL, RR_a, Z, 0, 0, 0, 0, mvcl, 0)
eb66e6a9
RH
590/* MOVE LONG EXTENDED */
591 C(0xa800, MVCLE, RS_a, Z, 0, a2, 0, 0, mvcle, 0)
16f2e4b8
AJ
592/* MOVE LONG UNICODE */
593 C(0xeb8e, MVCLU, RSY_a, E2, 0, a2, 0, 0, mvclu, 0)
256dab6f
AJ
594/* MOVE NUMERICS */
595 C(0xd100, MVN, SS_a, Z, la1, a2, 0, 0, mvn, 0)
ee6c38d5
RH
596/* MOVE PAGE */
597 C(0xb254, MVPG, RRE, Z, r1_o, r2_o, 0, 0, mvpg, 0)
aa31bf60
RH
598/* MOVE STRING */
599 C(0xb255, MVST, RRE, Z, r1_o, r2_o, 0, 0, mvst, 0)
3e7e5e0b
DH
600/* MOVE WITH OPTIONAL SPECIFICATION */
601 C(0xc800, MVCOS, SSF, MVCOS, la1, a2, 0, 0, mvcos, 0)
fdc0a747
AJ
602/* MOVE WITH OFFSET */
603 /* Really format SS_b, but we pack both lengths into one argument
604 for the helper call, so we might as well leave one 8-bit field. */
605 C(0xf100, MVO, SS_a, Z, la1, a2, 0, 0, mvo, 0)
01f8db88
AJ
606/* MOVE ZONES */
607 C(0xd300, MVZ, SS_a, Z, la1, a2, 0, 0, mvz, 0)
e1eaada9 608
d87aaf93
RH
609/* MULTIPLY */
610 C(0x1c00, MR, RR_a, Z, r1p1_32s, r2_32s, new, r1_D32, mul, 0)
611 C(0x5c00, M, RX_a, Z, r1p1_32s, m2_32s, new, r1_D32, mul, 0)
612 C(0xe35c, MFY, RXY_a, GIE, r1p1_32s, m2_32s, new, r1_D32, mul, 0)
83b00736
RH
613 C(0xb317, MEEBR, RRE, Z, e1, e2, new, e1, meeb, 0)
614 C(0xb31c, MDBR, RRE, Z, f1_o, f2_o, f1, 0, mdb, 0)
615 C(0xb34c, MXBR, RRE, Z, 0, x2_o, x1, 0, mxb, 0)
616 C(0xb30c, MDEBR, RRE, Z, f1_o, e2, f1, 0, mdeb, 0)
617 C(0xb307, MXDBR, RRE, Z, 0, f2_o, x1, 0, mxdb, 0)
618 C(0xed17, MEEB, RXE, Z, e1, m2_32u, new, e1, meeb, 0)
619 C(0xed1c, MDB, RXE, Z, f1_o, m2_64, f1, 0, mdb, 0)
620 C(0xed0c, MDEB, RXE, Z, f1_o, m2_32u, f1, 0, mdeb, 0)
621 C(0xed07, MXDB, RXE, Z, 0, m2_64, x1, 0, mxdb, 0)
d1c04a2b
RH
622/* MULTIPLY HALFWORD */
623 C(0x4c00, MH, RX_a, Z, r1_o, m2_16s, new, r1_32, mul, 0)
624 C(0xe37c, MHY, RXY_a, GIE, r1_o, m2_16s, new, r1_32, mul, 0)
625/* MULTIPLY HALFWORD IMMEDIATE */
626 C(0xa70c, MHI, RI_a, Z, r1_o, i2, new, r1_32, mul, 0)
627 C(0xa70d, MGHI, RI_a, Z, r1_o, i2, r1, 0, mul, 0)
d87aaf93
RH
628/* MULTIPLY LOGICAL */
629 C(0xb996, MLR, RRE, Z, r1p1_32u, r2_32u, new, r1_D32, mul, 0)
630 C(0xe396, ML, RXY_a, Z, r1p1_32u, m2_32u, new, r1_D32, mul, 0)
1ac5889f
RH
631 C(0xb986, MLGR, RRE, Z, r1p1, r2_o, r1_P, 0, mul128, 0)
632 C(0xe386, MLG, RXY_a, Z, r1p1, m2_64, r1_P, 0, mul128, 0)
d1c04a2b
RH
633/* MULTIPLY SINGLE */
634 C(0xb252, MSR, RRE, Z, r1_o, r2_o, new, r1_32, mul, 0)
635 C(0x7100, MS, RX_a, Z, r1_o, m2_32s, new, r1_32, mul, 0)
636 C(0xe351, MSY, RXY_a, LD, r1_o, m2_32s, new, r1_32, mul, 0)
637 C(0xb90c, MSGR, RRE, Z, r1_o, r2_o, r1, 0, mul, 0)
638 C(0xb91c, MSGFR, RRE, Z, r1_o, r2_32s, r1, 0, mul, 0)
639 C(0xe30c, MSG, RXY_a, Z, r1_o, m2_64, r1, 0, mul, 0)
640 C(0xe31c, MSGF, RXY_a, Z, r1_o, m2_32s, r1, 0, mul, 0)
641/* MULTIPLY SINGLE IMMEDIATE */
642 C(0xc201, MSFI, RIL_a, GIE, r1_o, i2, new, r1_32, mul, 0)
643 C(0xc200, MSGFI, RIL_a, GIE, r1_o, i2, r1, 0, mul, 0)
644
722bfec3
RH
645/* MULTIPLY AND ADD */
646 C(0xb30e, MAEBR, RRD, Z, e1, e2, new, e1, maeb, 0)
647 C(0xb31e, MADBR, RRD, Z, f1_o, f2_o, f1, 0, madb, 0)
648 C(0xed0e, MAEB, RXF, Z, e1, m2_32u, new, e1, maeb, 0)
649 C(0xed1e, MADB, RXF, Z, f1_o, m2_64, f1, 0, madb, 0)
650/* MULTIPLY AND SUBTRACT */
651 C(0xb30f, MSEBR, RRD, Z, e1, e2, new, e1, mseb, 0)
652 C(0xb31f, MSDBR, RRD, Z, f1_o, f2_o, f1, 0, msdb, 0)
653 C(0xed0f, MSEB, RXF, Z, e1, m2_32u, new, e1, mseb, 0)
654 C(0xed1f, MSDB, RXF, Z, f1_o, m2_64, f1, 0, msdb, 0)
655
3bbfbd1f
RH
656/* OR */
657 C(0x1600, OR, RR_a, Z, r1, r2, new, r1_32, or, nz32)
658 C(0xb9f6, ORK, RRF_a, DO, r2, r3, new, r1_32, or, nz32)
659 C(0x5600, O, RX_a, Z, r1, m2_32s, new, r1_32, or, nz32)
660 C(0xe356, OY, RXY_a, LD, r1, m2_32s, new, r1_32, or, nz32)
661 C(0xb981, OGR, RRE, Z, r1, r2, r1, 0, or, nz64)
662 C(0xb9e6, OGRK, RRF_a, DO, r2, r3, r1, 0, or, nz64)
663 C(0xe381, OG, RXY_a, Z, r1, m2_64, r1, 0, or, nz64)
0a949039 664 C(0xd600, OC, SS_a, Z, la1, a2, 0, 0, oc, 0)
facfc864
RH
665/* OR IMMEDIATE */
666 D(0xc00c, OIHF, RIL_a, EI, r1_o, i2_32u, r1, 0, ori, 0, 0x2020)
667 D(0xc00d, OILF, RIL_a, EI, r1_o, i2_32u, r1, 0, ori, 0, 0x2000)
668 D(0xa508, OIHH, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1030)
669 D(0xa509, OIHL, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1020)
670 D(0xa50a, OILH, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1010)
671 D(0xa50b, OILL, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1000)
a05d2b6b
RH
672 C(0x9600, OI, SI, Z, m1_8u, i2_8u, new, m1_8, or, nz64)
673 C(0xeb56, OIY, SIY, LD, m1_8u, i2_8u, new, m1_8, or, nz64)
3bbfbd1f 674
76c57490
AJ
675/* PACK */
676 /* Really format SS_b, but we pack both lengths into one argument
677 for the helper call, so we might as well leave one 8-bit field. */
678 C(0xf200, PACK, SS_a, Z, la1, a2, 0, 0, pack, 0)
3bd3d6d3
AJ
679/* PACK ASCII */
680 C(0xe900, PKA, SS_f, E2, la1, a2, 0, 0, pka, 0)
4e256bef
AJ
681/* PACK UNICODE */
682 C(0xe100, PKU, SS_f, E2, la1, a2, 0, 0, pku, 0)
76c57490 683
e0def909
RH
684/* PREFETCH */
685 /* Implemented as nops of course. */
686 C(0xe336, PFD, RXY_b, GIE, 0, 0, 0, 0, 0, 0)
687 C(0xc602, PFDRL, RIL_c, GIE, 0, 0, 0, 0, 0, 0)
688
99b4f24b
RH
689/* POPULATION COUNT */
690 C(0xb9e1, POPCNT, RRE, PC, 0, r2_o, r1, 0, popcnt, nz64)
691
cbe24bfa
RH
692/* ROTATE LEFT SINGLE LOGICAL */
693 C(0xeb1d, RLL, RSY_a, Z, r3_o, sh32, new, r1_32, rll32, 0)
694 C(0xeb1c, RLLG, RSY_a, Z, r3_o, sh64, r1, 0, rll64, 0)
695
2d6a8698
RH
696/* ROTATE THEN INSERT SELECTED BITS */
697 C(0xec55, RISBG, RIE_f, GIE, 0, r2, r1, 0, risbg, s64)
375ee58b 698 C(0xec59, RISBGN, RIE_f, MIE, 0, r2, r1, 0, risbg, 0)
92892330
AJ
699 C(0xec5d, RISBHG, RIE_f, HW, 0, r2, r1, 0, risbg, 0)
700 C(0xec51, RISBLG, RIE_f, HW, 0, r2, r1, 0, risbg, 0)
d6c6372e
RH
701/* ROTATE_THEN <OP> SELECTED BITS */
702 C(0xec54, RNSBG, RIE_f, GIE, 0, r2, r1, 0, rosbg, 0)
703 C(0xec56, ROSBG, RIE_f, GIE, 0, r2, r1, 0, rosbg, 0)
704 C(0xec57, RXSBG, RIE_f, GIE, 0, r2, r1, 0, rosbg, 0)
2d6a8698 705
4600c994
RH
706/* SEARCH STRING */
707 C(0xb25e, SRST, RRE, Z, r1_o, r2_o, 0, 0, srst, 0)
708
d62a4c97
RH
709/* SET ACCESS */
710 C(0xb24e, SAR, RRE, Z, 0, r2_o, 0, 0, sar, 0)
8612c935
RH
711/* SET ADDRESSING MODE */
712 D(0x010c, SAM24, E, Z, 0, 0, 0, 0, sam, 0, 0)
713 D(0x010d, SAM31, E, Z, 0, 0, 0, 0, sam, 0, 1)
714 D(0x010e, SAM64, E, Z, 0, 0, 0, 0, sam, 0, 3)
8379bfdb
RH
715/* SET FPC */
716 C(0xb384, SFPC, RRE, Z, 0, r1_o, 0, 0, sfpc, 0)
411edc22
RH
717/* SET FPC AND SIGNAL */
718 C(0xb385, SFASR, RRE, IEEEE_SIM, 0, r1_o, 0, 0, sfas, 0)
a12000b9
RH
719/* SET BFP ROUNDING MODE */
720 C(0xb299, SRNM, S, Z, 0, 0, 0, 0, srnm, 0)
721 C(0xb2b8, SRNMB, S, FPE, 0, 0, 0, 0, srnm, 0)
722/* SET DFP ROUNDING MODE */
9182886d 723 C(0xb2b9, SRNMT, S, DFPR, 0, 0, 0, 0, srnm, 0)
8379bfdb 724
cbe24bfa
RH
725/* SHIFT LEFT SINGLE */
726 D(0x8b00, SLA, RS_a, Z, r1, sh32, new, r1_32, sla, 0, 31)
727 D(0xebdd, SLAK, RSY_a, DO, r3, sh32, new, r1_32, sla, 0, 31)
728 D(0xeb0b, SLAG, RSY_a, Z, r3, sh64, r1, 0, sla, 0, 63)
729/* SHIFT LEFT SINGLE LOGICAL */
730 C(0x8900, SLL, RS_a, Z, r1_o, sh32, new, r1_32, sll, 0)
731 C(0xebdf, SLLK, RSY_a, DO, r3_o, sh32, new, r1_32, sll, 0)
732 C(0xeb0d, SLLG, RSY_a, Z, r3_o, sh64, r1, 0, sll, 0)
733/* SHIFT RIGHT SINGLE */
734 C(0x8a00, SRA, RS_a, Z, r1_32s, sh32, new, r1_32, sra, s32)
735 C(0xebdc, SRAK, RSY_a, DO, r3_32s, sh32, new, r1_32, sra, s32)
736 C(0xeb0a, SRAG, RSY_a, Z, r3_o, sh64, r1, 0, sra, s64)
737/* SHIFT RIGHT SINGLE LOGICAL */
738 C(0x8800, SRL, RS_a, Z, r1_32u, sh32, new, r1_32, srl, 0)
739 C(0xebde, SRLK, RSY_a, DO, r3_32u, sh32, new, r1_32, srl, 0)
740 C(0xeb0c, SRLG, RSY_a, Z, r3_o, sh64, r1, 0, srl, 0)
a79ba339
RH
741/* SHIFT LEFT DOUBLE */
742 D(0x8f00, SLDA, RS_a, Z, r1_D32, sh64, new, r1_D32, sla, 0, 31)
743/* SHIFT LEFT DOUBLE LOGICAL */
744 C(0x8d00, SLDL, RS_a, Z, r1_D32, sh64, new, r1_D32, sll, 0)
745/* SHIFT RIGHT DOUBLE */
746 C(0x8e00, SRDA, RS_a, Z, r1_D32, sh64, new, r1_D32, sra, s64)
747/* SHIFT RIGHT DOUBLE LOGICAL */
748 C(0x8c00, SRDL, RS_a, Z, r1_D32, sh64, new, r1_D32, srl, 0)
cbe24bfa 749
16d7b2a4
RH
750/* SQUARE ROOT */
751 C(0xb314, SQEBR, RRE, Z, 0, e2, new, e1, sqeb, 0)
752 C(0xb315, SQDBR, RRE, Z, 0, f2_o, f1, 0, sqdb, 0)
753 C(0xb316, SQXBR, RRE, Z, 0, x2_o, x1, 0, sqxb, 0)
754 C(0xed14, SQEB, RXE, Z, 0, m2_32u, new, e1, sqeb, 0)
755 C(0xed15, SQDB, RXE, Z, 0, m2_64, f1, 0, sqdb, 0)
756
2b280b97
RH
757/* STORE */
758 C(0x5000, ST, RX_a, Z, r1_o, a2, 0, 0, st32, 0)
759 C(0xe350, STY, RXY_a, LD, r1_o, a2, 0, 0, st32, 0)
760 C(0xe324, STG, RXY_a, Z, r1_o, a2, 0, 0, st64, 0)
00574261
RH
761 C(0x6000, STD, RX_a, Z, f1_o, a2, 0, 0, st64, 0)
762 C(0xed67, STDY, RXY_a, LD, f1_o, a2, 0, 0, st64, 0)
763 C(0x7000, STE, RX_a, Z, e1, a2, 0, 0, st32, 0)
764 C(0xed66, STEY, RXY_a, LD, e1, a2, 0, 0, st32, 0)
2b280b97
RH
765/* STORE RELATIVE LONG */
766 C(0xc40f, STRL, RIL_b, GIE, r1_o, ri2, 0, 0, st32, 0)
767 C(0xc40b, STGRL, RIL_b, GIE, r1_o, ri2, 0, 0, st64, 0)
768/* STORE CHARACTER */
769 C(0x4200, STC, RX_a, Z, r1_o, a2, 0, 0, st8, 0)
770 C(0xe372, STCY, RXY_a, LD, r1_o, a2, 0, 0, st8, 0)
a1f12d85
AJ
771/* STORE CHARACTER HIGH */
772 C(0xe3c3, STCH, RXY_a, HW, r1_sr32, a2, 0, 0, st8, 0)
2ae68059
RH
773/* STORE CHARACTERS UNDER MASK */
774 D(0xbe00, STCM, RS_b, Z, r1_o, a2, 0, 0, stcm, 0, 0)
775 D(0xeb2d, STCMY, RSY_b, LD, r1_o, a2, 0, 0, stcm, 0, 0)
92892330 776 D(0xeb2c, STCMH, RSY_b, Z, r1_o, a2, 0, 0, stcm, 0, 32)
2b280b97
RH
777/* STORE HALFWORD */
778 C(0x4000, STH, RX_a, Z, r1_o, a2, 0, 0, st16, 0)
779 C(0xe370, STHY, RXY_a, LD, r1_o, a2, 0, 0, st16, 0)
a1f12d85
AJ
780/* STORE HALFWORD HIGH */
781 C(0xe3c7, STHH, RXY_a, HW, r1_sr32, a2, 0, 0, st16, 0)
2b280b97
RH
782/* STORE HALFWORD RELATIVE LONG */
783 C(0xc407, STHRL, RIL_b, GIE, r1_o, ri2, 0, 0, st16, 0)
a1f12d85
AJ
784/* STORE HIGH */
785 C(0xe3cb, STFH, RXY_a, HW, r1_sr32, a2, 0, 0, st32, 0)
b92fa334
RH
786/* STORE ON CONDITION */
787 D(0xebf3, STOC, RSY_b, LOC, 0, 0, 0, 0, soc, 0, 0)
788 D(0xebe3, STOCG, RSY_b, LOC, 0, 0, 0, 0, soc, 0, 1)
45aa9aa3
RH
789/* STORE HIGH ON CONDITION */
790 D(0xebe1, STOCFH, RSY_b, LOC2, 0, 0, 0, 0, soc, 0, 2)
e025e52a
RH
791/* STORE REVERSED */
792 C(0xe33f, STRVH, RXY_a, Z, la2, r1_16u, new, m1_16, rev16, 0)
793 C(0xe33e, STRV, RXY_a, Z, la2, r1_32u, new, m1_32, rev32, 0)
794 C(0xe32f, STRVG, RXY_a, Z, la2, r1_o, new, m1_64, rev64, 0)
2b280b97 795
5bf83628
RH
796/* STORE FACILITY LIST EXTENDED */
797 C(0xb2b0, STFLE, S, SFLE, 0, a2, 0, 0, stfle, 0)
ea20490f
RH
798/* STORE FPC */
799 C(0xb29c, STFPC, S, Z, 0, a2, new, m2_32, efpc, 0)
800
77f8d6c3
RH
801/* STORE MULTIPLE */
802 D(0x9000, STM, RS_a, Z, 0, a2, 0, 0, stm, 0, 4)
803 D(0xeb90, STMY, RSY_a, LD, 0, a2, 0, 0, stm, 0, 4)
804 D(0xeb24, STMG, RSY_a, Z, 0, a2, 0, 0, stm, 0, 8)
805/* STORE MULTIPLE HIGH */
806 C(0xeb26, STMH, RSY_a, Z, 0, a2, 0, 0, stmh, 0)
7df3e93a
RH
807/* STORE ACCESS MULTIPLE */
808 C(0x9b00, STAM, RS_a, Z, 0, a2, 0, 0, stam, 0)
809 C(0xeb9b, STAMY, RSY_a, LD, 0, a2, 0, 0, stam, 0)
c21b610f
AJ
810/* STORE PAIR TO QUADWORD */
811 C(0xe38e, STPQ, RXY_a, Z, 0, a2, r1_P, 0, stpq, 0)
77f8d6c3 812
ad044d09
RH
813/* SUBTRACT */
814 C(0x1b00, SR, RR_a, Z, r1, r2, new, r1_32, sub, subs32)
815 C(0xb9f9, SRK, RRF_a, DO, r2, r3, new, r1_32, sub, subs32)
816 C(0x5b00, S, RX_a, Z, r1, m2_32s, new, r1_32, sub, subs32)
817 C(0xe35b, SY, RXY_a, LD, r1, m2_32s, new, r1_32, sub, subs32)
818 C(0xb909, SGR, RRE, Z, r1, r2, r1, 0, sub, subs64)
819 C(0xb919, SGFR, RRE, Z, r1, r2_32s, r1, 0, sub, subs64)
820 C(0xb9e9, SGRK, RRF_a, DO, r2, r3, r1, 0, sub, subs64)
821 C(0xe309, SG, RXY_a, Z, r1, m2_64, r1, 0, sub, subs64)
822 C(0xe319, SGF, RXY_a, Z, r1, m2_32s, r1, 0, sub, subs64)
1a800a2d
RH
823 C(0xb30b, SEBR, RRE, Z, e1, e2, new, e1, seb, f32)
824 C(0xb31b, SDBR, RRE, Z, f1_o, f2_o, f1, 0, sdb, f64)
825 C(0xb34b, SXBR, RRE, Z, 0, x2_o, x1, 0, sxb, f128)
826 C(0xed0b, SEB, RXE, Z, e1, m2_32u, new, e1, seb, f32)
827 C(0xed1b, SDB, RXE, Z, f1_o, m2_64, f1, 0, sdb, f64)
3f4cb56a
RH
828/* SUBTRACT HALFWORD */
829 C(0x4b00, SH, RX_a, Z, r1, m2_16s, new, r1_32, sub, subs32)
830 C(0xe37b, SHY, RXY_a, LD, r1, m2_16s, new, r1_32, sub, subs32)
a1f12d85
AJ
831/* SUBTRACT HIGH */
832 C(0xb9c9, SHHHR, RRF_a, HW, r2_sr32, r3_sr32, new, r1_32h, sub, subs32)
833 C(0xb9d9, SHHLR, RRF_a, HW, r2_sr32, r3, new, r1_32h, sub, subs32)
ad044d09
RH
834/* SUBTRACT LOGICAL */
835 C(0x1f00, SLR, RR_a, Z, r1, r2, new, r1_32, sub, subu32)
836 C(0xb9fb, SLRK, RRF_a, DO, r2, r3, new, r1_32, sub, subu32)
837 C(0x5f00, SL, RX_a, Z, r1, m2_32u, new, r1_32, sub, subu32)
838 C(0xe35f, SLY, RXY_a, LD, r1, m2_32u, new, r1_32, sub, subu32)
839 C(0xb90b, SLGR, RRE, Z, r1, r2, r1, 0, sub, subu64)
840 C(0xb91b, SLGFR, RRE, Z, r1, r2_32u, r1, 0, sub, subu64)
841 C(0xb9eb, SLGRK, RRF_a, DO, r2, r3, r1, 0, sub, subu64)
842 C(0xe30b, SLG, RXY_a, Z, r1, m2_64, r1, 0, sub, subu64)
843 C(0xe31b, SLGF, RXY_a, Z, r1, m2_32u, r1, 0, sub, subu64)
a1f12d85
AJ
844/* SUBTRACT LOCICAL HIGH */
845 C(0xb9cb, SLHHHR, RRF_a, HW, r2_sr32, r3_sr32, new, r1_32h, sub, subu32)
846 C(0xb9db, SLHHLR, RRF_a, HW, r2_sr32, r3, new, r1_32h, sub, subu32)
ad044d09
RH
847/* SUBTRACT LOGICAL IMMEDIATE */
848 C(0xc205, SLFI, RIL_a, EI, r1, i2_32u, new, r1_32, sub, subu32)
849 C(0xc204, SLGFI, RIL_a, EI, r1, i2_32u, r1, 0, sub, subu64)
4e4bb438
RH
850/* SUBTRACT LOGICAL WITH BORROW */
851 C(0xb999, SLBR, RRE, Z, r1, r2, new, r1_32, subb, subb32)
852 C(0xb989, SLBGR, RRE, Z, r1, r2, r1, 0, subb, subb64)
853 C(0xe399, SLB, RXY_a, Z, r1, m2_32u, new, r1_32, subb, subb32)
854 C(0xe389, SLBG, RXY_a, Z, r1, m2_64, r1, 0, subb, subb64)
00d2dc19 855
b9836c1a
RH
856/* SUPERVISOR CALL */
857 C(0x0a00, SVC, I, Z, 0, 0, 0, 0, svc, 0)
858
0c0974d7
AJ
859/* TEST ADDRESSING MODE */
860 C(0x010b, TAM, E, Z, 0, 0, 0, 0, tam, 0)
861
6699adfc
AJ
862/* TEST AND SET */
863 C(0x9300, TS, S, Z, 0, a2, 0, 0, ts, 0)
864
31aa97d1
RH
865/* TEST DATA CLASS */
866 C(0xed10, TCEB, RXE, Z, e1, a2, 0, 0, tceb, 0)
867 C(0xed11, TCDB, RXE, Z, f1_o, a2, 0, 0, tcdb, 0)
868 C(0xed12, TCXB, RXE, Z, x1_o, a2, 0, 0, tcxb, 0)
869
5d4a655a
AJ
870/* TEST DECIMAL */
871 C(0xebc0, TP, RSL, E2, la1, 0, 0, 0, tp, 0)
872
00d2dc19
RH
873/* TEST UNDER MASK */
874 C(0x9100, TM, SI, Z, m1_8u, i2_8u, 0, 0, 0, tm32)
875 C(0xeb51, TMY, SIY, LD, m1_8u, i2_8u, 0, 0, 0, tm32)
876 D(0xa702, TMHH, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 48)
877 D(0xa703, TMHL, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 32)
878 D(0xa700, TMLH, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 16)
879 D(0xa701, TMLL, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 0)
d9a39927 880
0a949039
RH
881/* TRANSLATE */
882 C(0xdc00, TR, SS_a, Z, la1, a2, 0, 0, tr, 0)
54f00775
AJ
883/* TRANSLATE AND TEST */
884 C(0xdd00, TRT, SS_a, Z, la1, a2, 0, 0, trt, 0)
3f4de675
AJ
885/* TRANSLATE EXTENDED */
886 C(0xb2a5, TRE, RRE, Z, 0, r2, r1_P, 0, tre, 0)
0a949039 887
4065ae76
AJ
888/* TRANSLATE ONE TO ONE */
889 C(0xb993, TROO, RRF_c, E2, 0, 0, 0, 0, trXX, 0)
890/* TRANSLATE ONE TO TWO */
891 C(0xb992, TROT, RRF_c, E2, 0, 0, 0, 0, trXX, 0)
892/* TRANSLATE TWO TO ONE */
893 C(0xb991, TRTO, RRF_c, E2, 0, 0, 0, 0, trXX, 0)
894/* TRANSLATE TWO TO TWO */
895 C(0xb990, TRTT, RRF_c, E2, 0, 0, 0, 0, trXX, 0)
896
0a949039
RH
897/* UNPACK */
898 /* Really format SS_b, but we pack both lengths into one argument
899 for the helper call, so we might as well leave one 8-bit field. */
900 C(0xf300, UNPK, SS_a, Z, la1, a2, 0, 0, unpk, 0)
1a35f08a
AJ
901/* UNPACK ASCII */
902 C(0xea00, UNPKA, SS_a, E2, la1, a2, 0, 0, unpka, 0)
15417787
AJ
903/* UNPACK UNICODE */
904 C(0xe200, UNPKU, SS_a, E2, la1, a2, 0, 0, unpku, 0)
0a949039 905
d9a39927 906#ifndef CONFIG_USER_ONLY
3d596f49 907/* COMPARE AND SWAP AND PURGE */
31a18b45 908 D(0xb250, CSP, RRE, Z, r1_32u, ra2, r1_P, 0, csp, 0, MO_TEUL)
b26de951 909 D(0xb98a, CSPG, RRE, DAT_ENH, r1_o, ra2, r1_P, 0, csp, 0, MO_TEQ)
972e35b9 910/* DIAGNOSE (KVM hypercall) */
8df7eef3 911 C(0x8300, DIAG, RSI, Z, 0, 0, 0, 0, diag, 0)
8026417c
RH
912/* INSERT STORAGE KEY EXTENDED */
913 C(0xb229, ISKE, RRE, Z, 0, r2_o, new, r1_8, iske, 0)
cfef53e3
RH
914/* INVALIDATE PAGE TABLE ENTRY */
915 C(0xb221, IPTE, RRF_a, Z, r1_o, r2_o, 0, 0, ipte, 0)
504488b8
RH
916/* LOAD CONTROL */
917 C(0xb700, LCTL, RS_a, Z, 0, a2, 0, 0, lctl, 0)
3e398cf9 918 C(0xeb2f, LCTLG, RSY_a, Z, 0, a2, 0, 0, lctlg, 0)
190b2422
MB
919/* LOAD PROGRAM PARAMETER */
920 C(0xb280, LPP, S, LPP, 0, m2_64, 0, 0, lpp, 0)
8b5ff571
RH
921/* LOAD PSW */
922 C(0x8200, LPSW, S, Z, 0, a2, 0, 0, lpsw, 0)
7ab938d7
RH
923/* LOAD PSW EXTENDED */
924 C(0xb2b2, LPSWE, S, Z, 0, a2, 0, 0, lpswe, 0)
d8fe4a9c
RH
925/* LOAD REAL ADDRESS */
926 C(0xb100, LRA, RX_a, Z, 0, a2, r1, 0, lra, 0)
927 C(0xe313, LRAY, RXY_a, LD, 0, a2, r1, 0, lra, 0)
928 C(0xe303, LRAG, RXY_a, Z, 0, a2, r1, 0, lra, 0)
9c3fd85b
RH
929/* LOAD USING REAL ADDRESS */
930 C(0xb24b, LURA, RRE, Z, 0, r2, new, r1_32, lura, 0)
931 C(0xb905, LURAG, RRE, Z, 0, r2, r1, 0, lurag, 0)
97c3ab61
RH
932/* MOVE TO PRIMARY */
933 C(0xda00, MVCP, SS_d, Z, la1, a2, 0, 0, mvcp, 0)
934/* MOVE TO SECONDARY */
935 C(0xdb00, MVCS, SS_d, Z, la1, a2, 0, 0, mvcs, 0)
0568d8aa
RH
936/* PURGE TLB */
937 C(0xb20d, PTLB, S, Z, 0, 0, 0, 0, ptlb, 0)
5cc69c54
RH
938/* RESET REFERENCE BIT EXTENDED */
939 C(0xb22a, RRBE, RRE, Z, 0, r2_o, 0, 0, rrbe, 0)
dc458df9
RH
940/* SERVICE CALL LOGICAL PROCESSOR (PV hypercall) */
941 C(0xb220, SERVC, RRE, Z, r1_o, r2_o, 0, 0, servc, 0)
14244b21
RH
942/* SET ADDRESS SPACE CONTROL FAST */
943 C(0xb279, SACF, S, Z, 0, a2, 0, 0, sacf, 0)
35289799
RH
944/* SET CLOCK */
945 /* ??? Not implemented - is it necessary? */
946 C(0xb204, SCK, S, Z, 0, 0, 0, 0, 0, 0)
dd3eb7b5
RH
947/* SET CLOCK COMPARATOR */
948 C(0xb206, SCKC, S, Z, 0, m2_64, 0, 0, sckc, 0)
c4f0a863
RH
949/* SET CPU TIMER */
950 C(0xb208, SPT, S, Z, 0, m2_64, 0, 0, spt, 0)
e805a0d3
RH
951/* SET PREFIX */
952 C(0xb210, SPX, S, Z, 0, m2_32u, 0, 0, spx, 0)
28d55556
RH
953/* SET PSW KEY FROM ADDRESS */
954 C(0xb20a, SPKA, S, Z, 0, a2, 0, 0, spka, 0)
2bbde27f
RH
955/* SET STORAGE KEY EXTENDED */
956 C(0xb22b, SSKE, RRF_c, Z, r1_o, r2_o, 0, 0, sske, 0)
7d30bb73
RH
957/* SET SYSTEM MASK */
958 C(0x8000, SSM, S, Z, 0, m2_8u, 0, 0, ssm, 0)
0c240015
RH
959/* SIGNAL PROCESSOR */
960 C(0xae00, SIGP, RS_a, Z, r3_o, a2, 0, 0, sigp, 0)
434c91a5
RH
961/* STORE CLOCK */
962 C(0xb205, STCK, S, Z, la2, 0, new, m1_64, stck, 0)
f7c21140 963 C(0xb27c, STCKF, S, SCF, la2, 0, new, m1_64, stck, 0)
39a5003c
RH
964/* STORE CLOCK EXTENDED */
965 C(0xb278, STCKE, S, Z, 0, a2, 0, 0, stcke, 0)
dd3eb7b5
RH
966/* STORE CLOCK COMPARATOR */
967 C(0xb207, STCKC, S, Z, la2, 0, new, m1_64, stckc, 0)
504488b8
RH
968/* STORE CONTROL */
969 C(0xb600, STCTL, RS_a, Z, 0, a2, 0, 0, stctl, 0)
3e398cf9 970 C(0xeb25, STCTG, RSY_a, Z, 0, a2, 0, 0, stctg, 0)
411fea3d
RH
971/* STORE CPU ADDRESS */
972 C(0xb212, STAP, S, Z, la2, 0, new, m1_16, stap, 0)
71bd6669 973/* STORE CPU ID */
076d4d39 974 C(0xb202, STIDP, S, Z, la2, 0, new, 0, stidp, 0)
c4f0a863
RH
975/* STORE CPU TIMER */
976 C(0xb209, STPT, S, Z, la2, 0, new, m1_64, stpt, 0)
fc778b55
RH
977/* STORE FACILITY LIST */
978 C(0xb2b1, STFL, S, Z, 0, 0, 0, 0, stfl, 0)
e805a0d3
RH
979/* STORE PREFIX */
980 C(0xb211, STPX, S, Z, la2, 0, new, m1_32, stpx, 0)
d14b3e09
RH
981/* STORE SYSTEM INFORMATION */
982 C(0xb27d, STSI, S, Z, 0, a2, 0, 0, stsi, 0)
145cdb40
RH
983/* STORE THEN AND SYSTEM MASK */
984 C(0xac00, STNSM, SI, Z, la1, 0, 0, 0, stnosm, 0)
985/* STORE THEN OR SYSTEM MASK */
986 C(0xad00, STOSM, SI, Z, la1, 0, 0, 0, stnosm, 0)
204504e2
RH
987/* STORE USING REAL ADDRESS */
988 C(0xb246, STURA, RRE, Z, r1_o, r2_o, 0, 0, stura, 0)
9c3fd85b 989 C(0xb925, STURG, RRE, Z, r1_o, r2_o, 0, 0, sturg, 0)
f79f1ca4
TH
990/* TEST BLOCK */
991 C(0xb22c, TB, RRE, Z, 0, r2_o, 0, 0, testblock, 0)
112bf079
RH
992/* TEST PROTECTION */
993 C(0xe501, TPROT, SSE, Z, la1, a2, 0, 0, tprot, 0)
2c423fc0 994
ad8a4570
AG
995/* CCW I/O Instructions */
996 C(0xb276, XSCH, S, Z, 0, 0, 0, 0, xsch, 0)
997 C(0xb230, CSCH, S, Z, 0, 0, 0, 0, csch, 0)
998 C(0xb231, HSCH, S, Z, 0, 0, 0, 0, hsch, 0)
999 C(0xb232, MSCH, S, Z, 0, insn, 0, 0, msch, 0)
1000 C(0xb23b, RCHP, S, Z, 0, 0, 0, 0, rchp, 0)
1001 C(0xb238, RSCH, S, Z, 0, 0, 0, 0, rsch, 0)
1002 C(0xb233, SSCH, S, Z, 0, insn, 0, 0, ssch, 0)
1003 C(0xb234, STSCH, S, Z, 0, insn, 0, 0, stsch, 0)
1004 C(0xb235, TSCH, S, Z, 0, insn, 0, 0, tsch, 0)
2c423fc0
RH
1005 /* ??? Not listed in PoO ninth edition, but there's a linux driver that
1006 uses it: "A CHSC subchannel is usually present on LPAR only." */
ad8a4570 1007 C(0xb25f, CHSC, RRE, Z, 0, insn, 0, 0, chsc, 0)
d9a39927 1008#endif /* CONFIG_USER_ONLY */
This page took 0.437676 seconds and 4 git commands to generate.