This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 3/5] S/390: Add ipte/idte variants with optional operands


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  |  2 ++
 gas/testsuite/gas/s390/zarch-z196.s  |  2 ++
 gas/testsuite/gas/s390/zarch-zEC12.d | 23 ++++++++++++++---------
 gas/testsuite/gas/s390/zarch-zEC12.s |  7 +++++++
 opcodes/s390-opc.c                   |  2 +-
 opcodes/s390-opc.txt                 |  3 +++
 6 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/gas/testsuite/gas/s390/zarch-z196.d b/gas/testsuite/gas/s390/zarch-z196.d
index 3889d32..c68b43a 100644
--- a/gas/testsuite/gas/s390/zarch-z196.d
+++ b/gas/testsuite/gas/s390/zarch-z196.d
@@ -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
diff --git a/gas/testsuite/gas/s390/zarch-z196.s b/gas/testsuite/gas/s390/zarch-z196.s
index 31be5a6..612a2f7 100644
--- a/gas/testsuite/gas/s390/zarch-z196.s
+++ b/gas/testsuite/gas/s390/zarch-z196.s
@@ -261,3 +261,5 @@ foo:
 	pcc
 	kmctr %r5,%r6,%r9
 	pckmo
+	ipte	%r6,%r9
+	ipte	%r6,%r9,%r11
diff --git a/gas/testsuite/gas/s390/zarch-zEC12.d b/gas/testsuite/gas/s390/zarch-zEC12.d
index a4be510..1999a12 100644
--- a/gas/testsuite/gas/s390/zarch-zEC12.d
+++ b/gas/testsuite/gas/s390/zarch-zEC12.d
@@ -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
diff --git a/gas/testsuite/gas/s390/zarch-zEC12.s b/gas/testsuite/gas/s390/zarch-zEC12.s
index 4754b20..7da8799 100644
--- a/gas/testsuite/gas/s390/zarch-zEC12.s
+++ b/gas/testsuite/gas/s390/zarch-zEC12.s
@@ -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
 
diff --git a/opcodes/s390-opc.c b/opcodes/s390-opc.c
index ca75375..deefce3 100644
--- a/opcodes/s390-opc.c
+++ b/opcodes/s390-opc.c
@@ -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   */
diff --git a/opcodes/s390-opc.txt b/opcodes/s390-opc.txt
index 36ad2e7..f759486 100644
--- a/opcodes/s390-opc.txt
+++ b/opcodes/s390-opc.txt
@@ -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
 
-- 
2.9.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]