]> git.proxmox.com Git - qemu.git/blame - target-s390x/insn-data.def
target-s390: Convert STAP
[qemu.git] / target-s390x / insn-data.def
CommitLineData
ad044d09
RH
1/* ADD */
2 C(0x1a00, AR, RR_a, Z, r1, r2, new, r1_32, add, adds32)
3 C(0xb9f8, ARK, RRF_a, DO, r2, r3, new, r1_32, add, adds32)
4 C(0x5a00, A, RX_a, Z, r1, m2_32s, new, r1_32, add, adds32)
5 C(0xe35a, AY, RXY_a, LD, r1, m2_32s, new, r1_32, add, adds32)
6 C(0xb908, AGR, RRE, Z, r1, r2, r1, 0, add, adds64)
7 C(0xb918, AGFR, RRE, Z, r1, r2_32s, r1, 0, add, adds64)
8 C(0xb9e8, AGRK, RRF_a, DO, r2, r3, r1, 0, add, adds64)
9 C(0xe308, AG, RXY_a, Z, r1, m2_64, r1, 0, add, adds64)
10 C(0xe318, AGF, RXY_a, Z, r1, m2_32s, r1, 0, add, adds64)
587626f8
RH
11 C(0xb30a, AEBR, RRE, Z, e1, e2, new, e1, aeb, f32)
12 C(0xb31a, ADBR, RRE, Z, f1_o, f2_o, f1, 0, adb, f64)
13 C(0xb34a, AXBR, RRE, Z, 0, x2_o, x1, 0, axb, f128)
14 C(0xed0a, AEB, RXE, Z, e1, m2_32u, new, e1, aeb, f32)
15 C(0xed1a, ADB, RXE, Z, f1_o, m2_64, f1, 0, adb, f64)
ad044d09
RH
16/* ADD IMMEDIATE */
17 C(0xc209, AFI, RIL_a, EI, r1, i2, new, r1_32, add, adds32)
18 C(0xeb6a, ASI, SIY, GIE, m1_32s, i2, new, m1_32, add, adds32)
19 C(0xecd8, AHIK, RIE_d, DO, r3, i2, new, r1_32, add, adds32)
20 C(0xc208, AGFI, RIL_a, EI, r1, i2, r1, 0, add, adds64)
21 C(0xeb7a, AGSI, SIY, GIE, m1_64, i2, new, m1_64, add, adds64)
22 C(0xecd9, AGHIK, RIE_d, DO, r3, i2, r1, 0, add, adds64)
d82287de
RH
23/* ADD HALFWORD */
24 C(0x4a00, AH, RX_a, Z, r1, m2_16s, new, r1_32, add, adds32)
25 C(0xe37a, AHY, RXY_a, LD, r1, m2_16s, new, r1_32, add, adds32)
26/* ADD HALFWORD IMMEDIATE */
27 C(0xa70a, AHI, RI_a, Z, r1, i2, new, r1_32, add, adds32)
28 C(0xa70b, AGHI, RI_a, Z, r1, i2, r1, 0, add, adds64)
29
ad044d09
RH
30/* ADD LOGICAL */
31 C(0x1e00, ALR, RR_a, Z, r1, r2, new, r1_32, add, addu32)
32 C(0xb9fa, ALRK, RRF_a, DO, r2, r3, new, r1_32, add, addu32)
33 C(0x5e00, AL, RX_a, Z, r1, m2_32u, new, r1_32, add, addu32)
34 C(0xe35e, ALY, RXY_a, LD, r1, m2_32u, new, r1_32, add, addu32)
35 C(0xb90a, ALGR, RRE, Z, r1, r2, r1, 0, add, addu64)
36 C(0xb91a, ALGFR, RRE, Z, r1, r2_32u, r1, 0, add, addu64)
37 C(0xb9ea, ALGRK, RRF_a, DO, r2, r3, r1, 0, add, addu64)
38 C(0xe30a, ALG, RXY_a, Z, r1, m2_64, r1, 0, add, addu64)
39 C(0xe31a, ALGF, RXY_a, Z, r1, m2_32u, r1, 0, add, addu64)
40/* ADD LOGICAL IMMEDIATE */
41 C(0xc20b, ALFI, RIL_a, EI, r1, i2_32u, new, r1_32, add, addu32)
42 C(0xc20a, ALGFI, RIL_a, EI, r1, i2_32u, r1, 0, add, addu64)
e272b3ac
RH
43/* ADD LOGICAL WITH SIGNED IMMEDIATE */
44 C(0xeb6e, ALSI, SIY, GIE, m1_32u, i2, new, m1_32, add, addu32)
45 C(0xecda, ALHSIK, RIE_d, DO, r3, i2, new, r1_32, add, addu32)
46 C(0xeb7e, ALGSI, SIY, GIE, m1_64, i2, new, m1_64, add, addu64)
47 C(0xecdb, ALGHSIK, RIE_d, DO, r3, i2, r1, 0, add, addu64)
4e4bb438
RH
48/* ADD LOGICAL WITH CARRY */
49 C(0xb998, ALCR, RRE, Z, r1, r2, new, r1_32, addc, addc32)
50 C(0xb988, ALCGR, RRE, Z, r1, r2, r1, 0, addc, addc64)
51 C(0xe398, ALC, RXY_a, Z, r1, m2_32u, new, r1_32, addc, addc32)
52 C(0xe388, ALCG, RXY_a, Z, r1, m2_64, r1, 0, addc, addc64)
ad044d09 53
3bbfbd1f
RH
54/* AND */
55 C(0x1400, NR, RR_a, Z, r1, r2, new, r1_32, and, nz32)
56 C(0xb9f4, NRK, RRF_a, DO, r2, r3, new, r1_32, and, nz32)
57 C(0x5400, N, RX_a, Z, r1, m2_32s, new, r1_32, and, nz32)
58 C(0xe354, NY, RXY_a, LD, r1, m2_32s, new, r1_32, and, nz32)
59 C(0xb980, NGR, RRE, Z, r1, r2, r1, 0, and, nz64)
60 C(0xb9e4, NGRK, RRF_a, DO, r2, r3, r1, 0, and, nz64)
61 C(0xe380, NG, RXY_a, Z, r1, m2_64, r1, 0, and, nz64)
0a949039 62 C(0xd400, NC, SS_a, Z, la1, a2, 0, 0, nc, 0)
facfc864
RH
63/* AND IMMEDIATE */
64 D(0xc00a, NIHF, RIL_a, EI, r1_o, i2_32u, r1, 0, andi, 0, 0x2020)
65 D(0xc00b, NILF, RIL_a, EI, r1_o, i2_32u, r1, 0, andi, 0, 0x2000)
66 D(0xa504, NIHH, RI_a, Z, r1_o, i2_16u, r1, 0, andi, 0, 0x1030)
67 D(0xa505, NIHL, RI_a, Z, r1_o, i2_16u, r1, 0, andi, 0, 0x1020)
68 D(0xa506, NILH, RI_a, Z, r1_o, i2_16u, r1, 0, andi, 0, 0x1010)
69 D(0xa507, NILL, RI_a, Z, r1_o, i2_16u, r1, 0, andi, 0, 0x1000)
a05d2b6b
RH
70 C(0x9400, NI, SI, Z, m1_8u, i2_8u, new, m1_8, and, nz64)
71 C(0xeb54, NIY, SIY, LD, m1_8u, i2_8u, new, m1_8, and, nz64)
3bbfbd1f 72
8ac33cdb
RH
73/* BRANCH AND SAVE */
74 C(0x0d00, BASR, RR_a, Z, 0, r2_nz, r1, 0, bas, 0)
75 C(0x4d00, BAS, RX_a, Z, 0, a2, r1, 0, bas, 0)
76/* BRANCH RELATIVE AND SAVE */
77 C(0xa705, BRAS, RI_b, Z, 0, 0, r1, 0, basi, 0)
78 C(0xc005, BRASL, RIL_b, Z, 0, 0, r1, 0, basi, 0)
7233f2ed
RH
79/* BRANCH ON CONDITION */
80 C(0x0700, BCR, RR_b, Z, 0, r2_nz, 0, 0, bc, 0)
81 C(0x4700, BC, RX_b, Z, 0, a2, 0, 0, bc, 0)
82/* BRANCH RELATIVE ON CONDITION */
83 C(0xa704, BRC, RI_c, Z, 0, 0, 0, 0, bc, 0)
84 C(0xc004, BRCL, RIL_c, Z, 0, 0, 0, 0, bc, 0)
c61aad69
RH
85/* BRANCH ON COUNT */
86 C(0x0600, BCTR, RR_a, Z, 0, r2_nz, 0, 0, bct32, 0)
87 C(0xb946, BCTGR, RRE, Z, 0, r2_nz, 0, 0, bct64, 0)
88 C(0x4600, BCT, RX_a, Z, 0, a2, 0, 0, bct32, 0)
89 C(0xe346, BCTG, RXY_a, Z, 0, a2, 0, 0, bct64, 0)
90/* BRANCH RELATIVE ON COUNT */
91 C(0xa706, BRCT, RI_b, Z, 0, 0, 0, 0, bct32, 0)
92 C(0xa707, BRCTG, RI_b, Z, 0, 0, 0, 0, bct64, 0)
8ac33cdb 93
374724f9
RH
94/* CHECKSUM */
95 C(0xb241, CKSM, RRE, Z, r1_o, ra2, new, r1_32, cksm, 0)
96
a7e836d5
RH
97/* COMPARE */
98 C(0x1900, CR, RR_a, Z, r1_o, r2_o, 0, 0, 0, cmps32)
99 C(0x5900, C, RX_a, Z, r1_o, m2_32s, 0, 0, 0, cmps32)
100 C(0xe359, CY, RXY_a, LD, r1_o, m2_32s, 0, 0, 0, cmps32)
101 C(0xb920, CGR, RRE, Z, r1_o, r2_o, 0, 0, 0, cmps64)
102 C(0xb930, CGFR, RRE, Z, r1_o, r2_32s, 0, 0, 0, cmps64)
103 C(0xe320, CG, RXY_a, Z, r1_o, m2_64, 0, 0, 0, cmps64)
104 C(0xe330, CGF, RXY_a, Z, r1_o, m2_32s, 0, 0, 0, cmps64)
587626f8
RH
105 C(0xb309, CEBR, RRE, Z, e1, e2, 0, 0, ceb, 0)
106 C(0xb319, CDBR, RRE, Z, f1_o, f2_o, 0, 0, cdb, 0)
107 C(0xb349, CXBR, RRE, Z, x1_o, x2_o, 0, 0, cxb, 0)
108 C(0xed09, CEB, RXE, Z, e1, m2_32u, 0, 0, ceb, 0)
109 C(0xed19, CDB, RXE, Z, f1_o, m2_64, 0, 0, cdb, 0)
a7e836d5
RH
110/* COMPARE IMMEDIATE */
111 C(0xc20d, CFI, RIL_a, EI, r1, i2, 0, 0, 0, cmps32)
112 C(0xc20c, CGFI, RIL_a, EI, r1, i2, 0, 0, 0, cmps64)
113/* COMPARE HALFWORD */
114 C(0x4900, CH, RX_a, Z, r1_o, m2_16s, 0, 0, 0, cmps32)
115 C(0xe379, CHY, RXY_a, LD, r1_o, m2_16s, 0, 0, 0, cmps32)
116 C(0xe334, CGH, RXY_a, GIE, r1_o, m2_16s, 0, 0, 0, cmps64)
117/* COMPARE HALFWORD IMMEDIATE */
118 C(0xa70e, CHI, RI_a, Z, r1_o, i2, 0, 0, 0, cmps32)
119 C(0xa70f, CGHI, RI_a, Z, r1_o, i2, 0, 0, 0, cmps64)
120 C(0xe554, CHHSI, SIL, GIE, m1_16s, i2, 0, 0, 0, cmps64)
121 C(0xe55c, CHSI, SIL, GIE, m1_32s, i2, 0, 0, 0, cmps64)
122 C(0xe558, CGHSI, SIL, GIE, m1_64, i2, 0, 0, 0, cmps64)
123/* COMPARE HALFWORD RELATIVE LONG */
124 C(0xc605, CHRL, RIL_a, GIE, r1_o, mri2_32s, 0, 0, 0, cmps32)
125 C(0xc604, CGHRL, RIL_a, GIE, r1_o, mri2_64, 0, 0, 0, cmps64)
126
127/* COMPARE LOGICAL */
128 C(0x1500, CLR, RR_a, Z, r1, r2, 0, 0, 0, cmpu32)
129 C(0x5500, CL, RX_a, Z, r1, m2_32s, 0, 0, 0, cmpu32)
130 C(0xe355, CLY, RXY_a, LD, r1, m2_32s, 0, 0, 0, cmpu32)
131 C(0xb921, CLGR, RRE, Z, r1, r2, 0, 0, 0, cmpu64)
132 C(0xb931, CLGFR, RRE, Z, r1, r2_32u, 0, 0, 0, cmpu64)
133 C(0xe321, CLG, RXY_a, Z, r1, m2_64, 0, 0, 0, cmpu64)
134 C(0xe331, CLGF, RXY_a, Z, r1, m2_32u, 0, 0, 0, cmpu64)
4f7403d5 135 C(0xd500, CLC, SS_a, Z, la1, a2, 0, 0, clc, 0)
a7e836d5
RH
136/* COMPARE LOGICAL IMMEDIATE */
137 C(0xc20f, CLFI, RIL_a, EI, r1, i2, 0, 0, 0, cmpu32)
138 C(0xc20e, CLGFI, RIL_a, EI, r1, i2_32u, 0, 0, 0, cmpu64)
139 C(0x9500, CLI, SI, Z, m1_8u, i2_8u, 0, 0, 0, cmpu64)
140 C(0xeb55, CLIY, SIY, LD, m1_8u, i2_8u, 0, 0, 0, cmpu64)
141 C(0xe555, CLHHSI, SIL, GIE, m1_16u, i2_16u, 0, 0, 0, cmpu64)
142 C(0xe55d, CLFHSI, SIL, GIE, m1_32u, i2_16u, 0, 0, 0, cmpu64)
143 C(0xe559, CLGHSI, SIL, GIE, m1_64, i2_16u, 0, 0, 0, cmpu64)
144/* COMPARE LOGICAL RELATIVE LONG */
145 C(0xc60f, CLRL, RIL_b, GIE, r1_o, mri2_32u, 0, 0, 0, cmpu32)
146 C(0xc60a, CLGRL, RIL_b, GIE, r1_o, mri2_64, 0, 0, 0, cmpu64)
147 C(0xc60e, CLGFRL, RIL_b, GIE, r1_o, mri2_32u, 0, 0, 0, cmpu64)
148 C(0xc607, CLHRL, RIL_b, GIE, r1_o, mri2_16u, 0, 0, 0, cmpu32)
149 C(0xc606, CLGHRL, RIL_b, GIE, r1_o, mri2_16u, 0, 0, 0, cmpu64)
eb66e6a9
RH
150/* COMPARE LOGICAL LONG EXTENDED */
151 C(0xa900, CLCLE, RS_a, Z, 0, a2, 0, 0, clcle, 0)
32a44d58
RH
152/* COMPARE LOGICAL CHARACTERS UNDER MASK */
153 C(0xbd00, CLM, RS_b, Z, r1_o, a2, 0, 0, clm, 0)
154 C(0xeb21, CLMY, RSY_b, LD, r1_o, a2, 0, 0, clm, 0)
155 C(0xeb20, CLMH, RSY_b, Z, r1_sr32, a2, 0, 0, clm, 0)
aa31bf60
RH
156/* COMPARE LOGICAL STRING */
157 C(0xb25d, CLST, RRE, Z, r1_o, r2_o, 0, 0, clst, 0)
a7e836d5 158
f3de39c4
RH
159/* COMPARE AND SWAP */
160 C(0xba00, CS, RS_a, Z, r1_o, a2, new, r1_32, cs, 0)
161 C(0xeb14, CSY, RSY_a, LD, r1_o, a2, new, r1_32, cs, 0)
162 C(0xeb30, CSG, RSY_a, Z, r1_o, a2, r1, 0, csg, 0)
163/* COMPARE DOUBLE AND SWAP */
164 C(0xbb00, CDS, RS_a, Z, r1_D32, a2, new, r1_D32, cds, 0)
165 C(0xeb31, CDSY, RSY_a, LD, r1_D32, a2, new, r1_D32, cds, 0)
166 C(0xeb3e, CDSG, RSY_a, Z, 0, a2, 0, 0, cdsg, 0)
167
c49daa51
RH
168/* CONVERT TO DECIMAL */
169 C(0x4e00, CVD, RX_a, Z, r1_o, a2, 0, 0, cvd, 0)
170 C(0xe326, CVDY, RXY_a, LD, r1_o, a2, 0, 0, cvd, 0)
68c8bd93
RH
171/* CONVERT TO FIXED */
172 C(0xb398, CFEBR, RRF_e, Z, 0, e2, new, r1_32, cfeb, 0)
173 C(0xb399, CFDBR, RRF_e, Z, 0, f2_o, new, r1_32, cfdb, 0)
174 C(0xb39a, CFXBR, RRF_e, Z, 0, x2_o, new, r1_32, cfxb, 0)
175 C(0xb3a8, CGEBR, RRF_e, Z, 0, e2, r1, 0, cgeb, 0)
176 C(0xb3a9, CGDBR, RRF_e, Z, 0, f2_o, r1, 0, cgdb, 0)
177 C(0xb3aa, CGXBR, RRF_e, Z, 0, x2_o, r1, 0, cgxb, 0)
683bb9a8
RH
178/* CONVERT FROM FIXED */
179 C(0xb394, CEFBR, RRF_e, Z, 0, r2_32s, new, e1, cegb, 0)
180 C(0xb395, CDFBR, RRF_e, Z, 0, r2_32s, f1, 0, cdgb, 0)
181 C(0xb396, CXFBR, RRF_e, Z, 0, r2_32s, x1, 0, cxgb, 0)
182 C(0xb3a4, CEGBR, RRF_e, Z, 0, r2_o, new, e1, cegb, 0)
183 C(0xb3a5, CDGBR, RRF_e, Z, 0, r2_o, f1, 0, cdgb, 0)
184 C(0xb3a6, CXGBR, RRF_e, Z, 0, r2_o, x1, 0, cxgb, 0)
c49daa51 185
891452e5
RH
186/* DIVIDE */
187 C(0x1d00, DR, RR_a, Z, r1_D32, r2_32s, new_P, r1_P32, divs32, 0)
188 C(0x5d00, D, RX_a, Z, r1_D32, m2_32s, new_P, r1_P32, divs32, 0)
f08a5c31
RH
189 C(0xb30d, DEBR, RRE, Z, e1, e2, new, e1, deb, 0)
190 C(0xb31d, DDBR, RRE, Z, f1_o, f2_o, f1, 0, ddb, 0)
191 C(0xb34d, DXBR, RRE, Z, 0, x2_o, x1, 0, dxb, 0)
192 C(0xed0d, DEB, RXE, Z, e1, m2_32u, new, e1, deb, 0)
193 C(0xed1d, DDB, RXE, Z, f1_o, m2_64, f1, 0, ddb, 0)
891452e5
RH
194/* DIVIDE LOGICAL */
195 C(0xb997, DLR, RRE, Z, r1_D32, r2_32u, new_P, r1_P32, divu32, 0)
196 C(0xe397, DL, RXY_a, Z, r1_D32, m2_32u, new_P, r1_P32, divu32, 0)
197 C(0xb987, DLGR, RRE, Z, 0, r2_o, r1_P, 0, divu64, 0)
198 C(0xe387, DLG, RXY_a, Z, 0, m2_64, r1_P, 0, divu64, 0)
199/* DIVIDE SINGLE */
200 C(0xb90d, DSGR, RRE, Z, r1p1, r2, r1_P, 0, divs64, 0)
201 C(0xb91d, DSGFR, RRE, Z, r1p1, r2_32s, r1_P, 0, divs64, 0)
202 C(0xe30d, DSG, RXY_a, Z, r1p1, m2_64, r1_P, 0, divs64, 0)
203 C(0xe31d, DSGF, RXY_a, Z, r1p1, m2_32s, r1_P, 0, divs64, 0)
204
3bbfbd1f
RH
205/* EXCLUSIVE OR */
206 C(0x1700, XR, RR_a, Z, r1, r2, new, r1_32, xor, nz32)
207 C(0xb9f7, XRK, RRF_a, DO, r2, r3, new, r1_32, xor, nz32)
208 C(0x5700, X, RX_a, Z, r1, m2_32s, new, r1_32, xor, nz32)
209 C(0xe357, XY, RXY_a, LD, r1, m2_32s, new, r1_32, xor, nz32)
210 C(0xb982, XGR, RRE, Z, r1, r2, r1, 0, xor, nz64)
211 C(0xb9e7, XGRK, RRF_a, DO, r2, r3, r1, 0, xor, nz64)
212 C(0xe382, XG, RXY_a, Z, r1, m2_64, r1, 0, xor, nz64)
0a949039 213 C(0xd700, XC, SS_a, Z, la1, a2, 0, 0, xc, 0)
facfc864
RH
214/* EXCLUSIVE OR IMMEDIATE */
215 D(0xc006, XIHF, RIL_a, EI, r1_o, i2_32u, r1, 0, xori, 0, 0x2020)
216 D(0xc007, XILF, RIL_a, EI, r1_o, i2_32u, r1, 0, xori, 0, 0x2000)
a05d2b6b
RH
217 C(0x9700, XI, SI, Z, m1_8u, i2_8u, new, m1_8, xor, nz64)
218 C(0xeb57, XIY, SIY, LD, m1_8u, i2_8u, new, m1_8, xor, nz64)
facfc864 219
6e764e97
RH
220/* EXECUTE */
221 C(0x4400, EX, RX_a, Z, r1_o, a2, 0, 0, ex, 0)
222/* EXECUTE RELATIVE LONG */
223 C(0xc600, EXRL, RIL_b, EE, r1_o, ri2, 0, 0, ex, 0)
224
d62a4c97
RH
225/* EXTRACT ACCESS */
226 C(0xb24f, EAR, RRE, Z, 0, 0, new, r1_32, ear, 0)
ea20490f
RH
227/* EXTRACT FPC */
228 C(0xb38c, EFPC, RRE, Z, 0, 0, new, r1_32, efpc, 0)
229
102bf2c6
RH
230/* FIND LEFTMOST ONE */
231 C(0xb983, FLOGR, RRE, EI, 0, r2_o, r1_P, 0, flogr, 0)
232
afdc70be
RH
233/* INSERT CHARACTER */
234 C(0x4300, IC, RX_a, Z, 0, m2_8u, 0, r1_8, mov2, 0)
235 C(0xe373, ICY, RXY_a, LD, 0, m2_8u, 0, r1_8, mov2, 0)
58a9e35b
RH
236/* INSERT CHARACTERS UNDER MASK */
237 D(0xbf00, ICM, RS_b, Z, 0, a2, r1, 0, icm, 0, 0)
238 D(0xeb81, ICMY, RSY_b, LD, 0, a2, r1, 0, icm, 0, 0)
239 D(0xeb80, ICMH, RSY_b, Z, 0, a2, r1, 0, icm, 0, 32)
facfc864
RH
240/* INSERT IMMEDIATE */
241 D(0xc008, IIHF, RIL_a, EI, r1_o, i2_32u, r1, 0, insi, 0, 0x2020)
242 D(0xc009, IILF, RIL_a, EI, r1_o, i2_32u, r1, 0, insi, 0, 0x2000)
243 D(0xa500, IIHH, RI_a, Z, r1_o, i2_16u, r1, 0, insi, 0, 0x1030)
244 D(0xa501, IIHL, RI_a, Z, r1_o, i2_16u, r1, 0, insi, 0, 0x1020)
245 D(0xa502, IILH, RI_a, Z, r1_o, i2_16u, r1, 0, insi, 0, 0x1010)
246 D(0xa503, IILL, RI_a, Z, r1_o, i2_16u, r1, 0, insi, 0, 0x1000)
6e2704e7
RH
247/* INSERT PROGRAM MASK */
248 C(0xb222, IPM, RRE, Z, 0, 0, r1, 0, ipm, 0)
3bbfbd1f 249
22c37a08
RH
250/* LOAD */
251 C(0x1800, LR, RR_a, Z, 0, r2_o, 0, cond_r1r2_32, mov2, 0)
252 C(0x5800, L, RX_a, Z, 0, a2, new, r1_32, ld32s, 0)
253 C(0xe358, LY, RXY_a, Z, 0, a2, new, r1_32, ld32s, 0)
254 C(0xb904, LGR, RRE, Z, 0, r2_o, 0, r1, mov2, 0)
255 C(0xb914, LGFR, RRE, Z, 0, r2_32s, 0, r1, mov2, 0)
256 C(0xe304, LG, RXY_a, Z, 0, a2, r1, 0, ld64, 0)
257 C(0xe314, LGF, RXY_a, Z, 0, a2, r1, 0, ld32s, 0)
d764a8d1
RH
258 C(0x2800, LDR, RR_a, Z, 0, f2_o, 0, f1, mov2, 0)
259 C(0x6800, LD, RX_a, Z, 0, m2_64, 0, f1, mov2, 0)
260 C(0xed65, LDY, RXY_a, LD, 0, m2_64, 0, f1, mov2, 0)
261 C(0x3800, LER, RR_a, Z, 0, e2, 0, cond_e1e2, mov2, 0)
262 C(0x7800, LE, RX_a, Z, 0, m2_32u, 0, e1, mov2, 0)
263 C(0xed64, LEY, RXY_a, LD, 0, m2_32u, 0, e1, mov2, 0)
264 C(0xb365, LXR, RRE, Z, 0, x2_o, 0, x1, movx, 0)
22c37a08
RH
265/* LOAD IMMEDIATE */
266 C(0xc001, LGFI, RIL_a, EI, 0, i2, 0, r1, mov2, 0)
267/* LOAD RELATIVE LONG */
268 C(0xc40d, LRL, RIL_b, GIE, 0, ri2, new, r1_32, ld32s, 0)
269 C(0xc408, LGRL, RIL_b, GIE, 0, ri2, r1, 0, ld64, 0)
270 C(0xc40c, LGFRL, RIL_b, GIE, 0, ri2, r1, 0, ld32s, 0)
aedec19d
RH
271/* LOAD ADDRESS */
272 C(0x4100, LA, RX_a, Z, 0, a2, 0, r1, mov2, 0)
273 C(0xe371, LAY, RXY_a, LD, 0, a2, 0, r1, mov2, 0)
274/* LOAD ADDRESS RELATIVE LONG */
275 C(0xc000, LARL, RIL_b, Z, 0, ri2, 0, r1, mov2, 0)
11bf2d73
RH
276/* LOAD AND TEST */
277 C(0x1200, LTR, RR_a, Z, 0, r2_o, 0, cond_r1r2_32, mov2, s32)
278 C(0xb902, LTGR, RRE, Z, 0, r2_o, 0, r1, mov2, s64)
279 C(0xb912, LTGFR, RRE, Z, 0, r2_32s, 0, r1, mov2, s64)
280 C(0xe312, LT, RXY_a, EI, 0, a2, new, r1_32, ld32s, s64)
281 C(0xe302, LTG, RXY_a, EI, 0, a2, r1, 0, ld64, s64)
282 C(0xe332, LTGF, RXY_a, GIE, 0, a2, r1, 0, ld32s, s64)
587626f8
RH
283 C(0xb302, LTEBR, RRE, Z, 0, e2, 0, cond_e1e2, mov2, f32)
284 C(0xb312, LTDBR, RRE, Z, 0, f2_o, 0, f1, mov2, f64)
285 C(0xb342, LTXBR, RRE, Z, 0, x2_o, 0, x1, movx, f128)
c698d876
RH
286/* LOAD BYTE */
287 C(0xb926, LBR, RRE, EI, 0, r2_8s, 0, r1_32, mov2, 0)
288 C(0xb906, LGBR, RRE, EI, 0, r2_8s, 0, r1, mov2, 0)
289 C(0xe376, LB, RXY_a, LD, 0, a2, new, r1_32, ld8s, 0)
290 C(0xe377, LGB, RXY_a, LD, 0, a2, r1, 0, ld8s, 0)
b9bca3e5
RH
291/* LOAD COMPLEMENT */
292 C(0x1300, LCR, RR_a, Z, 0, r2, new, r1_32, neg, neg32)
293 C(0xb903, LCGR, RRE, Z, 0, r2, r1, 0, neg, neg64)
294 C(0xb913, LCGFR, RRE, Z, 0, r2_32s, r1, 0, neg, neg64)
5d7fd045
RH
295 C(0xb303, LCEBR, RRE, Z, 0, e2, new, e1, negf32, f32)
296 C(0xb313, LCDBR, RRE, Z, 0, f2_o, f1, 0, negf64, f64)
297 C(0xb343, LCXBR, RRE, Z, 0, x2_o, x1, 0, negf128, f128)
c698d876
RH
298/* LOAD HALFWORD */
299 C(0xb927, LHR, RRE, EI, 0, r2_16s, 0, r1_32, mov2, 0)
300 C(0xb907, LGHR, RRE, EI, 0, r2_16s, 0, r1, mov2, 0)
301 C(0x4800, LH, RX_a, Z, 0, a2, new, r1_32, ld16s, 0)
302 C(0xe378, LHY, RXY_a, LD, 0, a2, new, r1_32, ld16s, 0)
303 C(0xe315, LGH, RXY_a, Z, 0, a2, r1, 0, ld16s, 0)
304/* LOAD HALFWORD IMMEDIATE */
305 C(0xa708, LHI, RI_a, Z, 0, i2, 0, r1_32, mov2, 0)
306 C(0xa709, LGHI, RI_a, Z, 0, i2, 0, r1, mov2, 0)
307/* LOAD HALFWORD RELATIVE LONG */
308 C(0xc405, LHRL, RIL_b, GIE, 0, ri2, new, r1_32, ld16s, 0)
309 C(0xc404, LGHRL, RIL_b, GIE, 0, ri2, r1, 0, ld16s, 0)
22c37a08
RH
310/* LOAD LOGICAL */
311 C(0xb916, LLGFR, RRE, Z, 0, r2_32u, 0, r1, mov2, 0)
312 C(0xe316, LLGF, RXY_a, Z, 0, a2, r1, 0, ld32u, 0)
313/* LOAD LOGICAL RELATIVE LONG */
314 C(0xc40e, LLGFRL, RIL_b, GIE, 0, ri2, r1, 0, ld32u, 0)
c698d876
RH
315/* LOAD LOGICAL CHARACTER */
316 C(0xb994, LLCR, RRE, EI, 0, r2_8u, 0, r1_32, mov2, 0)
317 C(0xb984, LLGCR, RRE, EI, 0, r2_8u, 0, r1, mov2, 0)
318 C(0xe394, LLC, RXY_a, EI, 0, a2, new, r1_32, ld8u, 0)
319 C(0xe390, LLGC, RXY_a, Z, 0, a2, r1, 0, ld8u, 0)
320/* LOAD LOGICAL HALFWORD */
321 C(0xb995, LLHR, RRE, EI, 0, r2_16u, 0, r1_32, mov2, 0)
322 C(0xb985, LLGHR, RRE, EI, 0, r2_16u, 0, r1, mov2, 0)
323 C(0xe395, LLH, RXY_a, EI, 0, a2, new, r1_32, ld16u, 0)
324 C(0xe391, LLGH, RXY_a, Z, 0, a2, r1, 0, ld16u, 0)
325/* LOAD LOGICAL HALFWORD RELATIVE LONG */
326 C(0xc402, LLHRL, RIL_b, GIE, 0, ri2, new, r1_32, ld16u, 0)
327 C(0xc406, LLGHRL, RIL_b, GIE, 0, ri2, r1, 0, ld16u, 0)
ade9dea4
RH
328/* LOAD LOGICAL IMMEDATE */
329 D(0xc00e, LLIHF, RIL_a, EI, 0, i2_32u_shl, 0, r1, mov2, 0, 32)
330 D(0xc00f, LLILF, RIL_a, EI, 0, i2_32u_shl, 0, r1, mov2, 0, 0)
331 D(0xa50c, LLIHH, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 48)
332 D(0xa50d, LLIHL, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 32)
333 D(0xa50e, LLILH, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 16)
334 D(0xa50f, LLILL, RI_a, Z, 0, i2_16u_shl, 0, r1, mov2, 0, 0)
7691c23b
RH
335/* LOAD LOGICAL THIRTY ONE BITS */
336 C(0xb917, LLGTR, RRE, Z, 0, r2_o, r1, 0, llgt, 0)
337 C(0xe317, LLGT, RXY_a, Z, 0, m2_32u, r1, 0, llgt, 0)
b9bca3e5
RH
338/* LOAD NEGATIVE */
339 C(0x1100, LNR, RR_a, Z, 0, r2_32s, new, r1_32, nabs, nabs32)
340 C(0xb901, LNGR, RRE, Z, 0, r2, r1, 0, nabs, nabs64)
341 C(0xb911, LNGFR, RRE, Z, 0, r2_32s, r1, 0, nabs, nabs64)
5d7fd045
RH
342 C(0xb301, LNEBR, RRE, Z, 0, e2, new, e1, nabsf32, f32)
343 C(0xb311, LNDBR, RRE, Z, 0, f2_o, f1, 0, nabsf64, f64)
344 C(0xb341, LNXBR, RRE, Z, 0, x2_o, x1, 0, nabsf128, f128)
b9bca3e5
RH
345/* LOAD POSITIVE */
346 C(0x1000, LPR, RR_a, Z, 0, r2_32s, new, r1_32, abs, abs32)
347 C(0xb900, LPGR, RRE, Z, 0, r2, r1, 0, abs, abs64)
348 C(0xb910, LPGFR, RRE, Z, 0, r2_32s, r1, 0, abs, abs64)
5d7fd045
RH
349 C(0xb300, LPEBR, RRE, Z, 0, e2, new, e1, absf32, f32)
350 C(0xb310, LPDBR, RRE, Z, 0, f2_o, f1, 0, absf64, f64)
351 C(0xb340, LPXBR, RRE, Z, 0, x2_o, x1, 0, absf128, f128)
d54f5865
RH
352/* LOAD REVERSED */
353 C(0xb91f, LRVR, RRE, Z, 0, r2_32u, new, r1_32, rev32, 0)
354 C(0xb90f, LRVGR, RRE, Z, 0, r2_o, r1, 0, rev64, 0)
355 C(0xe31f, LRVH, RXY_a, Z, 0, m2_16u, new, r1_16, rev16, 0)
356 C(0xe31e, LRV, RXY_a, Z, 0, m2_32u, new, r1_32, rev32, 0)
357 C(0xe30f, LRVG, RXY_a, Z, 0, m2_64, r1, 0, rev64, 0)
24db8412
RH
358/* LOAD ZERO */
359 C(0xb374, LZER, RRE, Z, 0, 0, 0, e1, zero, 0)
360 C(0xb375, LZDR, RRE, Z, 0, 0, 0, f1, zero, 0)
361 C(0xb376, LZXR, RRE, Z, 0, 0, 0, x1, zero2, 0)
22c37a08 362
8379bfdb
RH
363/* LOAD FPC */
364 C(0xb29d, LFPC, S, Z, 0, m2_32u, 0, 0, sfpc, 0)
365
587626f8
RH
366/* LOAD LENGTHENED */
367 C(0xb304, LDEBR, RRE, Z, 0, e2, f1, 0, ldeb, 0)
368 C(0xb305, LXDBR, RRE, Z, 0, f2_o, x1, 0, lxdb, 0)
369 C(0xb306, LXEBR, RRE, Z, 0, e2, x1, 0, lxeb, 0)
370 C(0xed04, LDEB, RXE, Z, 0, m2_32u, f1, 0, ldeb, 0)
371 C(0xed05, LXDB, RXE, Z, 0, m2_64, x1, 0, lxdb, 0)
372 C(0xed06, LXEB, RXE, Z, 0, m2_32u, x1, 0, lxeb, 0)
373/* LOAD ROUNDED */
374 C(0xb344, LEDBR, RRE, Z, 0, f2_o, new, e1, ledb, 0)
375 C(0xb345, LDXBR, RRE, Z, 0, x2_o, f1, 0, ldxb, 0)
376 C(0xb346, LEXBR, RRE, Z, 0, x2_o, new, e1, lexb, 0)
377
77f8d6c3
RH
378/* LOAD MULTIPLE */
379 C(0x9800, LM, RS_a, Z, 0, a2, 0, 0, lm32, 0)
380 C(0xeb98, LMY, RSY_a, LD, 0, a2, 0, 0, lm32, 0)
381 C(0xeb04, LMG, RSY_a, Z, 0, a2, 0, 0, lm64, 0)
382/* LOAD MULTIPLE HIGH */
383 C(0xeb96, LMH, RSY_a, Z, 0, a2, 0, 0, lmh, 0)
7df3e93a
RH
384/* LOAD ACCESS MULTIPLE */
385 C(0x9a00, LAM, RS_a, Z, 0, a2, 0, 0, lam, 0)
386 C(0xeb9a, LAMY, RSY_a, LD, 0, a2, 0, 0, lam, 0)
77f8d6c3 387
6a04d76a 388/* MOVE */
af9e5a04 389 C(0xd200, MVC, SS_a, Z, la1, a2, 0, 0, mvc, 0)
6a04d76a
RH
390 C(0xe544, MVHHI, SIL, GIE, la1, i2, 0, m1_16, mov2, 0)
391 C(0xe54c, MVHI, SIL, GIE, la1, i2, 0, m1_32, mov2, 0)
392 C(0xe548, MVGHI, SIL, GIE, la1, i2, 0, m1_64, mov2, 0)
393 C(0x9200, MVI, SI, Z, la1, i2, 0, m1_8, mov2, 0)
394 C(0xeb52, MVIY, SIY, LD, la1, i2, 0, m1_8, mov2, 0)
e1eaada9
RH
395/* MOVE LONG */
396 C(0x0e00, MVCL, RR_a, Z, 0, 0, 0, 0, mvcl, 0)
eb66e6a9
RH
397/* MOVE LONG EXTENDED */
398 C(0xa800, MVCLE, RS_a, Z, 0, a2, 0, 0, mvcle, 0)
ee6c38d5
RH
399/* MOVE PAGE */
400 C(0xb254, MVPG, RRE, Z, r1_o, r2_o, 0, 0, mvpg, 0)
aa31bf60
RH
401/* MOVE STRING */
402 C(0xb255, MVST, RRE, Z, r1_o, r2_o, 0, 0, mvst, 0)
e1eaada9 403
d87aaf93
RH
404/* MULTIPLY */
405 C(0x1c00, MR, RR_a, Z, r1p1_32s, r2_32s, new, r1_D32, mul, 0)
406 C(0x5c00, M, RX_a, Z, r1p1_32s, m2_32s, new, r1_D32, mul, 0)
407 C(0xe35c, MFY, RXY_a, GIE, r1p1_32s, m2_32s, new, r1_D32, mul, 0)
83b00736
RH
408 C(0xb317, MEEBR, RRE, Z, e1, e2, new, e1, meeb, 0)
409 C(0xb31c, MDBR, RRE, Z, f1_o, f2_o, f1, 0, mdb, 0)
410 C(0xb34c, MXBR, RRE, Z, 0, x2_o, x1, 0, mxb, 0)
411 C(0xb30c, MDEBR, RRE, Z, f1_o, e2, f1, 0, mdeb, 0)
412 C(0xb307, MXDBR, RRE, Z, 0, f2_o, x1, 0, mxdb, 0)
413 C(0xed17, MEEB, RXE, Z, e1, m2_32u, new, e1, meeb, 0)
414 C(0xed1c, MDB, RXE, Z, f1_o, m2_64, f1, 0, mdb, 0)
415 C(0xed0c, MDEB, RXE, Z, f1_o, m2_32u, f1, 0, mdeb, 0)
416 C(0xed07, MXDB, RXE, Z, 0, m2_64, x1, 0, mxdb, 0)
d1c04a2b
RH
417/* MULTIPLY HALFWORD */
418 C(0x4c00, MH, RX_a, Z, r1_o, m2_16s, new, r1_32, mul, 0)
419 C(0xe37c, MHY, RXY_a, GIE, r1_o, m2_16s, new, r1_32, mul, 0)
420/* MULTIPLY HALFWORD IMMEDIATE */
421 C(0xa70c, MHI, RI_a, Z, r1_o, i2, new, r1_32, mul, 0)
422 C(0xa70d, MGHI, RI_a, Z, r1_o, i2, r1, 0, mul, 0)
d87aaf93
RH
423/* MULTIPLY LOGICAL */
424 C(0xb996, MLR, RRE, Z, r1p1_32u, r2_32u, new, r1_D32, mul, 0)
425 C(0xe396, ML, RXY_a, Z, r1p1_32u, m2_32u, new, r1_D32, mul, 0)
1ac5889f
RH
426 C(0xb986, MLGR, RRE, Z, r1p1, r2_o, r1_P, 0, mul128, 0)
427 C(0xe386, MLG, RXY_a, Z, r1p1, m2_64, r1_P, 0, mul128, 0)
d1c04a2b
RH
428/* MULTIPLY SINGLE */
429 C(0xb252, MSR, RRE, Z, r1_o, r2_o, new, r1_32, mul, 0)
430 C(0x7100, MS, RX_a, Z, r1_o, m2_32s, new, r1_32, mul, 0)
431 C(0xe351, MSY, RXY_a, LD, r1_o, m2_32s, new, r1_32, mul, 0)
432 C(0xb90c, MSGR, RRE, Z, r1_o, r2_o, r1, 0, mul, 0)
433 C(0xb91c, MSGFR, RRE, Z, r1_o, r2_32s, r1, 0, mul, 0)
434 C(0xe30c, MSG, RXY_a, Z, r1_o, m2_64, r1, 0, mul, 0)
435 C(0xe31c, MSGF, RXY_a, Z, r1_o, m2_32s, r1, 0, mul, 0)
436/* MULTIPLY SINGLE IMMEDIATE */
437 C(0xc201, MSFI, RIL_a, GIE, r1_o, i2, new, r1_32, mul, 0)
438 C(0xc200, MSGFI, RIL_a, GIE, r1_o, i2, r1, 0, mul, 0)
439
722bfec3
RH
440/* MULTIPLY AND ADD */
441 C(0xb30e, MAEBR, RRD, Z, e1, e2, new, e1, maeb, 0)
442 C(0xb31e, MADBR, RRD, Z, f1_o, f2_o, f1, 0, madb, 0)
443 C(0xed0e, MAEB, RXF, Z, e1, m2_32u, new, e1, maeb, 0)
444 C(0xed1e, MADB, RXF, Z, f1_o, m2_64, f1, 0, madb, 0)
445/* MULTIPLY AND SUBTRACT */
446 C(0xb30f, MSEBR, RRD, Z, e1, e2, new, e1, mseb, 0)
447 C(0xb31f, MSDBR, RRD, Z, f1_o, f2_o, f1, 0, msdb, 0)
448 C(0xed0f, MSEB, RXF, Z, e1, m2_32u, new, e1, mseb, 0)
449 C(0xed1f, MSDB, RXF, Z, f1_o, m2_64, f1, 0, msdb, 0)
450
3bbfbd1f
RH
451/* OR */
452 C(0x1600, OR, RR_a, Z, r1, r2, new, r1_32, or, nz32)
453 C(0xb9f6, ORK, RRF_a, DO, r2, r3, new, r1_32, or, nz32)
454 C(0x5600, O, RX_a, Z, r1, m2_32s, new, r1_32, or, nz32)
455 C(0xe356, OY, RXY_a, LD, r1, m2_32s, new, r1_32, or, nz32)
456 C(0xb981, OGR, RRE, Z, r1, r2, r1, 0, or, nz64)
457 C(0xb9e6, OGRK, RRF_a, DO, r2, r3, r1, 0, or, nz64)
458 C(0xe381, OG, RXY_a, Z, r1, m2_64, r1, 0, or, nz64)
0a949039 459 C(0xd600, OC, SS_a, Z, la1, a2, 0, 0, oc, 0)
facfc864
RH
460/* OR IMMEDIATE */
461 D(0xc00c, OIHF, RIL_a, EI, r1_o, i2_32u, r1, 0, ori, 0, 0x2020)
462 D(0xc00d, OILF, RIL_a, EI, r1_o, i2_32u, r1, 0, ori, 0, 0x2000)
463 D(0xa508, OIHH, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1030)
464 D(0xa509, OIHL, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1020)
465 D(0xa50a, OILH, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1010)
466 D(0xa50b, OILL, RI_a, Z, r1_o, i2_16u, r1, 0, ori, 0, 0x1000)
a05d2b6b
RH
467 C(0x9600, OI, SI, Z, m1_8u, i2_8u, new, m1_8, or, nz64)
468 C(0xeb56, OIY, SIY, LD, m1_8u, i2_8u, new, m1_8, or, nz64)
3bbfbd1f 469
cbe24bfa
RH
470/* ROTATE LEFT SINGLE LOGICAL */
471 C(0xeb1d, RLL, RSY_a, Z, r3_o, sh32, new, r1_32, rll32, 0)
472 C(0xeb1c, RLLG, RSY_a, Z, r3_o, sh64, r1, 0, rll64, 0)
473
4600c994
RH
474/* SEARCH STRING */
475 C(0xb25e, SRST, RRE, Z, r1_o, r2_o, 0, 0, srst, 0)
476
d62a4c97
RH
477/* SET ACCESS */
478 C(0xb24e, SAR, RRE, Z, 0, r2_o, 0, 0, sar, 0)
8379bfdb
RH
479/* SET FPC */
480 C(0xb384, SFPC, RRE, Z, 0, r1_o, 0, 0, sfpc, 0)
481
cbe24bfa
RH
482/* SHIFT LEFT SINGLE */
483 D(0x8b00, SLA, RS_a, Z, r1, sh32, new, r1_32, sla, 0, 31)
484 D(0xebdd, SLAK, RSY_a, DO, r3, sh32, new, r1_32, sla, 0, 31)
485 D(0xeb0b, SLAG, RSY_a, Z, r3, sh64, r1, 0, sla, 0, 63)
486/* SHIFT LEFT SINGLE LOGICAL */
487 C(0x8900, SLL, RS_a, Z, r1_o, sh32, new, r1_32, sll, 0)
488 C(0xebdf, SLLK, RSY_a, DO, r3_o, sh32, new, r1_32, sll, 0)
489 C(0xeb0d, SLLG, RSY_a, Z, r3_o, sh64, r1, 0, sll, 0)
490/* SHIFT RIGHT SINGLE */
491 C(0x8a00, SRA, RS_a, Z, r1_32s, sh32, new, r1_32, sra, s32)
492 C(0xebdc, SRAK, RSY_a, DO, r3_32s, sh32, new, r1_32, sra, s32)
493 C(0xeb0a, SRAG, RSY_a, Z, r3_o, sh64, r1, 0, sra, s64)
494/* SHIFT RIGHT SINGLE LOGICAL */
495 C(0x8800, SRL, RS_a, Z, r1_32u, sh32, new, r1_32, srl, 0)
496 C(0xebde, SRLK, RSY_a, DO, r3_32u, sh32, new, r1_32, srl, 0)
497 C(0xeb0c, SRLG, RSY_a, Z, r3_o, sh64, r1, 0, srl, 0)
a79ba339
RH
498/* SHIFT LEFT DOUBLE */
499 D(0x8f00, SLDA, RS_a, Z, r1_D32, sh64, new, r1_D32, sla, 0, 31)
500/* SHIFT LEFT DOUBLE LOGICAL */
501 C(0x8d00, SLDL, RS_a, Z, r1_D32, sh64, new, r1_D32, sll, 0)
502/* SHIFT RIGHT DOUBLE */
503 C(0x8e00, SRDA, RS_a, Z, r1_D32, sh64, new, r1_D32, sra, s64)
504/* SHIFT RIGHT DOUBLE LOGICAL */
505 C(0x8c00, SRDL, RS_a, Z, r1_D32, sh64, new, r1_D32, srl, 0)
cbe24bfa 506
16d7b2a4
RH
507/* SQUARE ROOT */
508 C(0xb314, SQEBR, RRE, Z, 0, e2, new, e1, sqeb, 0)
509 C(0xb315, SQDBR, RRE, Z, 0, f2_o, f1, 0, sqdb, 0)
510 C(0xb316, SQXBR, RRE, Z, 0, x2_o, x1, 0, sqxb, 0)
511 C(0xed14, SQEB, RXE, Z, 0, m2_32u, new, e1, sqeb, 0)
512 C(0xed15, SQDB, RXE, Z, 0, m2_64, f1, 0, sqdb, 0)
513
2b280b97
RH
514/* STORE */
515 C(0x5000, ST, RX_a, Z, r1_o, a2, 0, 0, st32, 0)
516 C(0xe350, STY, RXY_a, LD, r1_o, a2, 0, 0, st32, 0)
517 C(0xe324, STG, RXY_a, Z, r1_o, a2, 0, 0, st64, 0)
00574261
RH
518 C(0x6000, STD, RX_a, Z, f1_o, a2, 0, 0, st64, 0)
519 C(0xed67, STDY, RXY_a, LD, f1_o, a2, 0, 0, st64, 0)
520 C(0x7000, STE, RX_a, Z, e1, a2, 0, 0, st32, 0)
521 C(0xed66, STEY, RXY_a, LD, e1, a2, 0, 0, st32, 0)
2b280b97
RH
522/* STORE RELATIVE LONG */
523 C(0xc40f, STRL, RIL_b, GIE, r1_o, ri2, 0, 0, st32, 0)
524 C(0xc40b, STGRL, RIL_b, GIE, r1_o, ri2, 0, 0, st64, 0)
525/* STORE CHARACTER */
526 C(0x4200, STC, RX_a, Z, r1_o, a2, 0, 0, st8, 0)
527 C(0xe372, STCY, RXY_a, LD, r1_o, a2, 0, 0, st8, 0)
2ae68059
RH
528/* STORE CHARACTERS UNDER MASK */
529 D(0xbe00, STCM, RS_b, Z, r1_o, a2, 0, 0, stcm, 0, 0)
530 D(0xeb2d, STCMY, RSY_b, LD, r1_o, a2, 0, 0, stcm, 0, 0)
531 D(0xeb2c, STCMH, RSY_b, LD, r1_o, a2, 0, 0, stcm, 0, 32)
2b280b97
RH
532/* STORE HALFWORD */
533 C(0x4000, STH, RX_a, Z, r1_o, a2, 0, 0, st16, 0)
534 C(0xe370, STHY, RXY_a, LD, r1_o, a2, 0, 0, st16, 0)
535/* STORE HALFWORD RELATIVE LONG */
536 C(0xc407, STHRL, RIL_b, GIE, r1_o, ri2, 0, 0, st16, 0)
e025e52a
RH
537/* STORE REVERSED */
538 C(0xe33f, STRVH, RXY_a, Z, la2, r1_16u, new, m1_16, rev16, 0)
539 C(0xe33e, STRV, RXY_a, Z, la2, r1_32u, new, m1_32, rev32, 0)
540 C(0xe32f, STRVG, RXY_a, Z, la2, r1_o, new, m1_64, rev64, 0)
2b280b97 541
ea20490f
RH
542/* STORE FPC */
543 C(0xb29c, STFPC, S, Z, 0, a2, new, m2_32, efpc, 0)
544
77f8d6c3
RH
545/* STORE MULTIPLE */
546 D(0x9000, STM, RS_a, Z, 0, a2, 0, 0, stm, 0, 4)
547 D(0xeb90, STMY, RSY_a, LD, 0, a2, 0, 0, stm, 0, 4)
548 D(0xeb24, STMG, RSY_a, Z, 0, a2, 0, 0, stm, 0, 8)
549/* STORE MULTIPLE HIGH */
550 C(0xeb26, STMH, RSY_a, Z, 0, a2, 0, 0, stmh, 0)
7df3e93a
RH
551/* STORE ACCESS MULTIPLE */
552 C(0x9b00, STAM, RS_a, Z, 0, a2, 0, 0, stam, 0)
553 C(0xeb9b, STAMY, RSY_a, LD, 0, a2, 0, 0, stam, 0)
77f8d6c3 554
ad044d09
RH
555/* SUBTRACT */
556 C(0x1b00, SR, RR_a, Z, r1, r2, new, r1_32, sub, subs32)
557 C(0xb9f9, SRK, RRF_a, DO, r2, r3, new, r1_32, sub, subs32)
558 C(0x5b00, S, RX_a, Z, r1, m2_32s, new, r1_32, sub, subs32)
559 C(0xe35b, SY, RXY_a, LD, r1, m2_32s, new, r1_32, sub, subs32)
560 C(0xb909, SGR, RRE, Z, r1, r2, r1, 0, sub, subs64)
561 C(0xb919, SGFR, RRE, Z, r1, r2_32s, r1, 0, sub, subs64)
562 C(0xb9e9, SGRK, RRF_a, DO, r2, r3, r1, 0, sub, subs64)
563 C(0xe309, SG, RXY_a, Z, r1, m2_64, r1, 0, sub, subs64)
564 C(0xe319, SGF, RXY_a, Z, r1, m2_32s, r1, 0, sub, subs64)
1a800a2d
RH
565 C(0xb30b, SEBR, RRE, Z, e1, e2, new, e1, seb, f32)
566 C(0xb31b, SDBR, RRE, Z, f1_o, f2_o, f1, 0, sdb, f64)
567 C(0xb34b, SXBR, RRE, Z, 0, x2_o, x1, 0, sxb, f128)
568 C(0xed0b, SEB, RXE, Z, e1, m2_32u, new, e1, seb, f32)
569 C(0xed1b, SDB, RXE, Z, f1_o, m2_64, f1, 0, sdb, f64)
3f4cb56a
RH
570/* SUBTRACT HALFWORD */
571 C(0x4b00, SH, RX_a, Z, r1, m2_16s, new, r1_32, sub, subs32)
572 C(0xe37b, SHY, RXY_a, LD, r1, m2_16s, new, r1_32, sub, subs32)
ad044d09
RH
573/* SUBTRACT LOGICAL */
574 C(0x1f00, SLR, RR_a, Z, r1, r2, new, r1_32, sub, subu32)
575 C(0xb9fb, SLRK, RRF_a, DO, r2, r3, new, r1_32, sub, subu32)
576 C(0x5f00, SL, RX_a, Z, r1, m2_32u, new, r1_32, sub, subu32)
577 C(0xe35f, SLY, RXY_a, LD, r1, m2_32u, new, r1_32, sub, subu32)
578 C(0xb90b, SLGR, RRE, Z, r1, r2, r1, 0, sub, subu64)
579 C(0xb91b, SLGFR, RRE, Z, r1, r2_32u, r1, 0, sub, subu64)
580 C(0xb9eb, SLGRK, RRF_a, DO, r2, r3, r1, 0, sub, subu64)
581 C(0xe30b, SLG, RXY_a, Z, r1, m2_64, r1, 0, sub, subu64)
582 C(0xe31b, SLGF, RXY_a, Z, r1, m2_32u, r1, 0, sub, subu64)
583/* SUBTRACT LOGICAL IMMEDIATE */
584 C(0xc205, SLFI, RIL_a, EI, r1, i2_32u, new, r1_32, sub, subu32)
585 C(0xc204, SLGFI, RIL_a, EI, r1, i2_32u, r1, 0, sub, subu64)
4e4bb438
RH
586/* SUBTRACT LOGICAL WITH BORROW */
587 C(0xb999, SLBR, RRE, Z, r1, r2, new, r1_32, subb, subb32)
588 C(0xb989, SLBGR, RRE, Z, r1, r2, r1, 0, subb, subb64)
589 C(0xe399, SLB, RXY_a, Z, r1, m2_32u, new, r1_32, subb, subb32)
590 C(0xe389, SLBG, RXY_a, Z, r1, m2_64, r1, 0, subb, subb64)
00d2dc19 591
b9836c1a
RH
592/* SUPERVISOR CALL */
593 C(0x0a00, SVC, I, Z, 0, 0, 0, 0, svc, 0)
594
31aa97d1
RH
595/* TEST DATA CLASS */
596 C(0xed10, TCEB, RXE, Z, e1, a2, 0, 0, tceb, 0)
597 C(0xed11, TCDB, RXE, Z, f1_o, a2, 0, 0, tcdb, 0)
598 C(0xed12, TCXB, RXE, Z, x1_o, a2, 0, 0, tcxb, 0)
599
00d2dc19
RH
600/* TEST UNDER MASK */
601 C(0x9100, TM, SI, Z, m1_8u, i2_8u, 0, 0, 0, tm32)
602 C(0xeb51, TMY, SIY, LD, m1_8u, i2_8u, 0, 0, 0, tm32)
603 D(0xa702, TMHH, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 48)
604 D(0xa703, TMHL, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 32)
605 D(0xa700, TMLH, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 16)
606 D(0xa701, TMLL, RI_a, Z, r1_o, i2_16u_shl, 0, 0, 0, tm64, 0)
d9a39927 607
0a949039
RH
608/* TRANSLATE */
609 C(0xdc00, TR, SS_a, Z, la1, a2, 0, 0, tr, 0)
610
611/* UNPACK */
612 /* Really format SS_b, but we pack both lengths into one argument
613 for the helper call, so we might as well leave one 8-bit field. */
614 C(0xf300, UNPK, SS_a, Z, la1, a2, 0, 0, unpk, 0)
615
d9a39927 616#ifndef CONFIG_USER_ONLY
972e35b9
RH
617/* DIAGNOSE (KVM hypercall) */
618 C(0x8300, DIAG, RX_a, Z, 0, 0, 0, 0, diag, 0)
504488b8
RH
619/* LOAD CONTROL */
620 C(0xb700, LCTL, RS_a, Z, 0, a2, 0, 0, lctl, 0)
3e398cf9 621 C(0xeb2f, LCTLG, RSY_a, Z, 0, a2, 0, 0, lctlg, 0)
8b5ff571
RH
622/* LOAD PSW */
623 C(0x8200, LPSW, S, Z, 0, a2, 0, 0, lpsw, 0)
d8fe4a9c
RH
624/* LOAD REAL ADDRESS */
625 C(0xb100, LRA, RX_a, Z, 0, a2, r1, 0, lra, 0)
626 C(0xe313, LRAY, RXY_a, LD, 0, a2, r1, 0, lra, 0)
627 C(0xe303, LRAG, RXY_a, Z, 0, a2, r1, 0, lra, 0)
97c3ab61
RH
628/* MOVE TO PRIMARY */
629 C(0xda00, MVCP, SS_d, Z, la1, a2, 0, 0, mvcp, 0)
630/* MOVE TO SECONDARY */
631 C(0xdb00, MVCS, SS_d, Z, la1, a2, 0, 0, mvcs, 0)
0568d8aa
RH
632/* PURGE TLB */
633 C(0xb20d, PTLB, S, Z, 0, 0, 0, 0, ptlb, 0)
d9a39927
RH
634/* SET ADDRESSING MODE */
635 /* We only do 64-bit, so accept this as a no-op.
636 Let SAM24 and SAM31 signal illegal instruction. */
637 C(0x010e, SAM64, E, Z, 0, 0, 0, 0, 0, 0)
35289799
RH
638/* SET CLOCK */
639 /* ??? Not implemented - is it necessary? */
640 C(0xb204, SCK, S, Z, 0, 0, 0, 0, 0, 0)
dd3eb7b5
RH
641/* SET CLOCK COMPARATOR */
642 C(0xb206, SCKC, S, Z, 0, m2_64, 0, 0, sckc, 0)
c4f0a863
RH
643/* SET CPU TIMER */
644 C(0xb208, SPT, S, Z, 0, m2_64, 0, 0, spt, 0)
e805a0d3
RH
645/* SET PREFIX */
646 C(0xb210, SPX, S, Z, 0, m2_32u, 0, 0, spx, 0)
28d55556
RH
647/* SET PSW KEY FROM ADDRESS */
648 C(0xb20a, SPKA, S, Z, 0, a2, 0, 0, spka, 0)
7d30bb73
RH
649/* SET SYSTEM MASK */
650 C(0x8000, SSM, S, Z, 0, m2_8u, 0, 0, ssm, 0)
0c240015
RH
651/* SIGNAL PROCESSOR */
652 C(0xae00, SIGP, RS_a, Z, r3_o, a2, 0, 0, sigp, 0)
434c91a5
RH
653/* STORE CLOCK */
654 C(0xb205, STCK, S, Z, la2, 0, new, m1_64, stck, 0)
655 C(0xb27c, STCKF, S, Z, la2, 0, new, m1_64, stck, 0)
dd3eb7b5
RH
656/* STORE CLOCK COMPARATOR */
657 C(0xb207, STCKC, S, Z, la2, 0, new, m1_64, stckc, 0)
504488b8
RH
658/* STORE CONTROL */
659 C(0xb600, STCTL, RS_a, Z, 0, a2, 0, 0, stctl, 0)
3e398cf9 660 C(0xeb25, STCTG, RSY_a, Z, 0, a2, 0, 0, stctg, 0)
411fea3d
RH
661/* STORE CPU ADDRESS */
662 C(0xb212, STAP, S, Z, la2, 0, new, m1_16, stap, 0)
71bd6669
RH
663/* STORE CPU ID */
664 C(0xb202, STIDP, S, Z, la2, 0, new, m1_64, stidp, 0)
c4f0a863
RH
665/* STORE CPU TIMER */
666 C(0xb209, STPT, S, Z, la2, 0, new, m1_64, stpt, 0)
e805a0d3
RH
667/* STORE PREFIX */
668 C(0xb211, STPX, S, Z, la2, 0, new, m1_32, stpx, 0)
145cdb40
RH
669/* STORE THEN AND SYSTEM MASK */
670 C(0xac00, STNSM, SI, Z, la1, 0, 0, 0, stnosm, 0)
671/* STORE THEN OR SYSTEM MASK */
672 C(0xad00, STOSM, SI, Z, la1, 0, 0, 0, stnosm, 0)
112bf079
RH
673/* TEST PROTECTION */
674 C(0xe501, TPROT, SSE, Z, la1, a2, 0, 0, tprot, 0)
d9a39927 675#endif /* CONFIG_USER_ONLY */