# S/390 opcodes list. Use s390-mkopc to convert it into the opcode table.
-# Copyright 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+# Copyright 2000, 2001, 2003, 2004, 2005, 2007, 2008, 2009
+# 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
71 ms RX_RRRD "multiply single" g5 esa,zarch
a700 tmh RI_RU "test under mask high" g5 esa,zarch
a701 tml RI_RU "test under mask low" g5 esa,zarch
-0700 nopr RR_0R "no operation" g5 esa,zarch
+0700 nopr RR_0R_OPT "no operation" g5 esa,zarch
0700 b*8r RR_0R "conditional branch" g5 esa,zarch
07f0 br RR_0R "unconditional branch" g5 esa,zarch
-4700 nop RX_0RRD "no operation" g5 esa,zarch
+4700 nop RX_0RRD_OPT "no operation" g5 esa,zarch
4700 b*8 RX_0RRD "conditional branch" g5 esa,zarch
47f0 b RX_0RRD "unconditional branch" g5 esa,zarch
a704 j*8 RI_0P "conditional jump" g5 esa,zarch
b990 trtt RRE_RR "translate two to two" g5 esa,zarch
ea unpka SS_L0RDRD "unpack ascii" g5 esa,zarch
e2 unpku SS_L0RDRD "unpack unicode" g5 esa,zarch
-b358 thder RRE_RR "convert short bfp to long hfp" g5 esa,zarch
-b359 thdr RRE_RR "convert long bfp to long hfp" g5 esa,zarch
+b358 thder RRE_FF "convert short bfp to long hfp" g5 esa,zarch
+b359 thdr RRE_FF "convert long bfp to long hfp" g5 esa,zarch
b350 tbedr RRF_U0FF "convert long hfp to short bfp" g5 esa,zarch
b351 tbdr RRF_U0FF "convert long hfp to long bfp" g5 esa,zarch
b374 lzer RRE_F0 "load short zero" g5 esa,zarch
b3b6 cxfr RRE_FR "convert from fixed 32 to extended hfp" g5 esa,zarch
b3b5 cdfr RRE_FR "convert from fixed 32 to long hfp" g5 esa,zarch
b3b4 cefr RRE_FR "convert from fixed 32 to short hfp" g5 esa,zarch
-b3ba cfxr RRF_U0RF "convert to fixed extended hfp to 32" z900 zarch
-b3b9 cfdr RRF_U0RF "convert to fixed long hfp to 32" z900 zarch
-b3b8 cfer RRF_U0RF "convert to fixed short hfp to 32" z900 zarch
+b3ba cfxr RRF_U0RF "convert to fixed extended hfp to 32" z900 esa,zarch
+b3b9 cfdr RRF_U0RF "convert to fixed long hfp to 32" z900 esa,zarch
+b3b8 cfer RRF_U0RF "convert to fixed short hfp to 32" z900 esa,zarch
b362 ltxr RRE_FF "load and test extended hfp" g5 esa,zarch
b363 lcxr RRE_FF "load complement extended hfp" g5 esa,zarch
b367 fixr RRE_FF "load fp integer extended hfp" g5 esa,zarch
ed0000000037 mee RXE_FRRD "multiply short hfp" g5 esa,zarch
b336 sqxr RRE_FF "square root extended hfp" g5 esa,zarch
ed0000000034 sqe RXE_FRRD "square root short hfp" g5 esa,zarch
+ed0000000035 sqd RXE_FRRD "square root long hfp" g5 esa,zarch
b263 cmpsc RRE_RR "compression call" g5 esa,zarch
eb00000000c0 tp RSL_R0RD "test decimal" g5 esa,zarch
b365 lxr RRE_FF "load extended fp" g5 esa,zarch
e30000000051 msy RXY_RRRD "multiply single with long offset" z990 zarch
eb0000000056 oiy SIY_URD "or immediate with long offset" z990 zarch
e30000000056 oy RXY_RRRD "or with long offset" z990 zarch
-ed0000000067 stdy RXY_FRRD "load (long) with long offset" z990 zarch
-ed0000000066 stey RXY_FRRD "load (short) with long offset" z990 zarch
+ed0000000067 stdy RXY_FRRD "store (long) with long offset" z990 zarch
+ed0000000066 stey RXY_FRRD "store (short) with long offset" z990 zarch
e30000000050 sty RXY_RRRD "store with long offset" z990 zarch
eb000000009b stamy RSY_AARD "store access multiple with long offset" z990 zarch
e30000000072 stcy RXY_RRRD "store character with long offset" z990 zarch
eb0000000045 bxleg RSY_RRRD "branch on index low or equal 64" z990 zarch
eb0000000080 icmh RSY_RURD "insert characters under mask high with long offset" z990 zarch
eb000000008e mvclu RSY_RRRD "move long unicode" z990 esa,zarch
-eb000000008f clclu RSY_RRRD "compare logical long unicode with long offset" z990 zarch
+eb000000008f clclu RSY_RRRD "compare logical long unicode with long offset" z990 esa,zarch
eb0000000096 lmh RSY_RRRD "load multiple high" z990 zarch
# new z990 instructions
b98a cspg RRE_RR "compare and swap and purge" z990 zarch
c00d oilf RIL_RU "or immediate low" z9-109 zarch
c205 slfi RIL_RU "subtract logical immediate 32" z9-109 zarch
c204 slgfi RIL_RU "subtract logical immediate 64<32" z9-109 zarch
+0104 ptff E "perform timing facility function" z9-109 zarch
# z9-109 store facility list extended
b2b0 stfle S_RD "store facility list extended" z9-109 zarch
# z9-109 store clock fast
b3dd ldxtr RRF_UUFF "load rounded extended dfp" z9-ec zarch
b3d0 mdtr RRR_F0FF "multiply long dfp" z9-ec zarch
b3d8 mxtr RRR_F0FF "multiply extended dfp" z9-ec zarch
-b3f5 qadtr RRF_FFFU "Quantize long dfp" z9-ec zarch
-b3fd qaxtr RRF_FFFU "Quantize extended dfp" z9-ec zarch
+b3f5 qadtr RRF_FUFF "Quantize long dfp" z9-ec zarch
+b3fd qaxtr RRF_FUFF "Quantize extended dfp" z9-ec zarch
b3f7 rrdtr RRF_FFRU "Reround long dfp" z9-ec zarch
b3ff rrxtr RRF_FFRU "Reround extended dfp" z9-ec zarch
b2b9 srnmt S_RD "set rounding mode dfp" z9-ec zarch