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