This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
New insns for S/390.
- To: binutils at sources dot redhat dot com
- Subject: New insns for S/390.
- From: schwidefsky at de dot ibm dot com
- Date: Fri, 16 Mar 2001 10:24:30 +0100
Hi,
while reading the S/390 bible (Principles of Operation) I discovered that
I missed some instructions. Here is a patch:
diff -urN src/opcodes/s390-opc.c src-s390/opcodes/s390-opc.c
--- src/opcodes/s390-opc.c Thu Mar 15 11:50:43 2001
+++ src-s390/opcodes/s390-opc.c Thu Mar 15 12:33:19 2001
@@ -405,6 +405,7 @@
{ "brxlg", OP48(0xec0000000045LL), MASK_RIE_A, INSTR_RIE_A, 2},
{ "brxhg", OP48(0xec0000000044LL), MASK_RIE_A, INSTR_RIE_A, 2},
{ "lmh", OP48(0xeb0000000096LL), MASK_RSE_R, INSTR_RSE_R, 2},
+ { "mvclu", OP48(0xeb000000008eLL), MASK_RSE_R, INSTR_RSE_R, 2},
{ "icmh", OP48(0xeb0000000080LL), MASK_RSE_M, INSTR_RSE_M, 2},
{ "bxleg", OP48(0xeb0000000045LL), MASK_RSE_R, INSTR_RSE_R, 2},
{ "bxhg", OP48(0xeb0000000044LL), MASK_RSE_R, INSTR_RSE_R, 2},
@@ -424,6 +425,8 @@
{ "slag", OP48(0xeb000000000bLL), MASK_RSE_R, INSTR_RSE_R, 2},
{ "srag", OP48(0xeb000000000aLL), MASK_RSE_R, INSTR_RSE_R, 2},
{ "lmg", OP48(0xeb0000000004LL), MASK_RSE_R, INSTR_RSE_R, 2},
+ { "unpka", OP8(0xeaLL), MASK_SS_L, INSTR_SS_L, 2},
+ { "pka", OP8(0xe9LL), MASK_SS_L, INSTR_SS_L, 2},
{ "mvcin", OP8(0xe8LL), MASK_SS_L, INSTR_SS_L, 3},
{ "mvcdk", OP16(0xe50fLL), MASK_SSE, INSTR_SSE, 3},
{ "mvcsk", OP16(0xe50eLL), MASK_SSE, INSTR_SSE, 3},
@@ -476,6 +479,8 @@
{ "ag", OP48(0xe30000000008LL), MASK_RXE, INSTR_RXE, 2},
{ "lg", OP48(0xe30000000004LL), MASK_RXE, INSTR_RXE, 2},
{ "lrag", OP48(0xe30000000003LL), MASK_RXE, INSTR_RXE, 2},
+ { "unpku", OP8(0xe2LL), MASK_SS_L, INSTR_SS_L, 2},
+ { "pku", OP8(0xe1LL), MASK_SS_L, INSTR_SS_L, 2},
{ "edmk", OP8(0xdfLL), MASK_SS_L, INSTR_SS_L, 3},
{ "ed", OP8(0xdeLL), MASK_SS_L, INSTR_SS_L, 3},
{ "trt", OP8(0xddLL), MASK_SS_L, INSTR_SS_L, 3},
@@ -522,6 +527,10 @@
{ "alcr", OP16(0xb998LL), MASK_RRE, INSTR_RRE, 2},
{ "dlr", OP16(0xb997LL), MASK_RRE, INSTR_RRE, 2},
{ "mlr", OP16(0xb996LL), MASK_RRE, INSTR_RRE, 2},
+ { "troo", OP16(0xb993LL), MASK_RRE, INSTR_RRE, 2},
+ { "trot", OP16(0xb992LL), MASK_RRE, INSTR_RRE, 2},
+ { "trto", OP16(0xb991LL), MASK_RRE, INSTR_RRE, 2},
+ { "trtt", OP16(0xb990LL), MASK_RRE, INSTR_RRE, 2},
{ "epsw", OP16(0xb98dLL), MASK_RRE, INSTR_RRE, 2},
{ "slbgr", OP16(0xb989LL), MASK_RRE, INSTR_RRE, 2},
{ "alcgr", OP16(0xb988LL), MASK_RRE, INSTR_RRE, 2},
@@ -586,10 +595,17 @@
{ "cefbr", OP16(0xb394LL), MASK_RRE_F, INSTR_RRE_F, 3},
{ "efpc", OP16(0xb38cLL), MASK_RRE, INSTR_RRE, 3},
{ "sfpc", OP16(0xb384LL), MASK_RRE, INSTR_RRE, 3},
+ { "lzxr", OP16(0xb376LL), MASK_RRE_R, INSTR_RRE_R, 2},
+ { "lzdr", OP16(0xb375LL), MASK_RRE_R, INSTR_RRE_R, 2},
+ { "lzer", OP16(0xb374LL), MASK_RRE_R, INSTR_RRE_R, 2},
{ "fidbr", OP16(0xb35fLL), MASK_RRF_M, INSTR_RRF_M, 3},
{ "didbr", OP16(0xb35bLL), MASK_RRF_RM, INSTR_RRF_RM, 3},
+ { "thdr", OP16(0xb359LL), MASK_RRE, INSTR_RRE, 2},
+ { "thder", OP16(0xb358LL), MASK_RRE, INSTR_RRE, 2},
{ "fiebr", OP16(0xb357LL), MASK_RRF_M, INSTR_RRF_M, 3},
{ "diebr", OP16(0xb353LL), MASK_RRF_RM, INSTR_RRF_RM, 3},
+ { "tbdr", OP16(0xb351LL), MASK_RRF_M, INSTR_RRF_M, 2},
+ { "tbedr", OP16(0xb350LL), MASK_RRF_M, INSTR_RRF_M, 2},
{ "dxbr", OP16(0xb34dLL), MASK_RRE_F, INSTR_RRE_F, 3},
{ "mxbr", OP16(0xb34cLL), MASK_RRE_F, INSTR_RRE_F, 3},
{ "sxbr", OP16(0xb34bLL), MASK_RRE_F, INSTR_RRE_F, 3},
diff -urN src/opcodes/s390-opc.txt src-s390/opcodes/s390-opc.txt
--- src/opcodes/s390-opc.txt Thu Mar 15 11:50:43 2001
+++ src-s390/opcodes/s390-opc.txt Thu Mar 15 12:33:16 2001
@@ -599,3 +599,19 @@
eb000000001d rll RSE_R "rotate left single logical 32" esame
b278 stcke S "store clock extended" esame
b2a5 tre RRE "translate extended" esame
+eb000000008e mvclu RSE_R "move long unicode" esame
+e9 pka SS_L "pack ascii" esame
+e1 pku SS_L "pack unicode" esame
+b993 troo RRE "translate one to one" esame
+b992 trot RRE "translate one to two" esame
+b991 trto RRE "translate two to one" esame
+b990 trtt RRE "translate two to two" esame
+ea unpka SS_L "unpack ascii" esame
+e2 unpku SS_L "unpack unicode" esame
+b358 thder RRE "convert short bfp to long hfp" esame
+b359 thdr RRE "convert long bfp to long hfp" esame
+b350 tbedr RRF_M "convert long hfp to short bfp" esame
+b351 tbdr RRF_M "convert long hfp to long bfp" esame
+b374 lzer RRE_R "load short zero" esame
+b375 lzdr RRE_R "load long zero" esame
+b376 lzxr RRE_R "load extended zero" esame
blue skies,
Martin
Linux/390 Design & Development, IBM Deutschland Entwicklung GmbH
Schönaicherstr. 220, D-71032 Böblingen, Telefon: 49 - (0)7031 - 16-2247
E-Mail: schwidefsky@de.ibm.com