S/390: Add ipte/idte variants with optional operands
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Mon, 29 May 2017 10:36:57 +0000 (12:36 +0200)
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Tue, 30 May 2017 08:32:44 +0000 (10:32 +0200)
This patch adds missing variants of ipte and idte instructions added with later CPU
generations.

ipte got an optional operand with z196 and another one with zEC12.
idte got an optional operand with zEC12

opcodes/ChangeLog:

2017-05-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* s390-opc.c: Add new idte/ipte variants.
* s390-opc.txt: Likewise.

gas/ChangeLog:

2017-05-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* testsuite/gas/s390/zarch-z196.d: Add new idte/ipte variants.
* testsuite/gas/s390/zarch-z196.s: Likewise.
* testsuite/gas/s390/zarch-zEC12.d: Likewise.
* testsuite/gas/s390/zarch-zEC12.s: Likewise.

gas/testsuite/gas/s390/zarch-z196.d
gas/testsuite/gas/s390/zarch-z196.s
gas/testsuite/gas/s390/zarch-zEC12.d
gas/testsuite/gas/s390/zarch-zEC12.s
opcodes/s390-opc.c
opcodes/s390-opc.txt

index 3889d32e02f4c582999cdbec79b472c8c0164da2..c68b43a5c908757ad8682cdfec0463fa65f63efc 100644 (file)
@@ -259,4 +259,6 @@ Disassembly of section .text:
 .*:    b9 2c 00 00 [    ]*pcc
 .*:    b9 2d 60 59 [    ]*kmctr        %r5,%r6,%r9
 .*:    b9 28 00 00 [    ]*pckmo
+.*:    b2 21 00 69 [    ]*ipte %r6,%r9
+.*:    b2 21 b0 69 [    ]*ipte %r6,%r9,%r11
 .*:    07 07 [  ]*nopr %r7
index 31be5a62dba9bb45bb56c5d3d074ae26e2ab237f..612a2f75411a421b6e5dcbe00484745b7bf07bf8 100644 (file)
@@ -261,3 +261,5 @@ foo:
        pcc
        kmctr %r5,%r6,%r9
        pckmo
+       ipte    %r6,%r9
+       ipte    %r6,%r9,%r11
index a4be510d3a2c0073f14007a7295de203145f6f2a..1999a12e49ad88107cdc4cabe1db3446b65c9ffb 100644 (file)
@@ -54,16 +54,21 @@ Disassembly of section .text:
 .*:    b2 e8 c0 56 [    ]*ppa  %r5,%r6,12
 .*:    b9 8f 60 59 [    ]*crdte        %r5,%r6,%r9
 .*:    b9 8f 61 59 [    ]*crdte        %r5,%r6,%r9,1
-.*:    c5 a0 0c 00 00 0c [      ]*bprp 10,12a <bar>,12a <bar>
-.*:    c5 a0 00 00 00 00 [      ]*bprp 10,118 <foo\+0x118>,118 <foo\+0x118>
-[       ]*119: R_390_PLT12DBL  bar\+0x1
-[       ]*11b: R_390_PLT24DBL  bar\+0x3
-.*:    c7 a0 00 00 00 00 [      ]*bpp  10,11e <foo\+0x11e>,0
-[       ]*122: R_390_PLT16DBL  bar\+0x4
-.*:    c7 a0 00 00 00 00 [      ]*bpp  10,124 <foo\+0x124>,0
-[       ]*128: R_390_PC16DBL   baz\+0x4
+.*:    b9 8e 90 6b [    ]*idte %r6,%r9,%r11
+.*:    b9 8e 9d 6b [    ]*idte %r6,%r9,%r11,13
+.*:    b2 21 00 69 [    ]*ipte %r6,%r9
+.*:    b2 21 b0 69 [    ]*ipte %r6,%r9,%r11
+.*:    b2 21 bd 69 [    ]*ipte %r6,%r9,%r11,13
+.*:    c5 a0 0c 00 00 0c [      ]*bprp 10,13e <bar>,13e <bar>
+.*:    c5 a0 00 00 00 00 [      ]*bprp 10,12c <foo\+0x12c>,12c <foo\+0x12c>
+[       ]*12d: R_390_PLT12DBL  bar\+0x1
+[       ]*12f: R_390_PLT24DBL  bar\+0x3
+.*:    c7 a0 00 00 00 00 [      ]*bpp  10,132 <foo\+0x132>,0
+[       ]*136: R_390_PLT16DBL  bar\+0x4
+.*:    c7 a0 00 00 00 00 [      ]*bpp  10,138 <foo\+0x138>,0
+[       ]*13c: R_390_PC16DBL   baz\+0x4
 
 
-000000000000012a <bar>:
+000000000000013e <bar>:
 
 .*:    07 07 [  ]*nopr %r7
index 4754b2089c5046ffbb0f9eead3f8db71e856da81..7da8799d3b592c0dc36d66ac4d3844be569f862b 100644 (file)
@@ -53,6 +53,13 @@ foo:
        crdte   %r5,%r6,%r9
        crdte   %r5,%r6,%r9,1
 
+       idte    %r6,%r9,%r11
+       idte    %r6,%r9,%r11,13
+
+       ipte    %r6,%r9
+       ipte    %r6,%r9,%r11
+       ipte    %r6,%r9,%r11,13
+
        bprp    10,bar,bar
        bprp    10,bar@PLT,bar@PLT
 
index ca753756b3f48b9b4d0e8a6f7751db71609e39a4..deefce31488cb243a2ca996b0dc87245deba9786 100644 (file)
@@ -355,7 +355,7 @@ const struct s390_operand s390_operands[] =
 #define INSTR_RRF_FEUFEFE  4, { FE_24,FE_16,FE_28,U4_20,0,0 }    /* e.g. qaxtr */
 #define INSTR_RRF_FUFF2    4, { F_24,F_28,F_16,U4_20,0,0 }       /* e.g. adtra */
 #define INSTR_RRF_FEUFEFE2 4, { FE_24,FE_28,FE_16,U4_20,0,0 }    /* e.g. axtra */
-#define INSTR_RRF_RURR     4, { R_24,R_28,R_16,U4_20,0,0 }       /* e.g. .insn */
+#define INSTR_RRF_RURR     4, { R_24,R_28,R_16,U4_20,0,0 }       /* e.g. ipte  */
 #define INSTR_RRF_RURR2    4, { R_24,R_16,R_28,U4_20,0,0 }       /* e.g. lptea */
 #define INSTR_RRF_R0RR     4, { R_24,R_16,R_28,0,0,0 }           /* e.g. idte  */
 #define INSTR_RRF_R0RR2    4, { R_24,R_28,R_16,0,0,0 }           /* e.g. ark   */
index 36ad2e7d7a52c2f92ee828af495763cf53796047..f759486846c5bd01dff775060684fbbb90ddf625 100644 (file)
@@ -1116,6 +1116,7 @@ b92b kmo RRE_RR "cipher message with OFB" z196 zarch
 b92c pcc RRE_00 "perform cryptographic computation" z196 zarch
 b92d kmctr RRF_R0RR "cipher message with counter" z196 zarch
 b928 pckmo RRE_00 "perform cryptographic key management operation" z196 zarch
+b221 ipte RRF_R0RR2 "invalidate page table entry" z196 zarch optparm
 
 # The new instructions of the IBM zEnterprise EC12
 b2ec etnd RRE_R0 "extract transaction nesting depth" zEC12 zarch htm
@@ -1143,6 +1144,8 @@ ed00000000aa cdzt RSL_LRDFU "convert from zoned long" zEC12 zarch
 ed00000000ab cxzt RSL_LRDFEU "convert from zoned extended" zEC12 zarch
 ed00000000a8 czdt RSL_LRDFU "convert to zoned long" zEC12 zarch
 ed00000000a9 czxt RSL_LRDFEU "convert to zoned extended" zEC12 zarch
+b98e idte RRF_RURR2 "invalidate dat table entry" zEC12 zarch optparm
+b221 ipte RRF_RURR "invalidate page table entry" zEC12 zarch optparm2
 
 # The new instructions of IBM z13