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