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