S/390: Fixes for z13 instructions.
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Mon, 27 Apr 2015 08:29:16 +0000 (10:29 +0200)
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Mon, 27 Apr 2015 08:29:16 +0000 (10:29 +0200)
opcodes/
* s390-opc.c: New instruction type VV0UU2.
* s390-opc.txt: Fix instruction types for VFCE, VLDE, VFSQ, WFK,
and WFC.

gas/testsuite/
* gas/s390/zarch-z13.d: Fix tests for VFCE, VLDE, VFSQ, WFK, and
WFC.
   * gas/s390/zarch-z13.s: Likewise.

gas/testsuite/ChangeLog
gas/testsuite/gas/s390/zarch-z13.d
gas/testsuite/gas/s390/zarch-z13.s
opcodes/ChangeLog
opcodes/s390-opc.c
opcodes/s390-opc.txt

index 8a62d532028169b11614621078339180513dea35..392c6e5e8237b99364ad94907a9d2c8b78a99b39 100644 (file)
@@ -1,3 +1,9 @@
+2015-04-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * gas/s390/zarch-z13.d: Fix tests for VFCE, VLDE, VFSQ, WFK, and
+       WFC.
+       * gas/s390/zarch-z13.s: Likewise.
+
 2015-04-24  Richard Earnshaw  <rearnsha@arm.com>
 
        * gas/arm/align64.d: Delete trailing padding NOPs.
index b2e010dca1dc58be2c1d8598f5031033ea5696ca..66808d6e43c03692a1c4aa6376ab7d9c154420c2 100644 (file)
@@ -476,11 +476,11 @@ Disassembly of section .text:
 .*:    e7 f1 40 0c d6 e3 [     ]*vfa   %v15,%v17,%v20,13,12
 .*:    e7 f1 40 00 36 e3 [     ]*vfadb %v15,%v17,%v20
 .*:    e7 f1 40 08 36 e3 [     ]*wfadb %v15,%v17,%v20
-.*:    e7 f1 00 cd 04 cb [     ]*wfc   %v15,%v17,13,12
+.*:    e7 f1 00 0c d4 cb [     ]*wfc   %v15,%v17,13,12
 .*:    e7 f1 00 00 34 cb [     ]*wfcdb %v15,%v17
-.*:    e7 f1 00 cd 04 ca [     ]*wfk   %v15,%v17,13,12
+.*:    e7 f1 00 0c d4 ca [     ]*wfk   %v15,%v17,13,12
 .*:    e7 f1 00 00 34 ca [     ]*wfkdb %v15,%v17
-.*:    e7 f1 40 00 06 e8 [     ]*vfce  %v15,%v17,%v20
+.*:    e7 f1 40 bc d6 e8 [     ]*vfce  %v15,%v17,%v20,13,12,11
 .*:    e7 f1 40 00 36 e8 [     ]*vfcedb        %v15,%v17,%v20
 .*:    e7 f1 40 10 36 e8 [     ]*vfcedbs       %v15,%v17,%v20
 .*:    e7 f1 40 08 36 e8 [     ]*wfcedb        %v15,%v17,%v20
@@ -513,7 +513,7 @@ Disassembly of section .text:
 .*:    e7 f1 00 bc d4 c7 [     ]*vfi   %v15,%v17,13,12,11
 .*:    e7 f1 00 cd 34 c7 [     ]*wfidb %v15,%v17,5,12
 .*:    e7 f1 00 cd 34 c7 [     ]*wfidb %v15,%v17,5,12
-.*:    e7 f1 00 cd 04 c4 [     ]*vlde  %v15,%v17,13,12
+.*:    e7 f1 00 0c d4 c4 [     ]*vlde  %v15,%v17,13,12
 .*:    e7 f1 00 00 24 c4 [     ]*vldeb %v15,%v17
 .*:    e7 f1 00 08 24 c4 [     ]*wldeb %v15,%v17
 .*:    e7 f1 00 bc d4 c5 [     ]*vled  %v15,%v17,13,12,11
@@ -537,7 +537,7 @@ Disassembly of section .text:
 .*:    e7 f1 00 18 34 cc [     ]*wflndb        %v15,%v17
 .*:    e7 f1 00 20 34 cc [     ]*vflpdb        %v15,%v17
 .*:    e7 f1 00 28 34 cc [     ]*wflpdb        %v15,%v17
-.*:    e7 f1 00 cd 04 ce [     ]*vfsq  %v15,%v17,13,12
+.*:    e7 f1 00 0c d4 ce [     ]*vfsq  %v15,%v17,13,12
 .*:    e7 f1 00 00 34 ce [     ]*vfsqdb        %v15,%v17
 .*:    e7 f1 00 08 34 ce [     ]*wfsqdb        %v15,%v17
 .*:    e7 f1 40 0c d6 e2 [     ]*vfs   %v15,%v17,%v20,13,12
index 688020de2581b4a892cfa9d88797148c923e160a..c2964d8297fbd84e1d247266c0d0d132b8a2f13e 100644 (file)
@@ -474,7 +474,7 @@ foo:
        wfcdb   %v15,%v17
        wfk     %v15,%v17,13,12
        wfkdb   %v15,%v17
-       vfce    %v15,%v17,%v20
+       vfce    %v15,%v17,%v20,13,12,11
        vfcedb  %v15,%v17,%v20
        vfcedbs %v15,%v17,%v20
        wfcedb  %v15,%v17,%v20
index 26eb96148b3ce6d9e4cf8658f547fc4370e258df..48886f67084006047643dc82de92a53ac79232c3 100644 (file)
@@ -1,3 +1,9 @@
+2015-04-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * s390-opc.c: New instruction type VV0UU2.
+       * s390-opc.txt: Fix instruction types for VFCE, VLDE, VFSQ, WFK,
+       and WFC.
+
 2015-04-23  Jan Beulich  <jbeulich@suse.com>
 
        * i386-dis.c (putop): Extend "XY" handling to AVX512. Handle "XZ".
index a80357970a8407c56b8c51af032f6c26a795273c..befd17173e4e3b025c9f5f7641aa42cdc71e2143 100644 (file)
@@ -484,6 +484,7 @@ const struct s390_operand s390_operands[] =
 #define INSTR_VRR_VV0U     6, { V_8,V_12,U4_32,0,0,0 }           /* e.g. vseg  */
 #define INSTR_VRR_VV0U2    6, { V_8,V_12,U4_24,0,0,0 }           /* e.g. vistrb*/
 #define INSTR_VRR_VV0UU    6, { V_8,V_12,U4_28,U4_24,0,0 }       /* e.g. vcdgb */
+#define INSTR_VRR_VV0UU2   6, { V_8,V_12,U4_32,U4_28,0,0 }       /* e.g. wfc */
 #define INSTR_VRR_VV0UU8   6, { V_8,V_12,U4_OR8_28,U4_24,0,0 }   /* e.g. wcdgb */
 #define INSTR_VRR_VV       6, { V_8,V_12,0,0,0,0 }               /* e.g. vsegb */
 #define INSTR_VRR_VVVUU0V  6, { V_8,V_12,V_16,V_32,U4_20,U4_24 } /* e.g. vstrc */
@@ -690,6 +691,7 @@ const struct s390_operand s390_operands[] =
 #define MASK_VRR_VV0U     { 0xff, 0x00, 0xff, 0xff, 0x00, 0xff }
 #define MASK_VRR_VV0U2    { 0xff, 0x00, 0xff, 0x0f, 0xf0, 0xff }
 #define MASK_VRR_VV0UU    { 0xff, 0x00, 0xff, 0x00, 0xf0, 0xff }
+#define MASK_VRR_VV0UU2   { 0xff, 0x00, 0xff, 0xf0, 0x00, 0xff }
 #define MASK_VRR_VV0UU8   { 0xff, 0x00, 0xff, 0x08, 0xf0, 0xff }
 #define MASK_VRR_VV       { 0xff, 0x00, 0xff, 0xff, 0xf0, 0xff }
 #define MASK_VRR_VVVUU0V  { 0xff, 0x00, 0x00, 0x0f, 0x00, 0xff }
index 7900278bb6f508a7e3c479ae8ba67add63d11742..3f0a487631eea7386d932ca3a44dd0cebf347dcb 100644 (file)
@@ -1586,11 +1586,11 @@ e7000230008a vstrczfs VRR_VVVU0VB3 "vector string range compare word" z13 zarch
 e700000000e3 vfa VRR_VVV0UU "vector fp add" z13 zarch
 e700000030e3 vfadb VRR_VVV "vector fp add" z13 zarch
 e700000830e3 wfadb VRR_VVV "vector fp add" z13 zarch
-e700000000cb wfc VRR_VV0UU "vector fp compare scalar" z13 zarch
+e700000000cb wfc VRR_VV0UU2 "vector fp compare scalar" z13 zarch
 e700000030cb wfcdb VRR_VV "vector fp compare scalar" z13 zarch
-e700000000ca wfk VRR_VV0UU "vector fp compare and signal scalar" z13 zarch
+e700000000ca wfk VRR_VV0UU2 "vector fp compare and signal scalar" z13 zarch
 e700000030ca wfkdb VRR_VV "vector fp compare and signal scalar" z13 zarch
-e700000000e8 vfce VRR_VVV "vector fp compare equal" z13 zarch
+e700000000e8 vfce VRR_VVV0UUU "vector fp compare equal" z13 zarch
 e700000030e8 vfcedb VRR_VVV "vector fp compare equal" z13 zarch
 e700001030e8 vfcedbs VRR_VVV "vector fp compare equal" z13 zarch
 e700000830e8 wfcedb VRR_VVV "vector fp compare equal" z13 zarch
@@ -1623,7 +1623,7 @@ e700000830e5 wfddb VRR_VVV "vector fp divide" z13 zarch
 e700000000c7 vfi VRR_VV0UUU "vector load fp integer" z13 zarch
 e700000030c7 vfidb VRR_VV0UU "vector load fp integer" z13 zarch
 e700000830c7 wfidb VRR_VV0UU8 "vector load fp integer" z13 zarch
-e700000000c4 vlde VRR_VV0UU "vector fp load lengthened" z13 zarch
+e700000000c4 vlde VRR_VV0UU2 "vector fp load lengthened" z13 zarch
 e700000020c4 vldeb VRR_VV "vector fp load lengthened" z13 zarch
 e700000820c4 wldeb VRR_VV "vector fp load lengthened" z13 zarch
 e700000000c5 vled VRR_VV0UUU "vector fp load rounded" z13 zarch
@@ -1647,7 +1647,7 @@ e700001030cc vflndb VRR_VV "vector fp perform sign operation" z13 zarch
 e700001830cc wflndb VRR_VV "vector fp perform sign operation" z13 zarch
 e700002030cc vflpdb VRR_VV "vector fp perform sign operation" z13 zarch
 e700002830cc wflpdb VRR_VV "vector fp perform sign operation" z13 zarch
-e700000000ce vfsq VRR_VV0UU "vector fp square root" z13 zarch
+e700000000ce vfsq VRR_VV0UU2 "vector fp square root" z13 zarch
 e700000030ce vfsqdb VRR_VV "vector fp square root" z13 zarch
 e700000830ce wfsqdb VRR_VV "vector fp square root" z13 zarch
 e700000000e2 vfs VRR_VVV0UU "vector fp subtract" z13 zarch