]> Git Repo - qemu.git/blame - target/s390x/insn-data.def
s390x/tcg: Implement VECTOR ELEMENT ROTATE LEFT LOGICAL
[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)
82d17933
DH
6 * E(OPC, NAME, FMT, FAC, I1, I2, P, W, OP, CC, DATA, FLAGS)
7 * F(OPC, NAME, FMT, FAC, I1, I2, P, W, OP, CC, FLAGS)
13f67dd5
AG
8 *
9 * OPC = (op << 8) | op2 where op is the major, op2 the minor opcode
10 * NAME = name of the opcode, used internally
11 * FMT = format of the opcode (defined in insn-format.def)
12 * FAC = facility the opcode is available in (defined in DisasFacility)
13 * I1 = func in1_xx fills o->in1
14 * I2 = func in2_xx fills o->in2
15 * P = func prep_xx initializes o->*out*
16 * W = func wout_xx writes o->*out* somewhere
17 * OP = func op_xx does the bulk of the operation
18 * CC = func cout_xx defines how cc should get set
19 * DATA = immediate argument to op_xx function
82d17933 20 * FLAGS = categorize the type of instruction (e.g. for advanced checks)
13f67dd5
AG
21 *
22 * The helpers get called in order: I1, I2, P, OP, W, CC
23 */
24
ad044d09
RH
25/* ADD */
26 C(0x1a00, AR, RR_a, Z, r1, r2, new, r1_32, add, adds32)
27 C(0xb9f8, ARK, RRF_a, DO, r2, r3, new, r1_32, add, adds32)
28 C(0x5a00, A, RX_a, Z, r1, m2_32s, new, r1_32, add, adds32)
29 C(0xe35a, AY, RXY_a, LD, r1, m2_32s, new, r1_32, add, adds32)
30 C(0xb908, AGR, RRE, Z, r1, r2, r1, 0, add, adds64)
31 C(0xb918, AGFR, RRE, Z, r1, r2_32s, r1, 0, add, adds64)
32 C(0xb9e8, AGRK, RRF_a, DO, r2, r3, r1, 0, add, adds64)
33 C(0xe308, AG, RXY_a, Z, r1, m2_64, r1, 0, add, adds64)
34 C(0xe318, AGF, RXY_a, Z, r1, m2_32s, r1, 0, add, adds64)
ca5f31a0 35 F(0xb30a, AEBR, RRE, Z, e1, e2, new, e1, aeb, f32, IF_BFP)
80a7b759
DH
36 F(0xb31a, ADBR, RRE, Z, f1, f2, new, f1, adb, f64, IF_BFP)
37 F(0xb34a, AXBR, RRE, Z, x2h, x2l, x1, x1, axb, f128, IF_BFP)
ca5f31a0 38 F(0xed0a, AEB, RXE, Z, e1, m2_32u, new, e1, aeb, f32, IF_BFP)
80a7b759 39 F(0xed1a, ADB, RXE, Z, f1, m2_64, new, f1, adb, f64, IF_BFP)
a1f12d85
AJ
40/* ADD HIGH */
41 C(0xb9c8, AHHHR, RRF_a, HW, r2_sr32, r3_sr32, new, r1_32h, add, adds32)
42 C(0xb9d8, AHHLR, RRF_a, HW, r2_sr32, r3, new, r1_32h, add, adds32)
ad044d09
RH
43/* ADD IMMEDIATE */
44 C(0xc209, AFI, RIL_a, EI, r1, i2, new, r1_32, add, adds32)
0e9383bc 45 D(0xeb6a, ASI, SIY, GIE, la1, i2, new, 0, asi, adds32, MO_TESL)
ad044d09
RH
46 C(0xecd8, AHIK, RIE_d, DO, r3, i2, new, r1_32, add, adds32)
47 C(0xc208, AGFI, RIL_a, EI, r1, i2, r1, 0, add, adds64)
0e9383bc 48 D(0xeb7a, AGSI, SIY, GIE, la1, i2, new, 0, asi, adds64, MO_TEQ)
ad044d09 49 C(0xecd9, AGHIK, RIE_d, DO, r3, i2, r1, 0, add, adds64)
a1f12d85
AJ
50/* ADD IMMEDIATE HIGH */
51 C(0xcc08, AIH, RIL_a, HW, r1_sr32, i2, new, r1_32h, add, adds32)
d82287de
RH
52/* ADD HALFWORD */
53 C(0x4a00, AH, RX_a, Z, r1, m2_16s, new, r1_32, add, adds32)
54 C(0xe37a, AHY, RXY_a, LD, r1, m2_16s, new, r1_32, add, adds32)
55/* ADD HALFWORD IMMEDIATE */
56 C(0xa70a, AHI, RI_a, Z, r1, i2, new, r1_32, add, adds32)
57 C(0xa70b, AGHI, RI_a, Z, r1, i2, r1, 0, add, adds64)
58
ad044d09
RH
59/* ADD LOGICAL */
60 C(0x1e00, ALR, RR_a, Z, r1, r2, new, r1_32, add, addu32)
61 C(0xb9fa, ALRK, RRF_a, DO, r2, r3, new, r1_32, add, addu32)
62 C(0x5e00, AL, RX_a, Z, r1, m2_32u, new, r1_32, add, addu32)
63 C(0xe35e, ALY, RXY_a, LD, r1, m2_32u, new, r1_32, add, addu32)
64 C(0xb90a, ALGR, RRE, Z, r1, r2, r1, 0, add, addu64)
65 C(0xb91a, ALGFR, RRE, Z, r1, r2_32u, r1, 0, add, addu64)
66 C(0xb9ea, ALGRK, RRF_a, DO, r2, r3, r1, 0, add, addu64)
67 C(0xe30a, ALG, RXY_a, Z, r1, m2_64, r1, 0, add, addu64)
68 C(0xe31a, ALGF, RXY_a, Z, r1, m2_32u, r1, 0, add, addu64)
a1f12d85
AJ
69/* ADD LOGICAL HIGH */
70 C(0xb9ca, ALHHHR, RRF_a, HW, r2_sr32, r3_sr32, new, r1_32h, add, addu32)
71 C(0xb9da, ALHHLR, RRF_a, HW, r2_sr32, r3, new, r1_32h, add, addu32)
ad044d09
RH
72/* ADD LOGICAL IMMEDIATE */
73 C(0xc20b, ALFI, RIL_a, EI, r1, i2_32u, new, r1_32, add, addu32)
74 C(0xc20a, ALGFI, RIL_a, EI, r1, i2_32u, r1, 0, add, addu64)
e272b3ac 75/* ADD LOGICAL WITH SIGNED IMMEDIATE */
0e9383bc 76 D(0xeb6e, ALSI, SIY, GIE, la1, i2, new, 0, asi, addu32, MO_TEUL)
e272b3ac 77 C(0xecda, ALHSIK, RIE_d, DO, r3, i2, new, r1_32, add, addu32)
0e9383bc 78 D(0xeb7e, ALGSI, SIY, GIE, la1, i2, new, 0, asi, addu64, MO_TEQ)
e272b3ac 79 C(0xecdb, ALGHSIK, RIE_d, DO, r3, i2, r1, 0, add, addu64)
a1f12d85
AJ
80/* ADD LOGICAL WITH SIGNED IMMEDIATE HIGH */
81 C(0xcc0a, ALSIH, RIL_a, HW, r1_sr32, i2, new, r1_32h, add, addu32)
82 C(0xcc0b, ALSIHN, RIL_a, HW, r1_sr32, i2, new, r1_32h, add, 0)
4e4bb438
RH
83/* ADD LOGICAL WITH CARRY */
84 C(0xb998, ALCR, RRE, Z, r1, r2, new, r1_32, addc, addc32)
85 C(0xb988, ALCGR, RRE, Z, r1, r2, r1, 0, addc, addc64)
86 C(0xe398, ALC, RXY_a, Z, r1, m2_32u, new, r1_32, addc, addc32)
87 C(0xe388, ALCG, RXY_a, Z, r1, m2_64, r1, 0, addc, addc64)
ad044d09 88
3bbfbd1f
RH
89/* AND */
90 C(0x1400, NR, RR_a, Z, r1, r2, new, r1_32, and, nz32)
91 C(0xb9f4, NRK, RRF_a, DO, r2, r3, new, r1_32, and, nz32)
92 C(0x5400, N, RX_a, Z, r1, m2_32s, new, r1_32, and, nz32)
93 C(0xe354, NY, RXY_a, LD, r1, m2_32s, new, r1_32, and, nz32)
94 C(0xb980, NGR, RRE, Z, r1, r2, r1, 0, and, nz64)
95 C(0xb9e4, NGRK, RRF_a, DO, r2, r3, r1, 0, and, nz64)
96 C(0xe380, NG, RXY_a, Z, r1, m2_64, r1, 0, and, nz64)
0a949039 97 C(0xd400, NC, SS_a, Z, la1, a2, 0, 0, nc, 0)
facfc864
RH
98/* AND IMMEDIATE */
99 D(0xc00a, NIHF, RIL_a, EI, r1_o, i2_32u, r1, 0, andi, 0, 0x2020)
100 D(0xc00b, NILF, RIL_a, EI, r1_o, i2_32u, r1, 0, andi, 0, 0x2000)
101 D(0xa504, NIHH, RI_a, Z, r1_o, i2_16u, r1, 0, andi, 0, 0x1030)
102 D(0xa505, NIHL, RI_a, Z, r1_o, i2_16u, r1, 0, andi, 0, 0x1020)
103 D(0xa506, NILH, RI_a, Z, r1_o, i2_16u, r1, 0, andi, 0, 0x1010)
104 D(0xa507, NILL, RI_a, Z, r1_o, i2_16u, r1, 0, andi, 0, 0x1000)
f400be18
DH
105 D(0x9400, NI, SI, Z, la1, i2_8u, new, 0, ni, nz64, MO_UB)
106 D(0xeb54, NIY, SIY, LD, la1, i2_8u, new, 0, ni, nz64, MO_UB)
3bbfbd1f 107
e1db291b
PZ
108/* BRANCH AND LINK */
109 C(0x0500, BALR, RR_a, Z, 0, r2_nz, r1, 0, bal, 0)
110 C(0x4500, BAL, RX_a, Z, 0, a2, r1, 0, bal, 0)
8ac33cdb
RH
111/* BRANCH AND SAVE */
112 C(0x0d00, BASR, RR_a, Z, 0, r2_nz, r1, 0, bas, 0)
113 C(0x4d00, BAS, RX_a, Z, 0, a2, r1, 0, bas, 0)
114/* BRANCH RELATIVE AND SAVE */
115 C(0xa705, BRAS, RI_b, Z, 0, 0, r1, 0, basi, 0)
116 C(0xc005, BRASL, RIL_b, Z, 0, 0, r1, 0, basi, 0)
7233f2ed
RH
117/* BRANCH ON CONDITION */
118 C(0x0700, BCR, RR_b, Z, 0, r2_nz, 0, 0, bc, 0)
119 C(0x4700, BC, RX_b, Z, 0, a2, 0, 0, bc, 0)
120/* BRANCH RELATIVE ON CONDITION */
121 C(0xa704, BRC, RI_c, Z, 0, 0, 0, 0, bc, 0)
122 C(0xc004, BRCL, RIL_c, Z, 0, 0, 0, 0, bc, 0)
c61aad69
RH
123/* BRANCH ON COUNT */
124 C(0x0600, BCTR, RR_a, Z, 0, r2_nz, 0, 0, bct32, 0)
125 C(0xb946, BCTGR, RRE, Z, 0, r2_nz, 0, 0, bct64, 0)
126 C(0x4600, BCT, RX_a, Z, 0, a2, 0, 0, bct32, 0)
127 C(0xe346, BCTG, RXY_a, Z, 0, a2, 0, 0, bct64, 0)
128/* BRANCH RELATIVE ON COUNT */
129 C(0xa706, BRCT, RI_b, Z, 0, 0, 0, 0, bct32, 0)
130 C(0xa707, BRCTG, RI_b, Z, 0, 0, 0, 0, bct64, 0)
a1f12d85
AJ
131/* BRANCH RELATIVE ON COUNT HIGH */
132 C(0xcc06, BRCTH, RIL_b, HW, 0, 0, 0, 0, bcth, 0)
2cf5e350
RH
133/* BRANCH ON INDEX */
134 D(0x8600, BXH, RS_a, Z, 0, a2, 0, 0, bx32, 0, 0)
135 D(0x8700, BXLE, RS_a, Z, 0, a2, 0, 0, bx32, 0, 1)
136 D(0xeb44, BXHG, RSY_a, Z, 0, a2, 0, 0, bx64, 0, 0)
137 D(0xeb45, BXLEG, RSY_a, Z, 0, a2, 0, 0, bx64, 0, 1)
138/* BRANCH RELATIVE ON INDEX */
139 D(0x8400, BRXH, RSI, Z, 0, 0, 0, 0, bx32, 0, 0)
140 D(0x8500, BRXLE, RSI, Z, 0, 0, 0, 0, bx32, 0, 1)
141 D(0xec44, BRXHG, RIE_e, Z, 0, 0, 0, 0, bx64, 0, 0)
142 D(0xec45, BRXHLE, RIE_e, Z, 0, 0, 0, 0, bx64, 0, 1)
6a68acd5
RH
143/* BRANCH PREDICTION PRELOAD */
144 /* ??? Format is SMI, but implemented as NOP, so we need no fields. */
145 C(0xc700, BPP, E, EH, 0, 0, 0, 0, 0, 0)
146/* BRANCH PREDICTION RELATIVE PRELOAD */
147 /* ??? Format is MII, but implemented as NOP, so we need no fields. */
148 C(0xc500, BPRP, E, EH, 0, 0, 0, 0, 0, 0)
149/* NEXT INSTRUCTION ACCESS INTENT */
150 /* ??? Format is IE, but implemented as NOP, so we need no fields. */
151 C(0xb2fa, NIAI, E, EH, 0, 0, 0, 0, 0, 0)
8ac33cdb 152
374724f9
RH
153/* CHECKSUM */
154 C(0xb241, CKSM, RRE, Z, r1_o, ra2, new, r1_32, cksm, 0)
155
2db014b5 156/* COPY SIGN */
80a7b759 157 F(0xb372, CPSDR, RRF_b, FPSSH, f3, f2, new, f1, cps, 0, IF_AFP1 | IF_AFP2 | IF_AFP3)
2db014b5 158
a7e836d5
RH
159/* COMPARE */
160 C(0x1900, CR, RR_a, Z, r1_o, r2_o, 0, 0, 0, cmps32)
161 C(0x5900, C, RX_a, Z, r1_o, m2_32s, 0, 0, 0, cmps32)
162 C(0xe359, CY, RXY_a, LD, r1_o, m2_32s, 0, 0, 0, cmps32)
163 C(0xb920, CGR, RRE, Z, r1_o, r2_o, 0, 0, 0, cmps64)
164 C(0xb930, CGFR, RRE, Z, r1_o, r2_32s, 0, 0, 0, cmps64)
165 C(0xe320, CG, RXY_a, Z, r1_o, m2_64, 0, 0, 0, cmps64)
166 C(0xe330, CGF, RXY_a, Z, r1_o, m2_32s, 0, 0, 0, cmps64)
ca5f31a0 167 F(0xb309, CEBR, RRE, Z, e1, e2, 0, 0, ceb, 0, IF_BFP)
80a7b759
DH
168 F(0xb319, CDBR, RRE, Z, f1, f2, 0, 0, cdb, 0, IF_BFP)
169 F(0xb349, CXBR, RRE, Z, x2h, x2l, x1, 0, cxb, 0, IF_BFP)
ca5f31a0 170 F(0xed09, CEB, RXE, Z, e1, m2_32u, 0, 0, ceb, 0, IF_BFP)
80a7b759 171 F(0xed19, CDB, RXE, Z, f1, m2_64, 0, 0, cdb, 0, IF_BFP)
9c8be598 172/* COMPARE AND SIGNAL */
ca5f31a0 173 F(0xb308, KEBR, RRE, Z, e1, e2, 0, 0, keb, 0, IF_BFP)
80a7b759
DH
174 F(0xb318, KDBR, RRE, Z, f1, f2, 0, 0, kdb, 0, IF_BFP)
175 F(0xb348, KXBR, RRE, Z, x2h, x2l, x1, 0, kxb, 0, IF_BFP)
ca5f31a0 176 F(0xed08, KEB, RXE, Z, e1, m2_32u, 0, 0, keb, 0, IF_BFP)
80a7b759 177 F(0xed18, KDB, RXE, Z, f1, m2_64, 0, 0, kdb, 0, IF_BFP)
a7e836d5
RH
178/* COMPARE IMMEDIATE */
179 C(0xc20d, CFI, RIL_a, EI, r1, i2, 0, 0, 0, cmps32)
180 C(0xc20c, CGFI, RIL_a, EI, r1, i2, 0, 0, 0, cmps64)
403e217f
RH
181/* COMPARE RELATIVE LONG */
182 C(0xc60d, CRL, RIL_b, GIE, r1, mri2_32s, 0, 0, 0, cmps32)
183 C(0xc608, CGRL, RIL_b, GIE, r1, mri2_64, 0, 0, 0, cmps64)
184 C(0xc60c, CGFRL, RIL_b, GIE, r1, mri2_32s, 0, 0, 0, cmps64)
a7e836d5
RH
185/* COMPARE HALFWORD */
186 C(0x4900, CH, RX_a, Z, r1_o, m2_16s, 0, 0, 0, cmps32)
187 C(0xe379, CHY, RXY_a, LD, r1_o, m2_16s, 0, 0, 0, cmps32)
188 C(0xe334, CGH, RXY_a, GIE, r1_o, m2_16s, 0, 0, 0, cmps64)
189/* COMPARE HALFWORD IMMEDIATE */
190 C(0xa70e, CHI, RI_a, Z, r1_o, i2, 0, 0, 0, cmps32)
191 C(0xa70f, CGHI, RI_a, Z, r1_o, i2, 0, 0, 0, cmps64)
192 C(0xe554, CHHSI, SIL, GIE, m1_16s, i2, 0, 0, 0, cmps64)
193 C(0xe55c, CHSI, SIL, GIE, m1_32s, i2, 0, 0, 0, cmps64)
194 C(0xe558, CGHSI, SIL, GIE, m1_64, i2, 0, 0, 0, cmps64)
195/* COMPARE HALFWORD RELATIVE LONG */
74266b4a
AJ
196 C(0xc605, CHRL, RIL_b, GIE, r1_o, mri2_32s, 0, 0, 0, cmps32)
197 C(0xc604, CGHRL, RIL_b, GIE, r1_o, mri2_64, 0, 0, 0, cmps64)
a1f12d85
AJ
198/* COMPARE HIGH */
199 C(0xb9cd, CHHR, RRE, HW, r1_sr32, r2_sr32, 0, 0, 0, cmps32)
200 C(0xb9dd, CHLR, RRE, HW, r1_sr32, r2_o, 0, 0, 0, cmps32)
201 C(0xe3cd, CHF, RXY_a, HW, r1_sr32, m2_32s, 0, 0, 0, cmps32)
202/* COMPARE IMMEDIATE HIGH */
203 C(0xcc0d, CIH, RIL_a, HW, r1_sr32, i2, 0, 0, 0, cmps32)
a7e836d5
RH
204
205/* COMPARE LOGICAL */
206 C(0x1500, CLR, RR_a, Z, r1, r2, 0, 0, 0, cmpu32)
207 C(0x5500, CL, RX_a, Z, r1, m2_32s, 0, 0, 0, cmpu32)
208 C(0xe355, CLY, RXY_a, LD, r1, m2_32s, 0, 0, 0, cmpu32)
209 C(0xb921, CLGR, RRE, Z, r1, r2, 0, 0, 0, cmpu64)
210 C(0xb931, CLGFR, RRE, Z, r1, r2_32u, 0, 0, 0, cmpu64)
211 C(0xe321, CLG, RXY_a, Z, r1, m2_64, 0, 0, 0, cmpu64)
212 C(0xe331, CLGF, RXY_a, Z, r1, m2_32u, 0, 0, 0, cmpu64)
4f7403d5 213 C(0xd500, CLC, SS_a, Z, la1, a2, 0, 0, clc, 0)
a1f12d85
AJ
214/* COMPARE LOGICAL HIGH */
215 C(0xb9cf, CLHHR, RRE, HW, r1_sr32, r2_sr32, 0, 0, 0, cmpu32)
216 C(0xb9df, CLHLR, RRE, HW, r1_sr32, r2_o, 0, 0, 0, cmpu32)
217 C(0xe3cf, CLHF, RXY_a, HW, r1_sr32, m2_32s, 0, 0, 0, cmpu32)
a7e836d5
RH
218/* COMPARE LOGICAL IMMEDIATE */
219 C(0xc20f, CLFI, RIL_a, EI, r1, i2, 0, 0, 0, cmpu32)
220 C(0xc20e, CLGFI, RIL_a, EI, r1, i2_32u, 0, 0, 0, cmpu64)
221 C(0x9500, CLI, SI, Z, m1_8u, i2_8u, 0, 0, 0, cmpu64)
222 C(0xeb55, CLIY, SIY, LD, m1_8u, i2_8u, 0, 0, 0, cmpu64)
223 C(0xe555, CLHHSI, SIL, GIE, m1_16u, i2_16u, 0, 0, 0, cmpu64)
224 C(0xe55d, CLFHSI, SIL, GIE, m1_32u, i2_16u, 0, 0, 0, cmpu64)
225 C(0xe559, CLGHSI, SIL, GIE, m1_64, i2_16u, 0, 0, 0, cmpu64)
a1f12d85
AJ
226/* COMPARE LOGICAL IMMEDIATE HIGH */
227 C(0xcc0f, CLIH, RIL_a, HW, r1_sr32, i2, 0, 0, 0, cmpu32)
a7e836d5
RH
228/* COMPARE LOGICAL RELATIVE LONG */
229 C(0xc60f, CLRL, RIL_b, GIE, r1_o, mri2_32u, 0, 0, 0, cmpu32)
230 C(0xc60a, CLGRL, RIL_b, GIE, r1_o, mri2_64, 0, 0, 0, cmpu64)
231 C(0xc60e, CLGFRL, RIL_b, GIE, r1_o, mri2_32u, 0, 0, 0, cmpu64)
232 C(0xc607, CLHRL, RIL_b, GIE, r1_o, mri2_16u, 0, 0, 0, cmpu32)
233 C(0xc606, CLGHRL, RIL_b, GIE, r1_o, mri2_16u, 0, 0, 0, cmpu64)
5c2b48a8
AJ
234/* COMPARE LOGICAL LONG */
235 C(0x0f00, CLCL, RR_a, Z, 0, 0, 0, 0, clcl, 0)
eb66e6a9
RH
236/* COMPARE LOGICAL LONG EXTENDED */
237 C(0xa900, CLCLE, RS_a, Z, 0, a2, 0, 0, clcle, 0)
31006af3
AJ
238/* COMPARE LOGICAL LONG UNICODE */
239 C(0xeb8f, CLCLU, RSY_a, E2, 0, a2, 0, 0, clclu, 0)
32a44d58
RH
240/* COMPARE LOGICAL CHARACTERS UNDER MASK */
241 C(0xbd00, CLM, RS_b, Z, r1_o, a2, 0, 0, clm, 0)
242 C(0xeb21, CLMY, RSY_b, LD, r1_o, a2, 0, 0, clm, 0)
243 C(0xeb20, CLMH, RSY_b, Z, r1_sr32, a2, 0, 0, clm, 0)
aa31bf60
RH
244/* COMPARE LOGICAL STRING */
245 C(0xb25d, CLST, RRE, Z, r1_o, r2_o, 0, 0, clst, 0)
a7e836d5 246
5550359f
RH
247/* COMPARE AND BRANCH */
248 D(0xecf6, CRB, RRS, GIE, r1_32s, r2_32s, 0, 0, cj, 0, 0)
249 D(0xece4, CGRB, RRS, GIE, r1_o, r2_o, 0, 0, cj, 0, 0)
250 D(0xec76, CRJ, RIE_b, GIE, r1_32s, r2_32s, 0, 0, cj, 0, 0)
251 D(0xec64, CGRJ, RIE_b, GIE, r1_o, r2_o, 0, 0, cj, 0, 0)
252 D(0xecfe, CIB, RIS, GIE, r1_32s, i2, 0, 0, cj, 0, 0)
253 D(0xecfc, CGIB, RIS, GIE, r1_o, i2, 0, 0, cj, 0, 0)
254 D(0xec7e, CIJ, RIE_c, GIE, r1_32s, i2, 0, 0, cj, 0, 0)
255 D(0xec7c, CGIJ, RIE_c, GIE, r1_o, i2, 0, 0, cj, 0, 0)
256/* COMPARE LOGICAL AND BRANCH */
257 D(0xecf7, CLRB, RRS, GIE, r1_32u, r2_32u, 0, 0, cj, 0, 1)
258 D(0xece5, CLGRB, RRS, GIE, r1_o, r2_o, 0, 0, cj, 0, 1)
259 D(0xec77, CLRJ, RIE_b, GIE, r1_32u, r2_32u, 0, 0, cj, 0, 1)
260 D(0xec65, CLGRJ, RIE_b, GIE, r1_o, r2_o, 0, 0, cj, 0, 1)
261 D(0xecff, CLIB, RIS, GIE, r1_32u, i2_8u, 0, 0, cj, 0, 1)
262 D(0xecfd, CLGIB, RIS, GIE, r1_o, i2_8u, 0, 0, cj, 0, 1)
263 D(0xec7f, CLIJ, RIE_c, GIE, r1_32u, i2_8u, 0, 0, cj, 0, 1)
264 D(0xec7d, CLGIJ, RIE_c, GIE, r1_o, i2_8u, 0, 0, cj, 0, 1)
265
f3de39c4 266/* COMPARE AND SWAP */
303a9ab8
RH
267 D(0xba00, CS, RS_a, Z, r3_32u, r1_32u, new, r1_32, cs, 0, MO_TEUL)
268 D(0xeb14, CSY, RSY_a, LD, r3_32u, r1_32u, new, r1_32, cs, 0, MO_TEUL)
269 D(0xeb30, CSG, RSY_a, Z, r3_o, r1_o, new, r1, cs, 0, MO_TEQ)
f3de39c4 270/* COMPARE DOUBLE AND SWAP */
303a9ab8
RH
271 D(0xbb00, CDS, RS_a, Z, r3_D32, r1_D32, new, r1_D32, cs, 0, MO_TEQ)
272 D(0xeb31, CDSY, RSY_a, LD, r3_D32, r1_D32, new, r1_D32, cs, 0, MO_TEQ)
b7886de3 273 C(0xeb3e, CDSG, RSY_a, Z, 0, 0, 0, 0, cdsg, 0)
c67ba303
RH
274/* COMPARE AND SWAP AND STORE */
275 C(0xc802, CSST, SSF, CASS, la1, a2, 0, 0, csst, 0)
f3de39c4 276
1c268751
RH
277/* COMPARE AND TRAP */
278 D(0xb972, CRT, RRF_c, GIE, r1_32s, r2_32s, 0, 0, ct, 0, 0)
279 D(0xb960, CGRT, RRF_c, GIE, r1_o, r2_o, 0, 0, ct, 0, 0)
280 D(0xec72, CIT, RIE_a, GIE, r1_32s, i2, 0, 0, ct, 0, 0)
281 D(0xec70, CGIT, RIE_a, GIE, r1_o, i2, 0, 0, ct, 0, 0)
282/* COMPARE LOGICAL AND TRAP */
283 D(0xb973, CLRT, RRF_c, GIE, r1_32u, r2_32u, 0, 0, ct, 0, 1)
284 D(0xb961, CLGRT, RRF_c, GIE, r1_o, r2_o, 0, 0, ct, 0, 1)
375ee58b
AJ
285 D(0xeb23, CLT, RSY_b, MIE, r1_32u, m2_32u, 0, 0, ct, 0, 1)
286 D(0xeb2b, CLGT, RSY_b, MIE, r1_o, m2_64, 0, 0, ct, 0, 1)
1c268751 287 D(0xec73, CLFIT, RIE_a, GIE, r1_32u, i2_32u, 0, 0, ct, 0, 1)
1dedb9b7 288 D(0xec71, CLGIT, RIE_a, GIE, r1_o, i2_32u, 0, 0, ct, 0, 1)
1c268751 289
c49daa51
RH
290/* CONVERT TO DECIMAL */
291 C(0x4e00, CVD, RX_a, Z, r1_o, a2, 0, 0, cvd, 0)
292 C(0xe326, CVDY, RXY_a, LD, r1_o, a2, 0, 0, cvd, 0)
68c8bd93 293/* CONVERT TO FIXED */
ca5f31a0 294 F(0xb398, CFEBR, RRF_e, Z, 0, e2, new, r1_32, cfeb, 0, IF_BFP)
80a7b759
DH
295 F(0xb399, CFDBR, RRF_e, Z, 0, f2, new, r1_32, cfdb, 0, IF_BFP)
296 F(0xb39a, CFXBR, RRF_e, Z, x2h, x2l, new, r1_32, cfxb, 0, IF_BFP)
ca5f31a0 297 F(0xb3a8, CGEBR, RRF_e, Z, 0, e2, r1, 0, cgeb, 0, IF_BFP)
80a7b759
DH
298 F(0xb3a9, CGDBR, RRF_e, Z, 0, f2, r1, 0, cgdb, 0, IF_BFP)
299 F(0xb3aa, CGXBR, RRF_e, Z, x2h, x2l, r1, 0, cgxb, 0, IF_BFP)
683bb9a8 300/* CONVERT FROM FIXED */
ca5f31a0 301 F(0xb394, CEFBR, RRF_e, Z, 0, r2_32s, new, e1, cegb, 0, IF_BFP)
80a7b759
DH
302 F(0xb395, CDFBR, RRF_e, Z, 0, r2_32s, new, f1, cdgb, 0, IF_BFP)
303 F(0xb396, CXFBR, RRF_e, Z, 0, r2_32s, new_P, x1, cxgb, 0, IF_BFP)
ca5f31a0 304 F(0xb3a4, CEGBR, RRF_e, Z, 0, r2_o, new, e1, cegb, 0, IF_BFP)
80a7b759
DH
305 F(0xb3a5, CDGBR, RRF_e, Z, 0, r2_o, new, f1, cdgb, 0, IF_BFP)
306 F(0xb3a6, CXGBR, RRF_e, Z, 0, r2_o, new_P, x1, cxgb, 0, IF_BFP)
6ac1b45f 307/* CONVERT TO LOGICAL */
ca5f31a0 308 F(0xb39c, CLFEBR, RRF_e, FPE, 0, e2, new, r1_32, clfeb, 0, IF_BFP)
80a7b759
DH
309 F(0xb39d, CLFDBR, RRF_e, FPE, 0, f2, new, r1_32, clfdb, 0, IF_BFP)
310 F(0xb39e, CLFXBR, RRF_e, FPE, x2h, x2l, new, r1_32, clfxb, 0, IF_BFP)
ca5f31a0 311 F(0xb3ac, CLGEBR, RRF_e, FPE, 0, e2, r1, 0, clgeb, 0, IF_BFP)
80a7b759
DH
312 F(0xb3ad, CLGDBR, RRF_e, FPE, 0, f2, r1, 0, clgdb, 0, IF_BFP)
313 F(0xb3ae, CLGXBR, RRF_e, FPE, x2h, x2l, r1, 0, clgxb, 0, IF_BFP)
2112bf1b 314/* CONVERT FROM LOGICAL */
ca5f31a0 315 F(0xb390, CELFBR, RRF_e, FPE, 0, r2_32u, new, e1, celgb, 0, IF_BFP)
80a7b759
DH
316 F(0xb391, CDLFBR, RRF_e, FPE, 0, r2_32u, new, f1, cdlgb, 0, IF_BFP)
317 F(0xb392, CXLFBR, RRF_e, FPE, 0, r2_32u, new_P, x1, cxlgb, 0, IF_BFP)
ca5f31a0 318 F(0xb3a0, CELGBR, RRF_e, FPE, 0, r2_o, new, e1, celgb, 0, IF_BFP)
80a7b759
DH
319 F(0xb3a1, CDLGBR, RRF_e, FPE, 0, r2_o, new, f1, cdlgb, 0, IF_BFP)
320 F(0xb3a2, CXLGBR, RRF_e, FPE, 0, r2_o, new_P, x1, cxlgb, 0, IF_BFP)
c49daa51 321
941ef3db
RH
322/* CONVERT UTF-8 TO UTF-16 */
323 D(0xb2a7, CU12, RRF_c, Z, 0, 0, 0, 0, cuXX, 0, 12)
324/* CONVERT UTF-8 TO UTF-32 */
325 D(0xb9b0, CU14, RRF_c, ETF3, 0, 0, 0, 0, cuXX, 0, 14)
326/* CONVERT UTF-16 to UTF-8 */
327 D(0xb2a6, CU21, RRF_c, Z, 0, 0, 0, 0, cuXX, 0, 21)
328/* CONVERT UTF-16 to UTF-32 */
329 D(0xb9b1, CU24, RRF_c, ETF3, 0, 0, 0, 0, cuXX, 0, 24)
330/* CONVERT UTF-32 to UTF-8 */
331 D(0xb9b2, CU41, RRF_c, ETF3, 0, 0, 0, 0, cuXX, 0, 41)
332/* CONVERT UTF-32 to UTF-16 */
333 D(0xb9b3, CU42, RRF_c, ETF3, 0, 0, 0, 0, cuXX, 0, 42)
334
891452e5
RH
335/* DIVIDE */
336 C(0x1d00, DR, RR_a, Z, r1_D32, r2_32s, new_P, r1_P32, divs32, 0)
337 C(0x5d00, D, RX_a, Z, r1_D32, m2_32s, new_P, r1_P32, divs32, 0)
ca5f31a0 338 F(0xb30d, DEBR, RRE, Z, e1, e2, new, e1, deb, 0, IF_BFP)
80a7b759
DH
339 F(0xb31d, DDBR, RRE, Z, f1, f2, new, f1, ddb, 0, IF_BFP)
340 F(0xb34d, DXBR, RRE, Z, x2h, x2l, x1, x1, dxb, 0, IF_BFP)
ca5f31a0 341 F(0xed0d, DEB, RXE, Z, e1, m2_32u, new, e1, deb, 0, IF_BFP)
80a7b759 342 F(0xed1d, DDB, RXE, Z, f1, m2_64, new, f1, ddb, 0, IF_BFP)
891452e5
RH
343/* DIVIDE LOGICAL */
344 C(0xb997, DLR, RRE, Z, r1_D32, r2_32u, new_P, r1_P32, divu32, 0)
345 C(0xe397, DL, RXY_a, Z, r1_D32, m2_32u, new_P, r1_P32, divu32, 0)
346 C(0xb987, DLGR, RRE, Z, 0, r2_o, r1_P, 0, divu64, 0)
347 C(0xe387, DLG, RXY_a, Z, 0, m2_64, r1_P, 0, divu64, 0)
348/* DIVIDE SINGLE */
349 C(0xb90d, DSGR, RRE, Z, r1p1, r2, r1_P, 0, divs64, 0)
350 C(0xb91d, DSGFR, RRE, Z, r1p1, r2_32s, r1_P, 0, divs64, 0)
351 C(0xe30d, DSG, RXY_a, Z, r1p1, m2_64, r1_P, 0, divs64, 0)
352 C(0xe31d, DSGF, RXY_a, Z, r1p1, m2_32s, r1_P, 0, divs64, 0)
353
3bbfbd1f
RH
354/* EXCLUSIVE OR */
355 C(0x1700, XR, RR_a, Z, r1, r2, new, r1_32, xor, nz32)
356 C(0xb9f7, XRK, RRF_a, DO, r2, r3, new, r1_32, xor, nz32)
357 C(0x5700, X, RX_a, Z, r1, m2_32s, new, r1_32, xor, nz32)
358 C(0xe357, XY, RXY_a, LD, r1, m2_32s, new, r1_32, xor, nz32)
359 C(0xb982, XGR, RRE, Z, r1, r2, r1, 0, xor, nz64)
360 C(0xb9e7, XGRK, RRF_a, DO, r2, r3, r1, 0, xor, nz64)
361 C(0xe382, XG, RXY_a, Z, r1, m2_64, r1, 0, xor, nz64)
d074ac6d 362 C(0xd700, XC, SS_a, Z, 0, 0, 0, 0, xc, 0)
facfc864
RH
363/* EXCLUSIVE OR IMMEDIATE */
364 D(0xc006, XIHF, RIL_a, EI, r1_o, i2_32u, r1, 0, xori, 0, 0x2020)
365 D(0xc007, XILF, RIL_a, EI, r1_o, i2_32u, r1, 0, xori, 0, 0x2000)
f400be18
DH
366 D(0x9700, XI, SI, Z, la1, i2_8u, new, 0, xi, nz64, MO_UB)
367 D(0xeb57, XIY, SIY, LD, la1, i2_8u, new, 0, xi, nz64, MO_UB)
facfc864 368
6e764e97 369/* EXECUTE */
a72da8b7 370 C(0x4400, EX, RX_a, Z, 0, a2, 0, 0, ex, 0)
6e764e97 371/* EXECUTE RELATIVE LONG */
a72da8b7 372 C(0xc600, EXRL, RIL_b, EE, 0, ri2, 0, 0, ex, 0)
6e764e97 373
d62a4c97
RH
374/* EXTRACT ACCESS */
375 C(0xb24f, EAR, RRE, Z, 0, 0, new, r1_32, ear, 0)
0774710f
RH
376/* EXTRACT CPU ATTRIBUTE */
377 C(0xeb4c, ECAG, RSY_a, GIE, 0, a2, r1, 0, ecag, 0)
4bac52f5
DH
378/* EXTRACT CPU TIME */
379 C(0xc801, ECTG, SSF, ECT, 0, 0, 0, 0, ectg, 0)
ea20490f 380/* EXTRACT FPC */
ca5f31a0 381 F(0xb38c, EFPC, RRE, Z, 0, 0, new, r1_32, efpc, 0, IF_BFP)
e30a9d3f
RH
382/* EXTRACT PSW */
383 C(0xb98d, EPSW, RRE, Z, 0, 0, 0, 0, epsw, 0)
ea20490f 384
102bf2c6
RH
385/* FIND LEFTMOST ONE */
386 C(0xb983, FLOGR, RRE, EI, 0, r2_o, r1_P, 0, flogr, 0)
387
afdc70be
RH
388/* INSERT CHARACTER */
389 C(0x4300, IC, RX_a, Z, 0, m2_8u, 0, r1_8, mov2, 0)
390 C(0xe373, ICY, RXY_a, LD, 0, m2_8u, 0, r1_8, mov2, 0)
58a9e35b
RH
391/* INSERT CHARACTERS UNDER MASK */
392 D(0xbf00, ICM, RS_b, Z, 0, a2, r1, 0, icm, 0, 0)
393 D(0xeb81, ICMY, RSY_b, LD, 0, a2, r1, 0, icm, 0, 0)
394 D(0xeb80, ICMH, RSY_b, Z, 0, a2, r1, 0, icm, 0, 32)
facfc864
RH
395/* INSERT IMMEDIATE */
396 D(0xc008, IIHF, RIL_a, EI, r1_o, i2_32u, r1, 0, insi, 0, 0x2020)
397 D(0xc009, IILF, RIL_a, EI, r1_o, i2_32u, r1, 0, insi, 0, 0x2000)
398 D(0xa500, IIHH, RI_a, Z, r1_o, i2_16u, r1, 0, insi, 0, 0x1030)
399 D(0xa501, IIHL, RI_a, Z, r1_o, i2_16u, r1, 0, insi, 0, 0x1020)
400 D(0xa502, IILH, RI_a, Z, r1_o, i2_16u, r1, 0, insi, 0, 0x1010)
401 D(0xa503, IILL, RI_a, Z, r1_o, i2_16u, r1, 0, insi, 0, 0x1000)
6e2704e7
RH
402/* INSERT PROGRAM MASK */
403 C(0xb222, IPM, RRE, Z, 0, 0, r1, 0, ipm, 0)
3bbfbd1f 404
22c37a08
RH
405/* LOAD */
406 C(0x1800, LR, RR_a, Z, 0, r2_o, 0, cond_r1r2_32, mov2, 0)
407 C(0x5800, L, RX_a, Z, 0, a2, new, r1_32, ld32s, 0)
92892330 408 C(0xe358, LY, RXY_a, LD, 0, a2, new, r1_32, ld32s, 0)
22c37a08
RH
409 C(0xb904, LGR, RRE, Z, 0, r2_o, 0, r1, mov2, 0)
410 C(0xb914, LGFR, RRE, Z, 0, r2_32s, 0, r1, mov2, 0)
411 C(0xe304, LG, RXY_a, Z, 0, a2, r1, 0, ld64, 0)
412 C(0xe314, LGF, RXY_a, Z, 0, a2, r1, 0, ld32s, 0)
80a7b759 413 F(0x2800, LDR, RR_a, Z, 0, f2, 0, f1, mov2, 0, IF_AFP1 | IF_AFP2)
ca5f31a0
DH
414 F(0x6800, LD, RX_a, Z, 0, m2_64, 0, f1, mov2, 0, IF_AFP1)
415 F(0xed65, LDY, RXY_a, LD, 0, m2_64, 0, f1, mov2, 0, IF_AFP1)
416 F(0x3800, LER, RR_a, Z, 0, e2, 0, cond_e1e2, mov2, 0, IF_AFP1 | IF_AFP2)
417 F(0x7800, LE, RX_a, Z, 0, m2_32u, 0, e1, mov2, 0, IF_AFP1)
418 F(0xed64, LEY, RXY_a, LD, 0, m2_32u, 0, e1, mov2, 0, IF_AFP1)
80a7b759 419 F(0xb365, LXR, RRE, Z, x2h, x2l, 0, x1, movx, 0, IF_AFP1)
22c37a08
RH
420/* LOAD IMMEDIATE */
421 C(0xc001, LGFI, RIL_a, EI, 0, i2, 0, r1, mov2, 0)
422/* LOAD RELATIVE LONG */
423 C(0xc40d, LRL, RIL_b, GIE, 0, ri2, new, r1_32, ld32s, 0)
424 C(0xc408, LGRL, RIL_b, GIE, 0, ri2, r1, 0, ld64, 0)
425 C(0xc40c, LGFRL, RIL_b, GIE, 0, ri2, r1, 0, ld32s, 0)
aedec19d
RH
426/* LOAD ADDRESS */
427 C(0x4100, LA, RX_a, Z, 0, a2, 0, r1, mov2, 0)
428 C(0xe371, LAY, RXY_a, LD, 0, a2, 0, r1, mov2, 0)
a1c7610a
AJ
429/* LOAD ADDRESS EXTENDED */
430 C(0x5100, LAE, RX_a, Z, 0, a2, 0, r1, mov2e, 0)
431 C(0xe375, LAEY, RXY_a, GIE, 0, a2, 0, r1, mov2e, 0)
aedec19d
RH
432/* LOAD ADDRESS RELATIVE LONG */
433 C(0xc000, LARL, RIL_b, Z, 0, ri2, 0, r1, mov2, 0)
57af7289 434/* LOAD AND ADD */
4dba4d6f
RH
435 D(0xebf8, LAA, RSY_a, ILA, r3_32s, a2, new, in2_r1_32, laa, adds32, MO_TESL)
436 D(0xebe8, LAAG, RSY_a, ILA, r3, a2, new, in2_r1, laa, adds64, MO_TEQ)
57af7289 437/* LOAD AND ADD LOGICAL */
4dba4d6f
RH
438 D(0xebfa, LAAL, RSY_a, ILA, r3_32u, a2, new, in2_r1_32, laa, addu32, MO_TEUL)
439 D(0xebea, LAALG, RSY_a, ILA, r3, a2, new, in2_r1, laa, addu64, MO_TEQ)
57af7289 440/* LOAD AND AND */
4dba4d6f
RH
441 D(0xebf4, LAN, RSY_a, ILA, r3_32s, a2, new, in2_r1_32, lan, nz32, MO_TESL)
442 D(0xebe4, LANG, RSY_a, ILA, r3, a2, new, in2_r1, lan, nz64, MO_TEQ)
57af7289 443/* LOAD AND EXCLUSIVE OR */
4dba4d6f
RH
444 D(0xebf7, LAX, RSY_a, ILA, r3_32s, a2, new, in2_r1_32, lax, nz32, MO_TESL)
445 D(0xebe7, LAXG, RSY_a, ILA, r3, a2, new, in2_r1, lax, nz64, MO_TEQ)
57af7289 446/* LOAD AND OR */
4dba4d6f
RH
447 D(0xebf6, LAO, RSY_a, ILA, r3_32s, a2, new, in2_r1_32, lao, nz32, MO_TESL)
448 D(0xebe6, LAOG, RSY_a, ILA, r3, a2, new, in2_r1, lao, nz64, MO_TEQ)
11bf2d73
RH
449/* LOAD AND TEST */
450 C(0x1200, LTR, RR_a, Z, 0, r2_o, 0, cond_r1r2_32, mov2, s32)
451 C(0xb902, LTGR, RRE, Z, 0, r2_o, 0, r1, mov2, s64)
452 C(0xb912, LTGFR, RRE, Z, 0, r2_32s, 0, r1, mov2, s64)
453 C(0xe312, LT, RXY_a, EI, 0, a2, new, r1_32, ld32s, s64)
454 C(0xe302, LTG, RXY_a, EI, 0, a2, r1, 0, ld64, s64)
455 C(0xe332, LTGF, RXY_a, GIE, 0, a2, r1, 0, ld32s, s64)
ca5f31a0 456 F(0xb302, LTEBR, RRE, Z, 0, e2, 0, cond_e1e2, mov2, f32, IF_BFP)
80a7b759
DH
457 F(0xb312, LTDBR, RRE, Z, 0, f2, 0, f1, mov2, f64, IF_BFP)
458 F(0xb342, LTXBR, RRE, Z, x2h, x2l, 0, x1, movx, f128, IF_BFP)
782a8479
AJ
459/* LOAD AND TRAP */
460 C(0xe39f, LAT, RXY_a, LAT, 0, m2_32u, r1, 0, lat, 0)
461 C(0xe385, LGAT, RXY_a, LAT, 0, a2, r1, 0, lgat, 0)
c2a5c1d7
RH
462/* LOAD AND ZERO RIGHTMOST BYTE */
463 C(0xe3eb, LZRF, RXY_a, LZRB, 0, m2_32u, new, r1_32, lzrb, 0)
464 C(0xe32a, LZRG, RXY_a, LZRB, 0, m2_64, r1, 0, lzrb, 0)
465/* LOAD LOGICAL AND ZERO RIGHTMOST BYTE */
466 C(0xe33a, LLZRGF, RXY_a, LZRB, 0, m2_32u, r1, 0, lzrb, 0)
c698d876
RH
467/* LOAD BYTE */
468 C(0xb926, LBR, RRE, EI, 0, r2_8s, 0, r1_32, mov2, 0)
469 C(0xb906, LGBR, RRE, EI, 0, r2_8s, 0, r1, mov2, 0)
470 C(0xe376, LB, RXY_a, LD, 0, a2, new, r1_32, ld8s, 0)
471 C(0xe377, LGB, RXY_a, LD, 0, a2, r1, 0, ld8s, 0)
a1f12d85
AJ
472/* LOAD BYTE HIGH */
473 C(0xe3c0, LBH, RXY_a, HW, 0, a2, new, r1_32h, ld8s, 0)
b9bca3e5
RH
474/* LOAD COMPLEMENT */
475 C(0x1300, LCR, RR_a, Z, 0, r2, new, r1_32, neg, neg32)
476 C(0xb903, LCGR, RRE, Z, 0, r2, r1, 0, neg, neg64)
477 C(0xb913, LCGFR, RRE, Z, 0, r2_32s, r1, 0, neg, neg64)
ca5f31a0 478 F(0xb303, LCEBR, RRE, Z, 0, e2, new, e1, negf32, f32, IF_BFP)
80a7b759
DH
479 F(0xb313, LCDBR, RRE, Z, 0, f2, new, f1, negf64, f64, IF_BFP)
480 F(0xb343, LCXBR, RRE, Z, x2h, x2l, new_P, x1, negf128, f128, IF_BFP)
481 F(0xb373, LCDFR, RRE, FPSSH, 0, f2, new, f1, negf64, 0, IF_AFP1 | IF_AFP2)
6d930332
DH
482/* LOAD COUNT TO BLOCK BOUNDARY */
483 C(0xe727, LCBB, RXE, V, la2, 0, r1, 0, lcbb, 0)
c698d876
RH
484/* LOAD HALFWORD */
485 C(0xb927, LHR, RRE, EI, 0, r2_16s, 0, r1_32, mov2, 0)
486 C(0xb907, LGHR, RRE, EI, 0, r2_16s, 0, r1, mov2, 0)
487 C(0x4800, LH, RX_a, Z, 0, a2, new, r1_32, ld16s, 0)
488 C(0xe378, LHY, RXY_a, LD, 0, a2, new, r1_32, ld16s, 0)
489 C(0xe315, LGH, RXY_a, Z, 0, a2, r1, 0, ld16s, 0)
a1f12d85
AJ
490/* LOAD HALFWORD HIGH */
491 C(0xe3c4, LHH, RXY_a, HW, 0, a2, new, r1_32h, ld16s, 0)
c698d876
RH
492/* LOAD HALFWORD IMMEDIATE */
493 C(0xa708, LHI, RI_a, Z, 0, i2, 0, r1_32, mov2, 0)
494 C(0xa709, LGHI, RI_a, Z, 0, i2, 0, r1, mov2, 0)
495/* LOAD HALFWORD RELATIVE LONG */
496 C(0xc405, LHRL, RIL_b, GIE, 0, ri2, new, r1_32, ld16s, 0)
497 C(0xc404, LGHRL, RIL_b, GIE, 0, ri2, r1, 0, ld16s, 0)
a1f12d85
AJ
498/* LOAD HIGH */
499 C(0xe3ca, LFH, RXY_a, HW, 0, a2, new, r1_32h, ld32u, 0)
782a8479
AJ
500/* LOAG HIGH AND TRAP */
501 C(0xe3c8, LFHAT, RXY_a, LAT, 0, m2_32u, r1, 0, lfhat, 0)
22c37a08
RH
502/* LOAD LOGICAL */
503 C(0xb916, LLGFR, RRE, Z, 0, r2_32u, 0, r1, mov2, 0)
504 C(0xe316, LLGF, RXY_a, Z, 0, a2, r1, 0, ld32u, 0)
782a8479
AJ
505/* LOAD LOGICAL AND TRAP */
506 C(0xe39d, LLGFAT, RXY_a, LAT, 0, a2, r1, 0, llgfat, 0)
22c37a08
RH
507/* LOAD LOGICAL RELATIVE LONG */
508 C(0xc40e, LLGFRL, RIL_b, GIE, 0, ri2, r1, 0, ld32u, 0)
c698d876
RH
509/* LOAD LOGICAL CHARACTER */
510 C(0xb994, LLCR, RRE, EI, 0, r2_8u, 0, r1_32, mov2, 0)
511 C(0xb984, LLGCR, RRE, EI, 0, r2_8u, 0, r1, mov2, 0)
512 C(0xe394, LLC, RXY_a, EI, 0, a2, new, r1_32, ld8u, 0)
513 C(0xe390, LLGC, RXY_a, Z, 0, a2, r1, 0, ld8u, 0)
a1f12d85
AJ
514/* LOAD LOGICAL CHARACTER HIGH */
515 C(0xe3c2, LLCH, RXY_a, HW, 0, a2, new, r1_32h, ld8u, 0)
c698d876
RH
516/* LOAD LOGICAL HALFWORD */
517 C(0xb995, LLHR, RRE, EI, 0, r2_16u, 0, r1_32, mov2, 0)
518 C(0xb985, LLGHR, RRE, EI, 0, r2_16u, 0, r1, mov2, 0)
519 C(0xe395, LLH, RXY_a, EI, 0, a2, new, r1_32, ld16u, 0)
520 C(0xe391, LLGH, RXY_a, Z, 0, a2, r1, 0, ld16u, 0)
a1f12d85
AJ
521/* LOAD LOGICAL HALFWORD HIGH */
522 C(0xe3c6, LLHH, RXY_a, HW, 0, a2, new, r1_32h, ld16u, 0)
c698d876
RH
523/* LOAD LOGICAL HALFWORD RELATIVE LONG */
524 C(0xc402, LLHRL, RIL_b, GIE, 0, ri2, new, r1_32, ld16u, 0)
525 C(0xc406, LLGHRL, RIL_b, GIE, 0, ri2, r1, 0, ld16u, 0)
ade9dea4
RH
526/* LOAD LOGICAL IMMEDATE */
527 D(0xc00e, LLIHF, RIL_a, EI, 0, i2_32u_shl, 0, r1, mov2, 0, 32)
528 D(0xc00f, LLILF, RIL_a, EI, 0, i2_32u_shl, 0, r1, mov2, 0, 0)
529 D(0xa50c, LLIHH, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 48)
530 D(0xa50d, LLIHL, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 32)
531 D(0xa50e, LLILH, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 16)
532 D(0xa50f, LLILL, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 0)
7691c23b
RH
533/* LOAD LOGICAL THIRTY ONE BITS */
534 C(0xb917, LLGTR, RRE, Z, 0, r2_o, r1, 0, llgt, 0)
535 C(0xe317, LLGT, RXY_a, Z, 0, m2_32u, r1, 0, llgt, 0)
782a8479
AJ
536/* LOAD LOGICAL THIRTY ONE BITS AND TRAP */
537 C(0xe39c, LLGTAT, RXY_a, LAT, 0, m2_32u, r1, 0, llgtat, 0)
538
143cbbc5 539/* LOAD FPR FROM GR */
ca5f31a0 540 F(0xb3c1, LDGR, RRE, FPRGR, 0, r2_o, 0, f1, mov2, 0, IF_AFP1)
143cbbc5 541/* LOAD GR FROM FPR */
80a7b759 542 F(0xb3cd, LGDR, RRE, FPRGR, 0, f2, 0, r1, mov2, 0, IF_AFP2)
b9bca3e5
RH
543/* LOAD NEGATIVE */
544 C(0x1100, LNR, RR_a, Z, 0, r2_32s, new, r1_32, nabs, nabs32)
545 C(0xb901, LNGR, RRE, Z, 0, r2, r1, 0, nabs, nabs64)
546 C(0xb911, LNGFR, RRE, Z, 0, r2_32s, r1, 0, nabs, nabs64)
ca5f31a0 547 F(0xb301, LNEBR, RRE, Z, 0, e2, new, e1, nabsf32, f32, IF_BFP)
80a7b759
DH
548 F(0xb311, LNDBR, RRE, Z, 0, f2, new, f1, nabsf64, f64, IF_BFP)
549 F(0xb341, LNXBR, RRE, Z, x2h, x2l, new_P, x1, nabsf128, f128, IF_BFP)
550 F(0xb371, LNDFR, RRE, FPSSH, 0, f2, new, f1, nabsf64, 0, IF_AFP1 | IF_AFP2)
632086da
RH
551/* LOAD ON CONDITION */
552 C(0xb9f2, LOCR, RRF_c, LOC, r1, r2, new, r1_32, loc, 0)
553 C(0xb9e2, LOCGR, RRF_c, LOC, r1, r2, r1, 0, loc, 0)
554 C(0xebf2, LOC, RSY_b, LOC, r1, m2_32u, new, r1_32, loc, 0)
555 C(0xebe2, LOCG, RSY_b, LOC, r1, m2_64, r1, 0, loc, 0)
45aa9aa3
RH
556/* LOAD HALFWORD IMMEDIATE ON CONDITION */
557 C(0xec42, LOCHI, RIE_g, LOC2, r1, i2, new, r1_32, loc, 0)
558 C(0xec46, LOCGHI, RIE_g, LOC2, r1, i2, r1, 0, loc, 0)
559 C(0xec4e, LOCHHI, RIE_g, LOC2, r1_sr32, i2, new, r1_32h, loc, 0)
560/* LOAD HIGH ON CONDITION */
561 C(0xb9e0, LOCFHR, RRF_c, LOC2, r1_sr32, r2, new, r1_32h, loc, 0)
562 C(0xebe0, LOCFH, RSY_b, LOC2, r1_sr32, m2_32u, new, r1_32h, loc, 0)
1807aaa5
EB
563/* LOAD PAIR DISJOINT */
564 D(0xc804, LPD, SSF, ILA, 0, 0, new_P, r3_P32, lpd, 0, MO_TEUL)
565 D(0xc805, LPDG, SSF, ILA, 0, 0, new_P, r3_P64, lpd, 0, MO_TEQ)
e22dfdb2
AJ
566/* LOAD PAIR FROM QUADWORD */
567 C(0xe38f, LPQ, RXY_a, Z, 0, a2, r1_P, 0, lpq, 0)
b9bca3e5
RH
568/* LOAD POSITIVE */
569 C(0x1000, LPR, RR_a, Z, 0, r2_32s, new, r1_32, abs, abs32)
570 C(0xb900, LPGR, RRE, Z, 0, r2, r1, 0, abs, abs64)
571 C(0xb910, LPGFR, RRE, Z, 0, r2_32s, r1, 0, abs, abs64)
ca5f31a0 572 F(0xb300, LPEBR, RRE, Z, 0, e2, new, e1, absf32, f32, IF_BFP)
80a7b759
DH
573 F(0xb310, LPDBR, RRE, Z, 0, f2, new, f1, absf64, f64, IF_BFP)
574 F(0xb340, LPXBR, RRE, Z, x2h, x2l, new_P, x1, absf128, f128, IF_BFP)
575 F(0xb370, LPDFR, RRE, FPSSH, 0, f2, new, f1, absf64, 0, IF_AFP1 | IF_AFP2)
d54f5865
RH
576/* LOAD REVERSED */
577 C(0xb91f, LRVR, RRE, Z, 0, r2_32u, new, r1_32, rev32, 0)
578 C(0xb90f, LRVGR, RRE, Z, 0, r2_o, r1, 0, rev64, 0)
579 C(0xe31f, LRVH, RXY_a, Z, 0, m2_16u, new, r1_16, rev16, 0)
580 C(0xe31e, LRV, RXY_a, Z, 0, m2_32u, new, r1_32, rev32, 0)
581 C(0xe30f, LRVG, RXY_a, Z, 0, m2_64, r1, 0, rev64, 0)
24db8412 582/* LOAD ZERO */
ca5f31a0
DH
583 F(0xb374, LZER, RRE, Z, 0, 0, 0, e1, zero, 0, IF_AFP1)
584 F(0xb375, LZDR, RRE, Z, 0, 0, 0, f1, zero, 0, IF_AFP1)
585 F(0xb376, LZXR, RRE, Z, 0, 0, 0, x1, zero2, 0, IF_AFP1)
22c37a08 586
8379bfdb 587/* LOAD FPC */
ca5f31a0 588 F(0xb29d, LFPC, S, Z, 0, m2_32u, 0, 0, sfpc, 0, IF_BFP)
411edc22 589/* LOAD FPC AND SIGNAL */
ca5f31a0 590 F(0xb2bd, LFAS, S, IEEEE_SIM, 0, m2_32u, 0, 0, sfas, 0, IF_DFP)
ed0bcece 591/* LOAD FP INTEGER */
ca5f31a0 592 F(0xb357, FIEBR, RRF_e, Z, 0, e2, new, e1, fieb, 0, IF_BFP)
80a7b759
DH
593 F(0xb35f, FIDBR, RRF_e, Z, 0, f2, new, f1, fidb, 0, IF_BFP)
594 F(0xb347, FIXBR, RRF_e, Z, x2h, x2l, new_P, x1, fixb, 0, IF_BFP)
8379bfdb 595
587626f8 596/* LOAD LENGTHENED */
80a7b759
DH
597 F(0xb304, LDEBR, RRE, Z, 0, e2, new, f1, ldeb, 0, IF_BFP)
598 F(0xb305, LXDBR, RRE, Z, 0, f2, new_P, x1, lxdb, 0, IF_BFP)
599 F(0xb306, LXEBR, RRE, Z, 0, e2, new_P, x1, lxeb, 0, IF_BFP)
600 F(0xed04, LDEB, RXE, Z, 0, m2_32u, new, f1, ldeb, 0, IF_BFP)
601 F(0xed05, LXDB, RXE, Z, 0, m2_64, new_P, x1, lxdb, 0, IF_BFP)
602 F(0xed06, LXEB, RXE, Z, 0, m2_32u, new_P, x1, lxeb, 0, IF_BFP)
86b59624
DH
603 F(0xb324, LDER, RXE, Z, 0, e2, new, f1, lde, 0, IF_AFP1)
604 F(0xed24, LDE, RXE, Z, 0, m2_32u, new, f1, lde, 0, IF_AFP1)
587626f8 605/* LOAD ROUNDED */
bdcfcd44
DH
606 F(0xb344, LEDBR, RRF_e, Z, 0, f2, new, e1, ledb, 0, IF_BFP)
607 F(0xb345, LDXBR, RRF_e, Z, x2h, x2l, new, f1, ldxb, 0, IF_BFP)
608 F(0xb346, LEXBR, RRF_e, Z, x2h, x2l, new, e1, lexb, 0, IF_BFP)
587626f8 609
77f8d6c3
RH
610/* LOAD MULTIPLE */
611 C(0x9800, LM, RS_a, Z, 0, a2, 0, 0, lm32, 0)
612 C(0xeb98, LMY, RSY_a, LD, 0, a2, 0, 0, lm32, 0)
613 C(0xeb04, LMG, RSY_a, Z, 0, a2, 0, 0, lm64, 0)
614/* LOAD MULTIPLE HIGH */
615 C(0xeb96, LMH, RSY_a, Z, 0, a2, 0, 0, lmh, 0)
7df3e93a
RH
616/* LOAD ACCESS MULTIPLE */
617 C(0x9a00, LAM, RS_a, Z, 0, a2, 0, 0, lam, 0)
618 C(0xeb9a, LAMY, RSY_a, LD, 0, a2, 0, 0, lam, 0)
77f8d6c3 619
6a04d76a 620/* MOVE */
af9e5a04 621 C(0xd200, MVC, SS_a, Z, la1, a2, 0, 0, mvc, 0)
6a04d76a
RH
622 C(0xe544, MVHHI, SIL, GIE, la1, i2, 0, m1_16, mov2, 0)
623 C(0xe54c, MVHI, SIL, GIE, la1, i2, 0, m1_32, mov2, 0)
624 C(0xe548, MVGHI, SIL, GIE, la1, i2, 0, m1_64, mov2, 0)
625 C(0x9200, MVI, SI, Z, la1, i2, 0, m1_8, mov2, 0)
626 C(0xeb52, MVIY, SIY, LD, la1, i2, 0, m1_8, mov2, 0)
6c9deca8
AJ
627/* MOVE INVERSE */
628 C(0xe800, MVCIN, SS_a, Z, la1, a2, 0, 0, mvcin, 0)
e1eaada9
RH
629/* MOVE LONG */
630 C(0x0e00, MVCL, RR_a, Z, 0, 0, 0, 0, mvcl, 0)
eb66e6a9
RH
631/* MOVE LONG EXTENDED */
632 C(0xa800, MVCLE, RS_a, Z, 0, a2, 0, 0, mvcle, 0)
16f2e4b8
AJ
633/* MOVE LONG UNICODE */
634 C(0xeb8e, MVCLU, RSY_a, E2, 0, a2, 0, 0, mvclu, 0)
256dab6f
AJ
635/* MOVE NUMERICS */
636 C(0xd100, MVN, SS_a, Z, la1, a2, 0, 0, mvn, 0)
ee6c38d5
RH
637/* MOVE PAGE */
638 C(0xb254, MVPG, RRE, Z, r1_o, r2_o, 0, 0, mvpg, 0)
aa31bf60
RH
639/* MOVE STRING */
640 C(0xb255, MVST, RRE, Z, r1_o, r2_o, 0, 0, mvst, 0)
3e7e5e0b
DH
641/* MOVE WITH OPTIONAL SPECIFICATION */
642 C(0xc800, MVCOS, SSF, MVCOS, la1, a2, 0, 0, mvcos, 0)
fdc0a747
AJ
643/* MOVE WITH OFFSET */
644 /* Really format SS_b, but we pack both lengths into one argument
645 for the helper call, so we might as well leave one 8-bit field. */
646 C(0xf100, MVO, SS_a, Z, la1, a2, 0, 0, mvo, 0)
01f8db88
AJ
647/* MOVE ZONES */
648 C(0xd300, MVZ, SS_a, Z, la1, a2, 0, 0, mvz, 0)
e1eaada9 649
d87aaf93
RH
650/* MULTIPLY */
651 C(0x1c00, MR, RR_a, Z, r1p1_32s, r2_32s, new, r1_D32, mul, 0)
652 C(0x5c00, M, RX_a, Z, r1p1_32s, m2_32s, new, r1_D32, mul, 0)
653 C(0xe35c, MFY, RXY_a, GIE, r1p1_32s, m2_32s, new, r1_D32, mul, 0)
ca5f31a0 654 F(0xb317, MEEBR, RRE, Z, e1, e2, new, e1, meeb, 0, IF_BFP)
80a7b759
DH
655 F(0xb31c, MDBR, RRE, Z, f1, f2, new, f1, mdb, 0, IF_BFP)
656 F(0xb34c, MXBR, RRE, Z, x2h, x2l, x1, x1, mxb, 0, IF_BFP)
657 F(0xb30c, MDEBR, RRE, Z, f1, e2, new, f1, mdeb, 0, IF_BFP)
658 F(0xb307, MXDBR, RRE, Z, 0, f2, x1, x1, mxdb, 0, IF_BFP)
ca5f31a0 659 F(0xed17, MEEB, RXE, Z, e1, m2_32u, new, e1, meeb, 0, IF_BFP)
80a7b759
DH
660 F(0xed1c, MDB, RXE, Z, f1, m2_64, new, f1, mdb, 0, IF_BFP)
661 F(0xed0c, MDEB, RXE, Z, f1, m2_32u, new, f1, mdeb, 0, IF_BFP)
662 F(0xed07, MXDB, RXE, Z, 0, m2_64, x1, x1, mxdb, 0, IF_BFP)
d1c04a2b
RH
663/* MULTIPLY HALFWORD */
664 C(0x4c00, MH, RX_a, Z, r1_o, m2_16s, new, r1_32, mul, 0)
665 C(0xe37c, MHY, RXY_a, GIE, r1_o, m2_16s, new, r1_32, mul, 0)
666/* MULTIPLY HALFWORD IMMEDIATE */
667 C(0xa70c, MHI, RI_a, Z, r1_o, i2, new, r1_32, mul, 0)
668 C(0xa70d, MGHI, RI_a, Z, r1_o, i2, r1, 0, mul, 0)
d87aaf93
RH
669/* MULTIPLY LOGICAL */
670 C(0xb996, MLR, RRE, Z, r1p1_32u, r2_32u, new, r1_D32, mul, 0)
671 C(0xe396, ML, RXY_a, Z, r1p1_32u, m2_32u, new, r1_D32, mul, 0)
1ac5889f
RH
672 C(0xb986, MLGR, RRE, Z, r1p1, r2_o, r1_P, 0, mul128, 0)
673 C(0xe386, MLG, RXY_a, Z, r1p1, m2_64, r1_P, 0, mul128, 0)
d1c04a2b
RH
674/* MULTIPLY SINGLE */
675 C(0xb252, MSR, RRE, Z, r1_o, r2_o, new, r1_32, mul, 0)
676 C(0x7100, MS, RX_a, Z, r1_o, m2_32s, new, r1_32, mul, 0)
677 C(0xe351, MSY, RXY_a, LD, r1_o, m2_32s, new, r1_32, mul, 0)
678 C(0xb90c, MSGR, RRE, Z, r1_o, r2_o, r1, 0, mul, 0)
679 C(0xb91c, MSGFR, RRE, Z, r1_o, r2_32s, r1, 0, mul, 0)
680 C(0xe30c, MSG, RXY_a, Z, r1_o, m2_64, r1, 0, mul, 0)
681 C(0xe31c, MSGF, RXY_a, Z, r1_o, m2_32s, r1, 0, mul, 0)
682/* MULTIPLY SINGLE IMMEDIATE */
683 C(0xc201, MSFI, RIL_a, GIE, r1_o, i2, new, r1_32, mul, 0)
684 C(0xc200, MSGFI, RIL_a, GIE, r1_o, i2, r1, 0, mul, 0)
685
722bfec3 686/* MULTIPLY AND ADD */
ca5f31a0 687 F(0xb30e, MAEBR, RRD, Z, e1, e2, new, e1, maeb, 0, IF_BFP)
80a7b759 688 F(0xb31e, MADBR, RRD, Z, f1, f2, new, f1, madb, 0, IF_BFP)
ca5f31a0 689 F(0xed0e, MAEB, RXF, Z, e1, m2_32u, new, e1, maeb, 0, IF_BFP)
80a7b759 690 F(0xed1e, MADB, RXF, Z, f1, m2_64, new, f1, madb, 0, IF_BFP)
722bfec3 691/* MULTIPLY AND SUBTRACT */
ca5f31a0 692 F(0xb30f, MSEBR, RRD, Z, e1, e2, new, e1, mseb, 0, IF_BFP)
80a7b759 693 F(0xb31f, MSDBR, RRD, Z, f1, f2, new, f1, msdb, 0, IF_BFP)
ca5f31a0 694 F(0xed0f, MSEB, RXF, Z, e1, m2_32u, new, e1, mseb, 0, IF_BFP)
80a7b759 695 F(0xed1f, MSDB, RXF, Z, f1, m2_64, new, f1, msdb, 0, IF_BFP)
722bfec3 696
3bbfbd1f
RH
697/* OR */
698 C(0x1600, OR, RR_a, Z, r1, r2, new, r1_32, or, nz32)
699 C(0xb9f6, ORK, RRF_a, DO, r2, r3, new, r1_32, or, nz32)
700 C(0x5600, O, RX_a, Z, r1, m2_32s, new, r1_32, or, nz32)
701 C(0xe356, OY, RXY_a, LD, r1, m2_32s, new, r1_32, or, nz32)
702 C(0xb981, OGR, RRE, Z, r1, r2, r1, 0, or, nz64)
703 C(0xb9e6, OGRK, RRF_a, DO, r2, r3, r1, 0, or, nz64)
704 C(0xe381, OG, RXY_a, Z, r1, m2_64, r1, 0, or, nz64)
0a949039 705 C(0xd600, OC, SS_a, Z, la1, a2, 0, 0, oc, 0)
facfc864
RH
706/* OR IMMEDIATE */
707 D(0xc00c, OIHF, RIL_a, EI, r1_o, i2_32u, r1, 0, ori, 0, 0x2020)
708 D(0xc00d, OILF, RIL_a, EI, r1_o, i2_32u, r1, 0, ori, 0, 0x2000)
709 D(0xa508, OIHH, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1030)
710 D(0xa509, OIHL, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1020)
711 D(0xa50a, OILH, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1010)
712 D(0xa50b, OILL, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1000)
f400be18
DH
713 D(0x9600, OI, SI, Z, la1, i2_8u, new, 0, oi, nz64, MO_UB)
714 D(0xeb56, OIY, SIY, LD, la1, i2_8u, new, 0, oi, nz64, MO_UB)
3bbfbd1f 715
76c57490
AJ
716/* PACK */
717 /* Really format SS_b, but we pack both lengths into one argument
718 for the helper call, so we might as well leave one 8-bit field. */
719 C(0xf200, PACK, SS_a, Z, la1, a2, 0, 0, pack, 0)
3bd3d6d3
AJ
720/* PACK ASCII */
721 C(0xe900, PKA, SS_f, E2, la1, a2, 0, 0, pka, 0)
4e256bef
AJ
722/* PACK UNICODE */
723 C(0xe100, PKU, SS_f, E2, la1, a2, 0, 0, pku, 0)
76c57490 724
e0def909
RH
725/* PREFETCH */
726 /* Implemented as nops of course. */
727 C(0xe336, PFD, RXY_b, GIE, 0, 0, 0, 0, 0, 0)
728 C(0xc602, PFDRL, RIL_c, GIE, 0, 0, 0, 0, 0, 0)
632c61a9
RH
729/* PERFORM PROCESSOR ASSIST */
730 /* Implemented as nop of course. */
731 C(0xb2e8, PPA, RRF_c, PPA, 0, 0, 0, 0, 0, 0)
e0def909 732
99b4f24b
RH
733/* POPULATION COUNT */
734 C(0xb9e1, POPCNT, RRE, PC, 0, r2_o, r1, 0, popcnt, nz64)
735
cbe24bfa
RH
736/* ROTATE LEFT SINGLE LOGICAL */
737 C(0xeb1d, RLL, RSY_a, Z, r3_o, sh32, new, r1_32, rll32, 0)
738 C(0xeb1c, RLLG, RSY_a, Z, r3_o, sh64, r1, 0, rll64, 0)
739
2d6a8698
RH
740/* ROTATE THEN INSERT SELECTED BITS */
741 C(0xec55, RISBG, RIE_f, GIE, 0, r2, r1, 0, risbg, s64)
375ee58b 742 C(0xec59, RISBGN, RIE_f, MIE, 0, r2, r1, 0, risbg, 0)
92892330
AJ
743 C(0xec5d, RISBHG, RIE_f, HW, 0, r2, r1, 0, risbg, 0)
744 C(0xec51, RISBLG, RIE_f, HW, 0, r2, r1, 0, risbg, 0)
d6c6372e
RH
745/* ROTATE_THEN <OP> SELECTED BITS */
746 C(0xec54, RNSBG, RIE_f, GIE, 0, r2, r1, 0, rosbg, 0)
747 C(0xec56, ROSBG, RIE_f, GIE, 0, r2, r1, 0, rosbg, 0)
748 C(0xec57, RXSBG, RIE_f, GIE, 0, r2, r1, 0, rosbg, 0)
2d6a8698 749
4600c994 750/* SEARCH STRING */
7591db78 751 C(0xb25e, SRST, RRE, Z, 0, 0, 0, 0, srst, 0)
be7acb58
RH
752/* SEARCH STRING UNICODE */
753 C(0xb9be, SRSTU, RRE, ETF3, 0, 0, 0, 0, srstu, 0)
4600c994 754
d62a4c97
RH
755/* SET ACCESS */
756 C(0xb24e, SAR, RRE, Z, 0, r2_o, 0, 0, sar, 0)
8612c935
RH
757/* SET ADDRESSING MODE */
758 D(0x010c, SAM24, E, Z, 0, 0, 0, 0, sam, 0, 0)
759 D(0x010d, SAM31, E, Z, 0, 0, 0, 0, sam, 0, 1)
760 D(0x010e, SAM64, E, Z, 0, 0, 0, 0, sam, 0, 3)
8379bfdb 761/* SET FPC */
ca5f31a0 762 F(0xb384, SFPC, RRE, Z, 0, r1_o, 0, 0, sfpc, 0, IF_BFP)
411edc22 763/* SET FPC AND SIGNAL */
ca5f31a0 764 F(0xb385, SFASR, RRE, IEEEE_SIM, 0, r1_o, 0, 0, sfas, 0, IF_DFP)
a12000b9 765/* SET BFP ROUNDING MODE */
b9c737f5
DH
766 F(0xb299, SRNM, S, Z, la2, 0, 0, 0, srnm, 0, IF_BFP)
767 F(0xb2b8, SRNMB, S, FPE, la2, 0, 0, 0, srnmb, 0, IF_BFP)
a12000b9 768/* SET DFP ROUNDING MODE */
b9c737f5 769 F(0xb2b9, SRNMT, S, DFPR, la2, 0, 0, 0, srnmt, 0, IF_DFP)
6b257354
DH
770/* SET PROGRAM MASK */
771 C(0x0400, SPM, RR_a, Z, r1, 0, 0, 0, spm, 0)
8379bfdb 772
cbe24bfa
RH
773/* SHIFT LEFT SINGLE */
774 D(0x8b00, SLA, RS_a, Z, r1, sh32, new, r1_32, sla, 0, 31)
775 D(0xebdd, SLAK, RSY_a, DO, r3, sh32, new, r1_32, sla, 0, 31)
776 D(0xeb0b, SLAG, RSY_a, Z, r3, sh64, r1, 0, sla, 0, 63)
777/* SHIFT LEFT SINGLE LOGICAL */
778 C(0x8900, SLL, RS_a, Z, r1_o, sh32, new, r1_32, sll, 0)
779 C(0xebdf, SLLK, RSY_a, DO, r3_o, sh32, new, r1_32, sll, 0)
780 C(0xeb0d, SLLG, RSY_a, Z, r3_o, sh64, r1, 0, sll, 0)
781/* SHIFT RIGHT SINGLE */
782 C(0x8a00, SRA, RS_a, Z, r1_32s, sh32, new, r1_32, sra, s32)
783 C(0xebdc, SRAK, RSY_a, DO, r3_32s, sh32, new, r1_32, sra, s32)
784 C(0xeb0a, SRAG, RSY_a, Z, r3_o, sh64, r1, 0, sra, s64)
785/* SHIFT RIGHT SINGLE LOGICAL */
786 C(0x8800, SRL, RS_a, Z, r1_32u, sh32, new, r1_32, srl, 0)
787 C(0xebde, SRLK, RSY_a, DO, r3_32u, sh32, new, r1_32, srl, 0)
788 C(0xeb0c, SRLG, RSY_a, Z, r3_o, sh64, r1, 0, srl, 0)
a79ba339
RH
789/* SHIFT LEFT DOUBLE */
790 D(0x8f00, SLDA, RS_a, Z, r1_D32, sh64, new, r1_D32, sla, 0, 31)
791/* SHIFT LEFT DOUBLE LOGICAL */
792 C(0x8d00, SLDL, RS_a, Z, r1_D32, sh64, new, r1_D32, sll, 0)
793/* SHIFT RIGHT DOUBLE */
794 C(0x8e00, SRDA, RS_a, Z, r1_D32, sh64, new, r1_D32, sra, s64)
795/* SHIFT RIGHT DOUBLE LOGICAL */
796 C(0x8c00, SRDL, RS_a, Z, r1_D32, sh64, new, r1_D32, srl, 0)
cbe24bfa 797
16d7b2a4 798/* SQUARE ROOT */
ca5f31a0 799 F(0xb314, SQEBR, RRE, Z, 0, e2, new, e1, sqeb, 0, IF_BFP)
80a7b759
DH
800 F(0xb315, SQDBR, RRE, Z, 0, f2, new, f1, sqdb, 0, IF_BFP)
801 F(0xb316, SQXBR, RRE, Z, x2h, x2l, new, x1, sqxb, 0, IF_BFP)
ca5f31a0 802 F(0xed14, SQEB, RXE, Z, 0, m2_32u, new, e1, sqeb, 0, IF_BFP)
80a7b759 803 F(0xed15, SQDB, RXE, Z, 0, m2_64, new, f1, sqdb, 0, IF_BFP)
16d7b2a4 804
2b280b97
RH
805/* STORE */
806 C(0x5000, ST, RX_a, Z, r1_o, a2, 0, 0, st32, 0)
807 C(0xe350, STY, RXY_a, LD, r1_o, a2, 0, 0, st32, 0)
808 C(0xe324, STG, RXY_a, Z, r1_o, a2, 0, 0, st64, 0)
80a7b759
DH
809 F(0x6000, STD, RX_a, Z, f1, a2, 0, 0, st64, 0, IF_AFP1)
810 F(0xed67, STDY, RXY_a, LD, f1, a2, 0, 0, st64, 0, IF_AFP1)
ca5f31a0
DH
811 F(0x7000, STE, RX_a, Z, e1, a2, 0, 0, st32, 0, IF_AFP1)
812 F(0xed66, STEY, RXY_a, LD, e1, a2, 0, 0, st32, 0, IF_AFP1)
2b280b97
RH
813/* STORE RELATIVE LONG */
814 C(0xc40f, STRL, RIL_b, GIE, r1_o, ri2, 0, 0, st32, 0)
815 C(0xc40b, STGRL, RIL_b, GIE, r1_o, ri2, 0, 0, st64, 0)
816/* STORE CHARACTER */
817 C(0x4200, STC, RX_a, Z, r1_o, a2, 0, 0, st8, 0)
818 C(0xe372, STCY, RXY_a, LD, r1_o, a2, 0, 0, st8, 0)
a1f12d85
AJ
819/* STORE CHARACTER HIGH */
820 C(0xe3c3, STCH, RXY_a, HW, r1_sr32, a2, 0, 0, st8, 0)
2ae68059
RH
821/* STORE CHARACTERS UNDER MASK */
822 D(0xbe00, STCM, RS_b, Z, r1_o, a2, 0, 0, stcm, 0, 0)
823 D(0xeb2d, STCMY, RSY_b, LD, r1_o, a2, 0, 0, stcm, 0, 0)
92892330 824 D(0xeb2c, STCMH, RSY_b, Z, r1_o, a2, 0, 0, stcm, 0, 32)
2b280b97
RH
825/* STORE HALFWORD */
826 C(0x4000, STH, RX_a, Z, r1_o, a2, 0, 0, st16, 0)
827 C(0xe370, STHY, RXY_a, LD, r1_o, a2, 0, 0, st16, 0)
a1f12d85
AJ
828/* STORE HALFWORD HIGH */
829 C(0xe3c7, STHH, RXY_a, HW, r1_sr32, a2, 0, 0, st16, 0)
2b280b97
RH
830/* STORE HALFWORD RELATIVE LONG */
831 C(0xc407, STHRL, RIL_b, GIE, r1_o, ri2, 0, 0, st16, 0)
a1f12d85
AJ
832/* STORE HIGH */
833 C(0xe3cb, STFH, RXY_a, HW, r1_sr32, a2, 0, 0, st32, 0)
b92fa334
RH
834/* STORE ON CONDITION */
835 D(0xebf3, STOC, RSY_b, LOC, 0, 0, 0, 0, soc, 0, 0)
836 D(0xebe3, STOCG, RSY_b, LOC, 0, 0, 0, 0, soc, 0, 1)
45aa9aa3
RH
837/* STORE HIGH ON CONDITION */
838 D(0xebe1, STOCFH, RSY_b, LOC2, 0, 0, 0, 0, soc, 0, 2)
e025e52a
RH
839/* STORE REVERSED */
840 C(0xe33f, STRVH, RXY_a, Z, la2, r1_16u, new, m1_16, rev16, 0)
841 C(0xe33e, STRV, RXY_a, Z, la2, r1_32u, new, m1_32, rev32, 0)
842 C(0xe32f, STRVG, RXY_a, Z, la2, r1_o, new, m1_64, rev64, 0)
2b280b97 843
965018be
RH
844/* STORE CLOCK */
845 C(0xb205, STCK, S, Z, la2, 0, new, m1_64, stck, 0)
846 C(0xb27c, STCKF, S, SCF, la2, 0, new, m1_64, stck, 0)
847/* STORE CLOCK EXTENDED */
848 C(0xb278, STCKE, S, Z, 0, a2, 0, 0, stcke, 0)
849
5bf83628
RH
850/* STORE FACILITY LIST EXTENDED */
851 C(0xb2b0, STFLE, S, SFLE, 0, a2, 0, 0, stfle, 0)
ea20490f 852/* STORE FPC */
ca5f31a0 853 F(0xb29c, STFPC, S, Z, 0, a2, new, m2_32, efpc, 0, IF_BFP)
ea20490f 854
77f8d6c3
RH
855/* STORE MULTIPLE */
856 D(0x9000, STM, RS_a, Z, 0, a2, 0, 0, stm, 0, 4)
857 D(0xeb90, STMY, RSY_a, LD, 0, a2, 0, 0, stm, 0, 4)
858 D(0xeb24, STMG, RSY_a, Z, 0, a2, 0, 0, stm, 0, 8)
859/* STORE MULTIPLE HIGH */
860 C(0xeb26, STMH, RSY_a, Z, 0, a2, 0, 0, stmh, 0)
7df3e93a
RH
861/* STORE ACCESS MULTIPLE */
862 C(0x9b00, STAM, RS_a, Z, 0, a2, 0, 0, stam, 0)
863 C(0xeb9b, STAMY, RSY_a, LD, 0, a2, 0, 0, stam, 0)
c21b610f
AJ
864/* STORE PAIR TO QUADWORD */
865 C(0xe38e, STPQ, RXY_a, Z, 0, a2, r1_P, 0, stpq, 0)
77f8d6c3 866
ad044d09
RH
867/* SUBTRACT */
868 C(0x1b00, SR, RR_a, Z, r1, r2, new, r1_32, sub, subs32)
869 C(0xb9f9, SRK, RRF_a, DO, r2, r3, new, r1_32, sub, subs32)
870 C(0x5b00, S, RX_a, Z, r1, m2_32s, new, r1_32, sub, subs32)
871 C(0xe35b, SY, RXY_a, LD, r1, m2_32s, new, r1_32, sub, subs32)
872 C(0xb909, SGR, RRE, Z, r1, r2, r1, 0, sub, subs64)
873 C(0xb919, SGFR, RRE, Z, r1, r2_32s, r1, 0, sub, subs64)
874 C(0xb9e9, SGRK, RRF_a, DO, r2, r3, r1, 0, sub, subs64)
875 C(0xe309, SG, RXY_a, Z, r1, m2_64, r1, 0, sub, subs64)
876 C(0xe319, SGF, RXY_a, Z, r1, m2_32s, r1, 0, sub, subs64)
ca5f31a0 877 F(0xb30b, SEBR, RRE, Z, e1, e2, new, e1, seb, f32, IF_BFP)
80a7b759
DH
878 F(0xb31b, SDBR, RRE, Z, f1, f2, new, f1, sdb, f64, IF_BFP)
879 F(0xb34b, SXBR, RRE, Z, x2h, x2l, x1, x1, sxb, f128, IF_BFP)
ca5f31a0 880 F(0xed0b, SEB, RXE, Z, e1, m2_32u, new, e1, seb, f32, IF_BFP)
80a7b759 881 F(0xed1b, SDB, RXE, Z, f1, m2_64, new, f1, sdb, f64, IF_BFP)
3f4cb56a
RH
882/* SUBTRACT HALFWORD */
883 C(0x4b00, SH, RX_a, Z, r1, m2_16s, new, r1_32, sub, subs32)
884 C(0xe37b, SHY, RXY_a, LD, r1, m2_16s, new, r1_32, sub, subs32)
a1f12d85
AJ
885/* SUBTRACT HIGH */
886 C(0xb9c9, SHHHR, RRF_a, HW, r2_sr32, r3_sr32, new, r1_32h, sub, subs32)
887 C(0xb9d9, SHHLR, RRF_a, HW, r2_sr32, r3, new, r1_32h, sub, subs32)
ad044d09
RH
888/* SUBTRACT LOGICAL */
889 C(0x1f00, SLR, RR_a, Z, r1, r2, new, r1_32, sub, subu32)
890 C(0xb9fb, SLRK, RRF_a, DO, r2, r3, new, r1_32, sub, subu32)
891 C(0x5f00, SL, RX_a, Z, r1, m2_32u, new, r1_32, sub, subu32)
892 C(0xe35f, SLY, RXY_a, LD, r1, m2_32u, new, r1_32, sub, subu32)
893 C(0xb90b, SLGR, RRE, Z, r1, r2, r1, 0, sub, subu64)
894 C(0xb91b, SLGFR, RRE, Z, r1, r2_32u, r1, 0, sub, subu64)
895 C(0xb9eb, SLGRK, RRF_a, DO, r2, r3, r1, 0, sub, subu64)
896 C(0xe30b, SLG, RXY_a, Z, r1, m2_64, r1, 0, sub, subu64)
897 C(0xe31b, SLGF, RXY_a, Z, r1, m2_32u, r1, 0, sub, subu64)
a1f12d85
AJ
898/* SUBTRACT LOCICAL HIGH */
899 C(0xb9cb, SLHHHR, RRF_a, HW, r2_sr32, r3_sr32, new, r1_32h, sub, subu32)
900 C(0xb9db, SLHHLR, RRF_a, HW, r2_sr32, r3, new, r1_32h, sub, subu32)
ad044d09
RH
901/* SUBTRACT LOGICAL IMMEDIATE */
902 C(0xc205, SLFI, RIL_a, EI, r1, i2_32u, new, r1_32, sub, subu32)
903 C(0xc204, SLGFI, RIL_a, EI, r1, i2_32u, r1, 0, sub, subu64)
4e4bb438
RH
904/* SUBTRACT LOGICAL WITH BORROW */
905 C(0xb999, SLBR, RRE, Z, r1, r2, new, r1_32, subb, subb32)
906 C(0xb989, SLBGR, RRE, Z, r1, r2, r1, 0, subb, subb64)
907 C(0xe399, SLB, RXY_a, Z, r1, m2_32u, new, r1_32, subb, subb32)
908 C(0xe389, SLBG, RXY_a, Z, r1, m2_64, r1, 0, subb, subb64)
00d2dc19 909
b9836c1a
RH
910/* SUPERVISOR CALL */
911 C(0x0a00, SVC, I, Z, 0, 0, 0, 0, svc, 0)
912
0c0974d7
AJ
913/* TEST ADDRESSING MODE */
914 C(0x010b, TAM, E, Z, 0, 0, 0, 0, tam, 0)
915
6699adfc
AJ
916/* TEST AND SET */
917 C(0x9300, TS, S, Z, 0, a2, 0, 0, ts, 0)
918
31aa97d1 919/* TEST DATA CLASS */
ca5f31a0 920 F(0xed10, TCEB, RXE, Z, e1, a2, 0, 0, tceb, 0, IF_BFP)
80a7b759
DH
921 F(0xed11, TCDB, RXE, Z, f1, a2, 0, 0, tcdb, 0, IF_BFP)
922 F(0xed12, TCXB, RXE, Z, 0, a2, x1, 0, tcxb, 0, IF_BFP)
31aa97d1 923
5d4a655a
AJ
924/* TEST DECIMAL */
925 C(0xebc0, TP, RSL, E2, la1, 0, 0, 0, tp, 0)
926
00d2dc19
RH
927/* TEST UNDER MASK */
928 C(0x9100, TM, SI, Z, m1_8u, i2_8u, 0, 0, 0, tm32)
929 C(0xeb51, TMY, SIY, LD, m1_8u, i2_8u, 0, 0, 0, tm32)
930 D(0xa702, TMHH, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 48)
931 D(0xa703, TMHL, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 32)
932 D(0xa700, TMLH, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 16)
933 D(0xa701, TMLL, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 0)
d9a39927 934
0a949039
RH
935/* TRANSLATE */
936 C(0xdc00, TR, SS_a, Z, la1, a2, 0, 0, tr, 0)
54f00775
AJ
937/* TRANSLATE AND TEST */
938 C(0xdd00, TRT, SS_a, Z, la1, a2, 0, 0, trt, 0)
b213c9f5
RH
939/* TRANSLATE AND TEST REVERSE */
940 C(0xd000, TRTR, SS_a, ETF3, la1, a2, 0, 0, trtr, 0)
3f4de675
AJ
941/* TRANSLATE EXTENDED */
942 C(0xb2a5, TRE, RRE, Z, 0, r2, r1_P, 0, tre, 0)
0a949039 943
4065ae76
AJ
944/* TRANSLATE ONE TO ONE */
945 C(0xb993, TROO, RRF_c, E2, 0, 0, 0, 0, trXX, 0)
946/* TRANSLATE ONE TO TWO */
947 C(0xb992, TROT, RRF_c, E2, 0, 0, 0, 0, trXX, 0)
948/* TRANSLATE TWO TO ONE */
949 C(0xb991, TRTO, RRF_c, E2, 0, 0, 0, 0, trXX, 0)
950/* TRANSLATE TWO TO TWO */
951 C(0xb990, TRTT, RRF_c, E2, 0, 0, 0, 0, trXX, 0)
952
0a949039
RH
953/* UNPACK */
954 /* Really format SS_b, but we pack both lengths into one argument
955 for the helper call, so we might as well leave one 8-bit field. */
956 C(0xf300, UNPK, SS_a, Z, la1, a2, 0, 0, unpk, 0)
1a35f08a
AJ
957/* UNPACK ASCII */
958 C(0xea00, UNPKA, SS_a, E2, la1, a2, 0, 0, unpka, 0)
15417787
AJ
959/* UNPACK UNICODE */
960 C(0xe200, UNPKU, SS_a, E2, la1, a2, 0, 0, unpku, 0)
0a949039 961
7705c750
DH
962/* MSA Instructions */
963 D(0xb91e, KMAC, RRE, MSA, 0, 0, 0, 0, msa, 0, S390_FEAT_TYPE_KMAC)
964 D(0xb928, PCKMO, RRE, MSA3, 0, 0, 0, 0, msa, 0, S390_FEAT_TYPE_PCKMO)
965 D(0xb92a, KMF, RRE, MSA4, 0, 0, 0, 0, msa, 0, S390_FEAT_TYPE_KMF)
966 D(0xb92b, KMO, RRE, MSA4, 0, 0, 0, 0, msa, 0, S390_FEAT_TYPE_KMO)
967 D(0xb92c, PCC, RRE, MSA4, 0, 0, 0, 0, msa, 0, S390_FEAT_TYPE_PCC)
968 D(0xb92d, KMCTR, RRF_b, MSA4, 0, 0, 0, 0, msa, 0, S390_FEAT_TYPE_KMCTR)
969 D(0xb92e, KM, RRE, MSA, 0, 0, 0, 0, msa, 0, S390_FEAT_TYPE_KM)
970 D(0xb92f, KMC, RRE, MSA, 0, 0, 0, 0, msa, 0, S390_FEAT_TYPE_KMC)
971 D(0xb93c, PPNO, RRE, MSA5, 0, 0, 0, 0, msa, 0, S390_FEAT_TYPE_PPNO)
972 D(0xb93e, KIMD, RRE, MSA, 0, 0, 0, 0, msa, 0, S390_FEAT_TYPE_KIMD)
973 D(0xb93f, KLMD, RRE, MSA, 0, 0, 0, 0, msa, 0, S390_FEAT_TYPE_KLMD)
974
6d841663
DH
975/* === Vector Support Instructions === */
976
977/* VECTOR GATHER ELEMENT */
978 E(0xe713, VGEF, VRV, V, la2, 0, 0, 0, vge, 0, ES_32, IF_VEC)
979 E(0xe712, VGEG, VRV, V, la2, 0, 0, 0, vge, 0, ES_64, IF_VEC)
64052062
DH
980/* VECTOR GENERATE BYTE MASK */
981 F(0xe744, VGBM, VRI_a, V, 0, 0, 0, 0, vgbm, 0, IF_VEC)
eeb11a90
DH
982/* VECTOR GENERATE MASK */
983 F(0xe746, VGM, VRI_b, V, 0, 0, 0, 0, vgm, 0, IF_VEC)
b4f5ae47
DH
984/* VECTOR LOAD */
985 F(0xe706, VL, VRX, V, la2, 0, 0, 0, vl, 0, IF_VEC)
986 F(0xe756, VLR, VRR_a, V, 0, 0, 0, 0, vlr, 0, IF_VEC)
79c1620a
DH
987/* VECTOR LOAD AND REPLICATE */
988 F(0xe705, VLREP, VRX, V, la2, 0, 0, 0, vlrep, 0, IF_VEC)
4b664394
DH
989/* VECTOR LOAD ELEMENT */
990 E(0xe700, VLEB, VRX, V, la2, 0, 0, 0, vle, 0, ES_8, IF_VEC)
991 E(0xe701, VLEH, VRX, V, la2, 0, 0, 0, vle, 0, ES_16, IF_VEC)
992 E(0xe703, VLEF, VRX, V, la2, 0, 0, 0, vle, 0, ES_32, IF_VEC)
993 E(0xe702, VLEG, VRX, V, la2, 0, 0, 0, vle, 0, ES_64, IF_VEC)
e6790d32
DH
994/* VECTOR LOAD ELEMENT IMMEDIATE */
995 E(0xe740, VLEIB, VRI_a, V, 0, 0, 0, 0, vlei, 0, ES_8, IF_VEC)
996 E(0xe741, VLEIH, VRI_a, V, 0, 0, 0, 0, vlei, 0, ES_16, IF_VEC)
997 E(0xe743, VLEIF, VRI_a, V, 0, 0, 0, 0, vlei, 0, ES_32, IF_VEC)
998 E(0xe742, VLEIG, VRI_a, V, 0, 0, 0, 0, vlei, 0, ES_64, IF_VEC)
5d203bea
DH
999/* VECTOR LOAD GR FROM VR ELEMENT */
1000 F(0xe721, VLGV, VRS_c, V, la2, 0, r1, 0, vlgv, 0, IF_VEC)
f180da83
DH
1001/* VECTOR LOAD LOGICAL ELEMENT AND ZERO */
1002 F(0xe704, VLLEZ, VRX, V, la2, 0, 0, 0, vllez, 0, IF_VEC)
0a85f825
DH
1003/* VECTOR LOAD MULTIPLE */
1004 F(0xe736, VLM, VRS_a, V, la2, 0, 0, 0, vlm, 0, IF_VEC)
60e9e3f1
DH
1005/* VECTOR LOAD TO BLOCK BOUNDARY */
1006 F(0xe707, VLBB, VRX, V, la2, 0, 0, 0, vlbb, 0, IF_VEC)
90e3af6b
DH
1007/* VECTOR LOAD VR ELEMENT FROM GR */
1008 F(0xe722, VLVG, VRS_b, V, la2, r3, 0, 0, vlvg, 0, IF_VEC)
76dbd289
DH
1009/* VECTOR LOAD VR FROM GRS DISJOINT */
1010 F(0xe762, VLVGP, VRR_f, V, r2, r3, 0, 0, vlvgp, 0, IF_VEC)
f6c7ff67
DH
1011/* VECTOR LOAD WITH LENGTH */
1012 F(0xe737, VLL, VRS_b, V, la2, r3_32u, 0, 0, vll, 0, IF_VEC)
2ff47e6c
DH
1013/* VECTOR MERGE HIGH */
1014 F(0xe761, VMRH, VRR_c, V, 0, 0, 0, 0, vmr, 0, IF_VEC)
1015/* VECTOR MERGE LOW */
1016 F(0xe760, VMRL, VRR_c, V, 0, 0, 0, 0, vmr, 0, IF_VEC)
73946f0d
DH
1017/* VECTOR PACK */
1018 F(0xe794, VPK, VRR_c, V, 0, 0, 0, 0, vpk, 0, IF_VEC)
1019/* VECTOR PACK SATURATE */
1020 F(0xe797, VPKS, VRR_b, V, 0, 0, 0, 0, vpk, 0, IF_VEC)
1021/* VECTOR PACK LOGICAL SATURATE */
1022 F(0xe795, VPKLS, VRR_b, V, 0, 0, 0, 0, vpk, 0, IF_VEC)
7aaf844d 1023 F(0xe78c, VPERM, VRR_e, V, 0, 0, 0, 0, vperm, 0, IF_VEC)
66bb3333
DH
1024/* VECTOR PERMUTE DOUBLEWORD IMMEDIATE */
1025 F(0xe784, VPDI, VRR_c, V, 0, 0, 0, 0, vpdi, 0, IF_VEC)
28d08731
DH
1026/* VECTOR REPLICATE */
1027 F(0xe74d, VREP, VRI_c, V, 0, 0, 0, 0, vrep, 0, IF_VEC)
3a338e29
DH
1028/* VECTOR REPLICATE IMMEDIATE */
1029 F(0xe745, VREPI, VRI_a, V, 0, 0, 0, 0, vrepi, 0, IF_VEC)
7007ec27
DH
1030/* VECTOR SCATTER ELEMENT */
1031 E(0xe71b, VSCEF, VRV, V, la2, 0, 0, 0, vsce, 0, ES_32, IF_VEC)
1032 E(0xe71a, VSCEG, VRV, V, la2, 0, 0, 0, vsce, 0, ES_64, IF_VEC)
db23070c
DH
1033/* VECTOR SELECT */
1034 F(0xe78d, VSEL, VRR_e, V, 0, 0, 0, 0, vsel, 0, IF_VEC)
a2338cfb
DH
1035/* VECTOR SIGN EXTEND TO DOUBLEWORD */
1036 F(0xe75f, VSEG, VRR_a, V, 0, 0, 0, 0, vseg, 0, IF_VEC)
15e12add
DH
1037/* VECTOR STORE */
1038 F(0xe70e, VST, VRX, V, la2, 0, 0, 0, vst, 0, IF_VEC)
7b9a236e
DH
1039/* VECTOR STORE ELEMENT */
1040 E(0xe708, VSTEB, VRX, V, la2, 0, 0, 0, vste, 0, ES_8, IF_VEC)
1041 E(0xe709, VSTEH, VRX, V, la2, 0, 0, 0, vste, 0, ES_16, IF_VEC)
1042 E(0xe70b, VSTEF, VRX, V, la2, 0, 0, 0, vste, 0, ES_32, IF_VEC)
1043 E(0xe70a, VSTEG, VRX, V, la2, 0, 0, 0, vste, 0, ES_64, IF_VEC)
29b8bcf1
DH
1044/* VECTOR STORE MULTIPLE */
1045 F(0xe73e, VSTM, VRS_a, V, la2, 0, 0, 0, vstm, 0, IF_VEC)
0e0a5b49
DH
1046/* VECTOR STORE WITH LENGTH */
1047 F(0xe73f, VSTL, VRS_b, V, la2, r3_32u, 0, 0, vstl, 0, IF_VEC)
2c7590c8
DH
1048/* VECTOR UNPACK HIGH */
1049 F(0xe7d7, VUPH, VRR_a, V, 0, 0, 0, 0, vup, 0, IF_VEC)
1050/* VECTOR UNPACK LOGICAL HIGH */
1051 F(0xe7d5, VUPLH, VRR_a, V, 0, 0, 0, 0, vup, 0, IF_VEC)
1052/* VECTOR UNPACK LOW */
1053 F(0xe7d6, VUPL, VRR_a, V, 0, 0, 0, 0, vup, 0, IF_VEC)
1054/* VECTOR UNPACK LOGICAL LOW */
1055 F(0xe7d4, VUPLL, VRR_a, V, 0, 0, 0, 0, vup, 0, IF_VEC)
6d841663 1056
b1e67c8f
DH
1057/* === Vector Integer Instructions === */
1058
1059/* VECTOR ADD */
1060 F(0xe7f3, VA, VRR_c, V, 0, 0, 0, 0, va, 0, IF_VEC)
c563f28a
DH
1061/* VECTOR ADD COMPUTE CARRY */
1062 F(0xe7f1, VACC, VRR_c, V, 0, 0, 0, 0, vacc, 0, IF_VEC)
8d4eb4b6
DH
1063/* VECTOR ADD WITH CARRY */
1064 F(0xe7bb, VAC, VRR_d, V, 0, 0, 0, 0, vac, 0, IF_VEC)
8a931bb8
DH
1065/* VECTOR ADD WITH CARRY COMPUTE CARRY */
1066 F(0xe7b9, VACCC, VRR_d, V, 0, 0, 0, 0, vaccc, 0, IF_VEC)
4c1bd09a
DH
1067/* VECTOR AND */
1068 F(0xe768, VN, VRR_c, V, 0, 0, 0, 0, vn, 0, IF_VEC)
1069/* VECTOR AND WITH COMPLEMENT */
1070 F(0xe769, VNC, VRR_c, V, 0, 0, 0, 0, vnc, 0, IF_VEC)
c1a81d4b
DH
1071/* VECTOR AVERAGE */
1072 F(0xe7f2, VAVG, VRR_c, V, 0, 0, 0, 0, vavg, 0, IF_VEC)
801aa78b
DH
1073/* VECTOR AVERAGE LOGICAL */
1074 F(0xe7f0, VAVGL, VRR_c, V, 0, 0, 0, 0, vavgl, 0, IF_VEC)
b0160ec9
DH
1075/* VECTOR CHECKSUM */
1076 F(0xe766, VCKSM, VRR_c, V, 0, 0, 0, 0, vcksm, 0, IF_VEC)
751a564f
DH
1077/* VECTOR ELEMENT COMPARE */
1078 F(0xe7db, VEC, VRR_a, V, 0, 0, 0, 0, vec, cmps64, IF_VEC)
1079/* VECTOR ELEMENT COMPARE LOGICAL */
1080 F(0xe7d9, VECL, VRR_a, V, 0, 0, 0, 0, vec, cmpu64, IF_VEC)
ff825c6d
DH
1081/* VECTOR COMPARE EQUAL */
1082 E(0xe7f8, VCEQ, VRR_b, V, 0, 0, 0, 0, vc, 0, TCG_COND_EQ, IF_VEC)
1083/* VECTOR COMPARE HIGH */
1084 E(0xe7fb, VCH, VRR_b, V, 0, 0, 0, 0, vc, 0, TCG_COND_GT, IF_VEC)
1085/* VECTOR COMPARE HIGH LOGICAL */
1086 E(0xe7f9, VCHL, VRR_b, V, 0, 0, 0, 0, vc, 0, TCG_COND_GTU, IF_VEC)
28863f1d
DH
1087/* VECTOR COUNT LEADING ZEROS */
1088 F(0xe753, VCLZ, VRR_a, V, 0, 0, 0, 0, vclz, 0, IF_VEC)
449a8ac2
DH
1089/* VECTOR COUNT TRAILING ZEROS */
1090 F(0xe752, VCTZ, VRR_a, V, 0, 0, 0, 0, vctz, 0, IF_VEC)
44951e6b
DH
1091/* VECTOR EXCLUSIVE OR */
1092 F(0xe76d, VX, VRR_c, V, 0, 0, 0, 0, vx, 0, IF_VEC)
697a45d6
DH
1093/* VECTOR GALOIS FIELD MULTIPLY SUM */
1094 F(0xe7b4, VGFM, VRR_c, V, 0, 0, 0, 0, vgfm, 0, IF_VEC)
1095/* VECTOR GALOIS FIELD MULTIPLY SUM AND ACCUMULATE */
1096 F(0xe7bc, VGFMA, VRR_d, V, 0, 0, 0, 0, vgfma, 0, IF_VEC)
53e0ca22
DH
1097/* VECTOR LOAD COMPLEMENT */
1098 F(0xe7de, VLC, VRR_a, V, 0, 0, 0, 0, vlc, 0, IF_VEC)
35f0ba5f
DH
1099/* VECTOR LOAD POSITIVE */
1100 F(0xe7df, VLP, VRR_a, V, 0, 0, 0, 0, vlp, 0, IF_VEC)
86f521b6
DH
1101/* VECTOR MAXIMUM */
1102 F(0xe7ff, VMX, VRR_c, V, 0, 0, 0, 0, vmx, 0, IF_VEC)
1103/* VECTOR MAXIMUM LOGICAL */
1104 F(0xe7fd, VMXL, VRR_c, V, 0, 0, 0, 0, vmx, 0, IF_VEC)
1105/* VECTOR MINIMUM */
1106 F(0xe7fe, VMN, VRR_c, V, 0, 0, 0, 0, vmx, 0, IF_VEC)
1107/* VECTOR MINIMUM LOGICAL */
1108 F(0xe7fc, VMNL, VRR_c, V, 0, 0, 0, 0, vmx, 0, IF_VEC)
1b430aec
DH
1109/* VECTOR MULTIPLY AND ADD LOW */
1110 F(0xe7aa, VMAL, VRR_d, V, 0, 0, 0, 0, vma, 0, IF_VEC)
1111/* VECTOR MULTIPLY AND ADD HIGH */
1112 F(0xe7ab, VMAH, VRR_d, V, 0, 0, 0, 0, vma, 0, IF_VEC)
1113/* VECTOR MULTIPLY AND ADD LOGICAL HIGH */
1114 F(0xe7a9, VMALH, VRR_d, V, 0, 0, 0, 0, vma, 0, IF_VEC)
1115/* VECTOR MULTIPLY AND ADD EVEN */
1116 F(0xe7ae, VMAE, VRR_d, V, 0, 0, 0, 0, vma, 0, IF_VEC)
1117/* VECTOR MULTIPLY AND ADD LOGICAL EVEN */
1118 F(0xe7ac, VMALE, VRR_d, V, 0, 0, 0, 0, vma, 0, IF_VEC)
1119/* VECTOR MULTIPLY AND ADD ODD */
1120 F(0xe7af, VMAO, VRR_d, V, 0, 0, 0, 0, vma, 0, IF_VEC)
1121/* VECTOR MULTIPLY AND ADD LOGICAL ODD */
1122 F(0xe7ad, VMALO, VRR_d, V, 0, 0, 0, 0, vma, 0, IF_VEC)
2bf3ee38
DH
1123/* VECTOR MULTIPLY HIGH */
1124 F(0xe7a3, VMH, VRR_c, V, 0, 0, 0, 0, vm, 0, IF_VEC)
1125/* VECTOR MULTIPLY LOGICAL HIGH */
1126 F(0xe7a1, VMLH, VRR_c, V, 0, 0, 0, 0, vm, 0, IF_VEC)
1127/* VECTOR MULTIPLY LOW */
1128 F(0xe7a2, VML, VRR_c, V, 0, 0, 0, 0, vm, 0, IF_VEC)
1129/* VECTOR MULTIPLY EVEN */
1130 F(0xe7a6, VME, VRR_c, V, 0, 0, 0, 0, vm, 0, IF_VEC)
1131/* VECTOR MULTIPLY LOGICAL EVEN */
1132 F(0xe7a4, VMLE, VRR_c, V, 0, 0, 0, 0, vm, 0, IF_VEC)
1133/* VECTOR MULTIPLY ODD */
1134 F(0xe7a7, VMO, VRR_c, V, 0, 0, 0, 0, vm, 0, IF_VEC)
1135/* VECTOR MULTIPLY LOGICAL ODD */
1136 F(0xe7a5, VMLO, VRR_c, V, 0, 0, 0, 0, vm, 0, IF_VEC)
5bc4a20f
DH
1137/* VECTOR NAND */
1138 F(0xe76e, VNN, VRR_c, VE, 0, 0, 0, 0, vnn, 0, IF_VEC)
2a01d94c
DH
1139/* VECTOR NOR */
1140 F(0xe76b, VNO, VRR_c, V, 0, 0, 0, 0, vno, 0, IF_VEC)
9023434b
DH
1141/* VECTOR NOT EXCLUSIVE OR */
1142 F(0xe76c, VNX, VRR_c, VE, 0, 0, 0, 0, vnx, 0, IF_VEC)
2bbf4dff
DH
1143/* VECTOR OR */
1144 F(0xe76a, VO, VRR_c, V, 0, 0, 0, 0, vo, 0, IF_VEC)
a014bcc7
DH
1145/* VECTOR OR WITH COMPLEMENT */
1146 F(0xe76f, VOC, VRR_c, VE, 0, 0, 0, 0, voc, 0, IF_VEC)
c3838aaa
DH
1147/* VECTOR POPULATION COUNT */
1148 F(0xe750, VPOPCT, VRR_a, V, 0, 0, 0, 0, vpopct, 0, IF_VEC)
55236da2
DH
1149/* VECTOR ELEMENT ROTATE LEFT LOGICAL */
1150 F(0xe773, VERLLV, VRR_c, V, 0, 0, 0, 0, verllv, 0, IF_VEC)
1151 F(0xe733, VERLL, VRS_a, V, la2, 0, 0, 0, verll, 0, IF_VEC)
b1e67c8f 1152
d9a39927 1153#ifndef CONFIG_USER_ONLY
3d596f49 1154/* COMPARE AND SWAP AND PURGE */
b51cc1d8
DH
1155 E(0xb250, CSP, RRE, Z, r1_32u, ra2, r1_P, 0, csp, 0, MO_TEUL, IF_PRIV)
1156 E(0xb98a, CSPG, RRE, DAT_ENH, r1_o, ra2, r1_P, 0, csp, 0, MO_TEQ, IF_PRIV)
972e35b9 1157/* DIAGNOSE (KVM hypercall) */
b51cc1d8 1158 F(0x8300, DIAG, RSI, Z, 0, 0, 0, 0, diag, 0, IF_PRIV)
8026417c 1159/* INSERT STORAGE KEY EXTENDED */
b51cc1d8 1160 F(0xb229, ISKE, RRE, Z, 0, r2_o, new, r1_8, iske, 0, IF_PRIV)
be7f28de 1161/* INVALIDATE DAT TABLE ENTRY */
b51cc1d8 1162 F(0xb98e, IPDE, RRF_b, Z, r1_o, r2_o, 0, 0, idte, 0, IF_PRIV)
cfef53e3 1163/* INVALIDATE PAGE TABLE ENTRY */
b51cc1d8 1164 F(0xb221, IPTE, RRF_a, Z, r1_o, r2_o, 0, 0, ipte, 0, IF_PRIV)
504488b8 1165/* LOAD CONTROL */
b51cc1d8
DH
1166 F(0xb700, LCTL, RS_a, Z, 0, a2, 0, 0, lctl, 0, IF_PRIV)
1167 F(0xeb2f, LCTLG, RSY_a, Z, 0, a2, 0, 0, lctlg, 0, IF_PRIV)
190b2422 1168/* LOAD PROGRAM PARAMETER */
b51cc1d8 1169 F(0xb280, LPP, S, LPP, 0, m2_64, 0, 0, lpp, 0, IF_PRIV)
8b5ff571 1170/* LOAD PSW */
b51cc1d8 1171 F(0x8200, LPSW, S, Z, 0, a2, 0, 0, lpsw, 0, IF_PRIV)
7ab938d7 1172/* LOAD PSW EXTENDED */
b51cc1d8 1173 F(0xb2b2, LPSWE, S, Z, 0, a2, 0, 0, lpswe, 0, IF_PRIV)
d8fe4a9c 1174/* LOAD REAL ADDRESS */
b51cc1d8
DH
1175 F(0xb100, LRA, RX_a, Z, 0, a2, r1, 0, lra, 0, IF_PRIV)
1176 F(0xe313, LRAY, RXY_a, LD, 0, a2, r1, 0, lra, 0, IF_PRIV)
1177 F(0xe303, LRAG, RXY_a, Z, 0, a2, r1, 0, lra, 0, IF_PRIV)
9c3fd85b 1178/* LOAD USING REAL ADDRESS */
b51cc1d8
DH
1179 F(0xb24b, LURA, RRE, Z, 0, r2, new, r1_32, lura, 0, IF_PRIV)
1180 F(0xb905, LURAG, RRE, Z, 0, r2, r1, 0, lurag, 0, IF_PRIV)
97c3ab61 1181/* MOVE TO PRIMARY */
b51cc1d8 1182 F(0xda00, MVCP, SS_d, Z, la1, a2, 0, 0, mvcp, 0, IF_PRIV)
97c3ab61 1183/* MOVE TO SECONDARY */
b51cc1d8 1184 F(0xdb00, MVCS, SS_d, Z, la1, a2, 0, 0, mvcs, 0, IF_PRIV)
0568d8aa 1185/* PURGE TLB */
b51cc1d8 1186 F(0xb20d, PTLB, S, Z, 0, 0, 0, 0, ptlb, 0, IF_PRIV)
5cc69c54 1187/* RESET REFERENCE BIT EXTENDED */
b51cc1d8 1188 F(0xb22a, RRBE, RRE, Z, 0, r2_o, 0, 0, rrbe, 0, IF_PRIV)
dc458df9 1189/* SERVICE CALL LOGICAL PROCESSOR (PV hypercall) */
b51cc1d8 1190 F(0xb220, SERVC, RRE, Z, r1_o, r2_o, 0, 0, servc, 0, IF_PRIV)
14244b21 1191/* SET ADDRESS SPACE CONTROL FAST */
b51cc1d8 1192 F(0xb279, SACF, S, Z, 0, a2, 0, 0, sacf, 0, IF_PRIV)
35289799 1193/* SET CLOCK */
b51cc1d8 1194 F(0xb204, SCK, S, Z, la2, 0, 0, 0, sck, 0, IF_PRIV)
dd3eb7b5 1195/* SET CLOCK COMPARATOR */
b51cc1d8 1196 F(0xb206, SCKC, S, Z, 0, m2_64a, 0, 0, sckc, 0, IF_PRIV)
257a119e 1197/* SET CLOCK PROGRAMMABLE FIELD */
b51cc1d8 1198 F(0x0107, SCKPF, E, Z, 0, 0, 0, 0, sckpf, 0, IF_PRIV)
c4f0a863 1199/* SET CPU TIMER */
b51cc1d8 1200 F(0xb208, SPT, S, Z, 0, m2_64a, 0, 0, spt, 0, IF_PRIV)
e805a0d3 1201/* SET PREFIX */
b51cc1d8 1202 F(0xb210, SPX, S, Z, 0, m2_32ua, 0, 0, spx, 0, IF_PRIV)
28d55556 1203/* SET PSW KEY FROM ADDRESS */
b51cc1d8 1204 F(0xb20a, SPKA, S, Z, 0, a2, 0, 0, spka, 0, IF_PRIV)
2bbde27f 1205/* SET STORAGE KEY EXTENDED */
b51cc1d8 1206 F(0xb22b, SSKE, RRF_c, Z, r1_o, r2_o, 0, 0, sske, 0, IF_PRIV)
7d30bb73 1207/* SET SYSTEM MASK */
b51cc1d8 1208 F(0x8000, SSM, S, Z, 0, m2_8u, 0, 0, ssm, 0, IF_PRIV)
0c240015 1209/* SIGNAL PROCESSOR */
b51cc1d8 1210 F(0xae00, SIGP, RS_a, Z, 0, a2, 0, 0, sigp, 0, IF_PRIV)
dd3eb7b5 1211/* STORE CLOCK COMPARATOR */
b51cc1d8 1212 F(0xb207, STCKC, S, Z, la2, 0, new, m1_64a, stckc, 0, IF_PRIV)
504488b8 1213/* STORE CONTROL */
b51cc1d8
DH
1214 F(0xb600, STCTL, RS_a, Z, 0, a2, 0, 0, stctl, 0, IF_PRIV)
1215 F(0xeb25, STCTG, RSY_a, Z, 0, a2, 0, 0, stctg, 0, IF_PRIV)
411fea3d 1216/* STORE CPU ADDRESS */
b51cc1d8 1217 F(0xb212, STAP, S, Z, la2, 0, new, m1_16a, stap, 0, IF_PRIV)
71bd6669 1218/* STORE CPU ID */
b51cc1d8 1219 F(0xb202, STIDP, S, Z, la2, 0, new, m1_64a, stidp, 0, IF_PRIV)
c4f0a863 1220/* STORE CPU TIMER */
b51cc1d8 1221 F(0xb209, STPT, S, Z, la2, 0, new, m1_64a, stpt, 0, IF_PRIV)
fc778b55 1222/* STORE FACILITY LIST */
b51cc1d8 1223 F(0xb2b1, STFL, S, Z, 0, 0, 0, 0, stfl, 0, IF_PRIV)
e805a0d3 1224/* STORE PREFIX */
b51cc1d8 1225 F(0xb211, STPX, S, Z, la2, 0, new, m1_32a, stpx, 0, IF_PRIV)
d14b3e09 1226/* STORE SYSTEM INFORMATION */
b51cc1d8 1227 F(0xb27d, STSI, S, Z, 0, a2, 0, 0, stsi, 0, IF_PRIV)
145cdb40 1228/* STORE THEN AND SYSTEM MASK */
b51cc1d8 1229 F(0xac00, STNSM, SI, Z, la1, 0, 0, 0, stnosm, 0, IF_PRIV)
145cdb40 1230/* STORE THEN OR SYSTEM MASK */
b51cc1d8 1231 F(0xad00, STOSM, SI, Z, la1, 0, 0, 0, stnosm, 0, IF_PRIV)
204504e2 1232/* STORE USING REAL ADDRESS */
b51cc1d8
DH
1233 F(0xb246, STURA, RRE, Z, r1_o, r2_o, 0, 0, stura, 0, IF_PRIV)
1234 F(0xb925, STURG, RRE, Z, r1_o, r2_o, 0, 0, sturg, 0, IF_PRIV)
f79f1ca4 1235/* TEST BLOCK */
b51cc1d8 1236 F(0xb22c, TB, RRE, Z, 0, r2_o, 0, 0, testblock, 0, IF_PRIV)
112bf079
RH
1237/* TEST PROTECTION */
1238 C(0xe501, TPROT, SSE, Z, la1, a2, 0, 0, tprot, 0)
2c423fc0 1239
ad8a4570 1240/* CCW I/O Instructions */
b51cc1d8
DH
1241 F(0xb276, XSCH, S, Z, 0, 0, 0, 0, xsch, 0, IF_PRIV)
1242 F(0xb230, CSCH, S, Z, 0, 0, 0, 0, csch, 0, IF_PRIV)
1243 F(0xb231, HSCH, S, Z, 0, 0, 0, 0, hsch, 0, IF_PRIV)
1244 F(0xb232, MSCH, S, Z, 0, insn, 0, 0, msch, 0, IF_PRIV)
1245 F(0xb23b, RCHP, S, Z, 0, 0, 0, 0, rchp, 0, IF_PRIV)
1246 F(0xb238, RSCH, S, Z, 0, 0, 0, 0, rsch, 0, IF_PRIV)
1247 F(0xb237, SAL, S, Z, 0, 0, 0, 0, sal, 0, IF_PRIV)
1248 F(0xb23c, SCHM, S, Z, 0, insn, 0, 0, schm, 0, IF_PRIV)
1249 F(0xb274, SIGA, S, Z, 0, 0, 0, 0, siga, 0, IF_PRIV)
1250 F(0xb23a, STCPS, S, Z, 0, 0, 0, 0, stcps, 0, IF_PRIV)
1251 F(0xb233, SSCH, S, Z, 0, insn, 0, 0, ssch, 0, IF_PRIV)
1252 F(0xb239, STCRW, S, Z, 0, insn, 0, 0, stcrw, 0, IF_PRIV)
1253 F(0xb234, STSCH, S, Z, 0, insn, 0, 0, stsch, 0, IF_PRIV)
1254 F(0xb236, TPI , S, Z, la2, 0, 0, 0, tpi, 0, IF_PRIV)
1255 F(0xb235, TSCH, S, Z, 0, insn, 0, 0, tsch, 0, IF_PRIV)
2c423fc0
RH
1256 /* ??? Not listed in PoO ninth edition, but there's a linux driver that
1257 uses it: "A CHSC subchannel is usually present on LPAR only." */
b51cc1d8 1258 F(0xb25f, CHSC, RRE, Z, 0, insn, 0, 0, chsc, 0, IF_PRIV)
f6c232ce
CH
1259
1260/* zPCI Instructions */
1261 /* None of these instructions are documented in the PoP, so this is all
1262 based upon target/s390x/kvm.c and Linux code and likely incomplete */
b51cc1d8
DH
1263 F(0xebd0, PCISTB, RSY_a, PCI, la2, 0, 0, 0, pcistb, 0, IF_PRIV)
1264 F(0xebd1, SIC, RSY_a, AIS, r1, r3, 0, 0, sic, 0, IF_PRIV)
1265 F(0xb9a0, CLP, RRF_c, PCI, 0, 0, 0, 0, clp, 0, IF_PRIV)
1266 F(0xb9d0, PCISTG, RRE, PCI, 0, 0, 0, 0, pcistg, 0, IF_PRIV)
1267 F(0xb9d2, PCILG, RRE, PCI, 0, 0, 0, 0, pcilg, 0, IF_PRIV)
1268 F(0xb9d3, RPCIT, RRE, PCI, 0, 0, 0, 0, rpcit, 0, IF_PRIV)
1269 F(0xe3d0, MPCIFC, RXY_a, PCI, la2, 0, 0, 0, mpcifc, 0, IF_PRIV)
1270 F(0xe3d4, STPCIFC, RXY_a, PCI, la2, 0, 0, 0, stpcifc, 0, IF_PRIV)
f6c232ce 1271
d9a39927 1272#endif /* CONFIG_USER_ONLY */
This page took 0.582341 seconds and 4 git commands to generate.