Statistics
| Branch: | Revision:

root / target-s390x / insn-data.def @ 5cc69c54

History | View | Annotate | Download (34.4 kB)

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