# S/390 opcodes list. Use s390-mkopc to convert it into the opcode table.
# Copyright (C) 2000-2017 Free Software Foundation, Inc.
# Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
5a a RX_RRRD "add" g5 esa,zarch
6a ad RX_FRRD "add normalized (long)" g5 esa,zarch
2a adr RR_FF "add normalized (long)" g5 esa,zarch
7a ae RX_FRRD "add normalized (short)" g5 esa,zarch
3a aer RR_FF "add normalized (short)" g5 esa,zarch
4a ah RX_RRRD "add halfword" g5 esa,zarch
5e al RX_RRRD "add logical" g5 esa,zarch
1e alr RR_RR "add logical" g5 esa,zarch
fa ap SS_LLRDRD "add decimal" g5 esa,zarch
1a ar RR_RR "add" g5 esa,zarch
7e au RX_FRRD "add unnormalized (short)" g5 esa,zarch
3e aur RR_FF "add unnormalized (short)" g5 esa,zarch
6e aw RX_FRRD "add unnormalized (long)" g5 esa,zarch
2e awr RR_FF "add unnormalized (long)" g5 esa,zarch
36 axr RR_FEFE "add normalized" g5 esa,zarch
b240 bakr RRE_RR "branch and stack" g5 esa,zarch
45 bal RX_RRRD "branch and link" g5 esa,zarch
05 balr RR_RR "branch and link" g5 esa,zarch
4d bas RX_RRRD "branch and save" g5 esa,zarch
0d basr RR_RR "branch and save" g5 esa,zarch
0c bassm RR_RR "branch and save and set mode" g5 esa,zarch
47 bc RX_URRD "branch on condition" g5 esa,zarch
07 bcr RR_UR "branch on condition" g5 esa,zarch
46 bct RX_RRRD "branch on count" g5 esa,zarch
06 bctr RR_RR "branch on count" g5 esa,zarch
b258 bsg RRE_RR "branch in subspace group" g5 esa,zarch
0b bsm RR_RR "branch and set mode" g5 esa,zarch
86 bxh RS_RRRD "branch on index high" g5 esa,zarch
87 bxle RS_RRRD "branch on index low or equal" g5 esa,zarch
59 c RX_RRRD "compare" g5 esa,zarch
69 cd RX_FRRD "compare (long)" g5 esa,zarch
29 cdr RR_FF "compare (long)" g5 esa,zarch
bb cds RS_RERERD "compare double and swap" g5 esa,zarch
79 ce RX_FRRD "compare (short)" g5 esa,zarch
39 cer RR_FF "compare (short)" g5 esa,zarch
b21a cfc S_RD "compare and form codeword" g5 esa,zarch
49 ch RX_RRRD "compare halfword" g5 esa,zarch
55 cl RX_RRRD "compare logical" g5 esa,zarch
d5 clc SS_L0RDRD "compare logical" g5 esa,zarch
0f clcl RR_RR "compare logical long" g5 esa,zarch
95 cli SI_URD "compare logical" g5 esa,zarch
bd clm RS_RURD "compare logical characters under mask" g5 esa,zarch
15 clr RR_RR "compare logical" g5 esa,zarch
b25d clst RRE_RR "compare logical string" g5 esa,zarch
f9 cp SS_LLRDRD "compare decimal" g5 esa,zarch
b24d cpya RRE_AA "copy access" g5 esa,zarch
19 cr RR_RR "compare" g5 esa,zarch
ba cs RS_RRRD "compare and swap" g5 esa,zarch
b230 csch S_00 "clear subchannel" g5 esa,zarch
b257 cuse RRE_RERE "compare until substring equal" g5 esa,zarch
b250 csp RRE_RR "compare and swap and purge" g5 esa,zarch
4f cvb RX_RRRD "convert to binary" g5 esa,zarch
4e cvd RX_RRRD "convert to decimal" g5 esa,zarch
5d d RX_RERRD "divide" g5 esa,zarch
6d dd RX_FRRD "divide (long)" g5 esa,zarch
2d ddr RR_FF "divide (long)" g5 esa,zarch
7d de RX_FRRD "divide (short)" g5 esa,zarch
3d der RR_FF "divide (short)" g5 esa,zarch
83 diag RS_RRRD "diagnose" g5 esa,zarch
fd dp SS_LLRDRD "divide decimal" g5 esa,zarch
1d dr RR_RER "divide" g5 esa,zarch
b22d dxr RRE_FEFE "divide (ext.)" g5 esa,zarch
b24f ear RRE_RA "extract access" g5 esa,zarch
de ed SS_L0RDRD "edit" g5 esa,zarch
df edmk SS_L0RDRD "edit and mark" g5 esa,zarch
b226 epar RRE_R0 "extract primary ASN" g5 esa,zarch
b249 ereg RRE_RR "extract stacked registers" g5 esa,zarch
b227 esar RRE_R0 "extract secondary ASN" g5 esa,zarch
b24a esta RRE_RR "extract stacked state" g5 esa,zarch
44 ex RX_RRRD "execute" g5 esa,zarch
24 hdr RR_FF "halve (long)" g5 esa,zarch
34 her RR_FF "halve (short)" g5 esa,zarch
b231 hsch S_00 "halt subchannel" g5 esa,zarch
b224 iac RRE_R0 "insert address space control" g5 esa,zarch
43 ic RX_RRRD "insert character" g5 esa,zarch
bf icm RS_RURD "insert characters under mask" g5 esa,zarch
b20b ipk S_00 "insert PSW key" g5 esa,zarch
b222 ipm RRE_R0 "insert program mask" g5 esa,zarch
b221 ipte RRE_RR "invalidate page table entry" g5 esa,zarch
b229 iske RRE_RR "insert storage key extended" g5 esa,zarch
b223 ivsk RRE_RR "insert virtual storage key" g5 esa,zarch
58 l RX_RRRD "load" g5 esa,zarch
41 la RX_RRRD "load address" g5 esa,zarch
51 lae RX_RRRD "load address extended" g5 esa,zarch
9a lam RS_AARD "load access multiple" g5 esa,zarch
e500 lasp SSE_RDRD "load address space parameters" g5 esa,zarch
23 lcdr RR_FF "load complement (long)" g5 esa,zarch
33 lcer RR_FF "load complement (short)" g5 esa,zarch
13 lcr RR_RR "load complement" g5 esa,zarch
b7 lctl RS_CCRD "load control" g5 esa,zarch
68 ld RX_FRRD "load (long)" g5 esa,zarch
28 ldr RR_FF "load (long)" g5 esa,zarch
78 le RX_FRRD "load (short)" g5 esa,zarch
38 ler RR_FF "load (short)" g5 esa,zarch
48 lh RX_RRRD "load halfword" g5 esa,zarch
98 lm RS_RRRD "load multiple" g5 esa,zarch
21 lndr RR_FF "load negative (long)" g5 esa,zarch
31 lner RR_FF "load negative (short)" g5 esa,zarch
11 lnr RR_RR "load negative" g5 esa,zarch
20 lpdr RR_FF "load positive (long)" g5 esa,zarch
30 lper RR_FF "load positive (short)" g5 esa,zarch
10 lpr RR_RR "load positive" g5 esa,zarch
82 lpsw S_RD "load PSW" g5 esa,zarch
18 lr RR_RR "load" g5 esa,zarch
b1 lra RX_RRRD "load real address" g5 esa,zarch
25 ldxr RR_FFE "load rounded (ext. to long)" g5 esa,zarch
25 lrdr RR_FFE "load rounded (ext. to long)" g5 esa,zarch
35 ledr RR_FF "load rounded (long to short)" g5 esa,zarch
35 lrer RR_FF "load rounded (long to short)" g5 esa,zarch
22 ltdr RR_FF "load and test (long)" g5 esa,zarch
32 lter RR_FF "load and test (short)" g5 esa,zarch
12 ltr RR_RR "load and test" g5 esa,zarch
b24b lura RRE_RR "load using real address" g5 esa,zarch
5c m RX_RERRD "multiply" g5 esa,zarch
af mc SI_URD "monitor call" g5 esa,zarch
6c md RX_FRRD "multiply (long)" g5 esa,zarch
2c mdr RR_FF "multiply (long)" g5 esa,zarch
7c mde RX_FRRD "multiply (short to long)" g5 esa,zarch
7c me RX_FRRD "multiply (short to long)" g5 esa,zarch
3c mder RR_FF "multiply short to long hfp" g5 esa,zarch
3c mer RR_FF "multiply (short to long)" g5 esa,zarch
4c mh RX_RRRD "multiply halfword" g5 esa,zarch
fc mp SS_LLRDRD "multiply decimal" g5 esa,zarch
1c mr RR_RER "multiply" g5 esa,zarch
b232 msch S_RD "modify subchannel" g5 esa,zarch
b247 msta RRE_R0 "modify stacked state" g5 esa,zarch
d2 mvc SS_L0RDRD "move" g5 esa,zarch
e50f mvcdk SSE_RDRD "move with destination key" g5 esa,zarch
e8 mvcin SS_L0RDRD "move inverse" g5 esa,zarch
d9 mvck SS_RRRDRD "move with key" g5 esa,zarch
0e mvcl RR_RR "move long" g5 esa,zarch
da mvcp SS_RRRDRD "move to primary" g5 esa,zarch
db mvcs SS_RRRDRD "move to secondary" g5 esa,zarch
e50e mvcsk SSE_RDRD "move with source key" g5 esa,zarch
92 mvi SI_URD "move" g5 esa,zarch
d1 mvn SS_L0RDRD "move numerics" g5 esa,zarch
f1 mvo SS_LLRDRD "move with offset" g5 esa,zarch
b254 mvpg RRE_RR "move page" g5 esa,zarch
b255 mvst RRE_RR "move string" g5 esa,zarch
d3 mvz SS_L0RDRD "move zones" g5 esa,zarch
67 mxd RX_FERRD "multiply (long to ext.)" g5 esa,zarch
27 mxdr RR_FEF "multiply (long to ext.)" g5 esa,zarch
26 mxr RR_FEFE "multiply (ext.)" g5 esa,zarch
54 n RX_RRRD "AND" g5 esa,zarch
d4 nc SS_L0RDRD "AND" g5 esa,zarch
94 ni SI_URD "AND" g5 esa,zarch
14 nr RR_RR "AND" g5 esa,zarch
56 o RX_RRRD "OR" g5 esa,zarch
d6 oc SS_L0RDRD "OR" g5 esa,zarch
96 oi SI_URD "OR" g5 esa,zarch
16 or RR_RR "OR" g5 esa,zarch
f2 pack SS_LLRDRD "pack" g5 esa,zarch
b248 palb RRE_00 "purge ALB" g5 esa,zarch
b218 pc S_RD "program call" g5 esa,zarch
0101 pr E "program return" g5 esa,zarch
b228 pt RRE_RR "program transfer" g5 esa,zarch
b20d ptlb S_00 "purge TLB" g5 esa,zarch
b23b rchp S_00 "reset channel path" g5 esa,zarch
b22a rrbe RRE_RR "reset reference bit extended" g5 esa,zarch
b238 rsch S_00 "resume subchannel" g5 esa,zarch
5b s RX_RRRD "subtract" g5 esa,zarch
b219 sac S_RD "set address space control" g5 esa,zarch
b279 sacf S_RD "set address space control fast" g5 esa,zarch
b237 sal S_00 "set address limit" g5 esa,zarch
b24e sar RRE_AR "set access" g5 esa,zarch
b23c schm S_00 "set channel monitor" g5 esa,zarch
b204 sck S_RD "set clock" g5 esa,zarch
b