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