This is the mail archive of the binutils-cvs@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]

[binutils-gdb] S/390: idte/ipte fixes


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=19fb31c0060f646a9f84be1a84ed1bea04e7ed57

commit 19fb31c0060f646a9f84be1a84ed1bea04e7ed57
Author: Andreas Krebbel <krebbel@linux.vnet.ibm.com>
Date:   Thu Jun 1 13:46:15 2017 +0200

    S/390: idte/ipte fixes
    
    Later CPU generations added optional operands to the ipte/idte
    instructions.  I've added these with:
    https://sourceware.org/ml/binutils/2017-05/msg00316.html ... but
    supported the optional operands only with the specific hardware
    levels.  However, it is more useful to have the optional operands
    already in the first versions.  Of course they need to be zero there.
    
    Regression-tested with on s390 and s390x.  Committed to mainline.
    
    Bye,
    
    -Andreas-
    
    opcodes/ChangeLog:
    
    2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
    
    	* s390-opc.txt: Support the optional parameters with the first
    	versions of ipte/idte.
    
    gas/ChangeLog:
    
    2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
    
    	* testsuite/gas/s390/esa-g5.d: Add ipte tests.
    	* testsuite/gas/s390/esa-g5.s: Likewise.
    	* testsuite/gas/s390/zarch-z196.d: Remove ipte tests.
    	* testsuite/gas/s390/zarch-z196.s: Likewise.
    	* testsuite/gas/s390/zarch-z990.d: Add idte tests.
    	* testsuite/gas/s390/zarch-z990.s: Likewise.
    	* testsuite/gas/s390/zarch-zEC12.d: Remove ipte/idte tests.
    	* testsuite/gas/s390/zarch-zEC12.s: Likewise.

Diff:
---
 gas/testsuite/gas/s390/esa-g5.d      |  2 ++
 gas/testsuite/gas/s390/esa-g5.s      |  2 ++
 gas/testsuite/gas/s390/zarch-z196.d  |  2 --
 gas/testsuite/gas/s390/zarch-z196.s  |  2 --
 gas/testsuite/gas/s390/zarch-z990.d  |  3 ++-
 gas/testsuite/gas/s390/zarch-z990.s  |  3 ++-
 gas/testsuite/gas/s390/zarch-zEC12.d | 23 +++++++++--------------
 gas/testsuite/gas/s390/zarch-zEC12.s |  7 -------
 opcodes/s390-opc.txt                 |  7 ++-----
 9 files changed, 19 insertions(+), 32 deletions(-)

diff --git a/gas/testsuite/gas/s390/esa-g5.d b/gas/testsuite/gas/s390/esa-g5.d
index 5d53caf..949ef14 100644
--- a/gas/testsuite/gas/s390/esa-g5.d
+++ b/gas/testsuite/gas/s390/esa-g5.d
@@ -481,4 +481,6 @@ Disassembly of section .text:
 .*:	17 69 [	 ]*xr	%r6,%r9
 .*:	b2 76 00 00 [	 ]*xsch
 .*:	f8 58 5f ff af ff [	 ]*zap	4095\(6,%r5\),4095\(9,%r10\)
+.*:	b2 21 b0 69 [	 ]*ipte	%r6,%r9,%r11
+.*:	b2 21 bd 69 [	 ]*ipte	%r6,%r9,%r11,13
 .*:	07 07 [ 	]*nopr	%r7
diff --git a/gas/testsuite/gas/s390/esa-g5.s b/gas/testsuite/gas/s390/esa-g5.s
index 75d97fd..c417b81 100644
--- a/gas/testsuite/gas/s390/esa-g5.s
+++ b/gas/testsuite/gas/s390/esa-g5.s
@@ -475,3 +475,5 @@ foo:
 	xr	%r6,%r9
 	xsch
 	zap	4095(6,%r5),4095(9,%r10)
+	ipte	%r6,%r9,%r11
+	ipte	%r6,%r9,%r11,13
diff --git a/gas/testsuite/gas/s390/zarch-z196.d b/gas/testsuite/gas/s390/zarch-z196.d
index c68b43a..3889d32 100644
--- a/gas/testsuite/gas/s390/zarch-z196.d
+++ b/gas/testsuite/gas/s390/zarch-z196.d
@@ -259,6 +259,4 @@ 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 612a2f7..31be5a6 100644
--- a/gas/testsuite/gas/s390/zarch-z196.s
+++ b/gas/testsuite/gas/s390/zarch-z196.s
@@ -261,5 +261,3 @@ foo:
 	pcc
 	kmctr %r5,%r6,%r9
 	pckmo
-	ipte	%r6,%r9
-	ipte	%r6,%r9,%r11
diff --git a/gas/testsuite/gas/s390/zarch-z990.d b/gas/testsuite/gas/s390/zarch-z990.d
index fccff46..980a5f6 100644
--- a/gas/testsuite/gas/s390/zarch-z990.d
+++ b/gas/testsuite/gas/s390/zarch-z990.d
@@ -44,7 +44,8 @@ Disassembly of section .text:
 .*:	eb 6f 50 00 80 80 [	 ]*icmh	%r6,15,-524288\(%r5\)
 .*:	eb 6f 50 00 80 81 [	 ]*icmy	%r6,15,-524288\(%r5\)
 .*:	e3 65 a0 00 80 73 [	 ]*icy	%r6,-524288\(%r5,%r10\)
-.*:	b9 8e 50 69 [	 ]*idte	%r6,%r5,%r9
+.*:	b9 8e 90 6b [	 ]*idte	%r6,%r9,%r11
+.*:	b9 8e 9d 6b [	 ]*idte	%r6,%r9,%r11,13
 .*:	eb 69 50 00 80 9a [	 ]*lamy	%a6,%a9,-524288\(%r5\)
 .*:	e3 65 a0 00 80 71 [	 ]*lay	%r6,-524288\(%r5,%r10\)
 .*:	e3 65 a0 00 80 76 [	 ]*lb	%r6,-524288\(%r5,%r10\)
diff --git a/gas/testsuite/gas/s390/zarch-z990.s b/gas/testsuite/gas/s390/zarch-z990.s
index 98ef4bb..72fe768 100644
--- a/gas/testsuite/gas/s390/zarch-z990.s
+++ b/gas/testsuite/gas/s390/zarch-z990.s
@@ -38,7 +38,8 @@ foo:
 	icmh	%r6,15,-524288(%r5)
 	icmy	%r6,15,-524288(%r5)
 	icy	%r6,-524288(%r5,%r10)
-	idte	%r6,%r5,%r9
+	idte	%r6,%r9,%r11
+	idte	%r6,%r9,%r11,13
 	lamy	%a6,%a9,-524288(%r5)
 	lay	%r6,-524288(%r5,%r10)
 	lb	%r6,-524288(%r5,%r10)
diff --git a/gas/testsuite/gas/s390/zarch-zEC12.d b/gas/testsuite/gas/s390/zarch-zEC12.d
index 1999a12..a4be510 100644
--- a/gas/testsuite/gas/s390/zarch-zEC12.d
+++ b/gas/testsuite/gas/s390/zarch-zEC12.d
@@ -54,21 +54,16 @@ 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
-.*:	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
+.*:	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
 
 
-000000000000013e <bar>:
+000000000000012a <bar>:
 
 .*:	07 07 [	 ]*nopr	%r7
diff --git a/gas/testsuite/gas/s390/zarch-zEC12.s b/gas/testsuite/gas/s390/zarch-zEC12.s
index 7da8799..4754b20 100644
--- a/gas/testsuite/gas/s390/zarch-zEC12.s
+++ b/gas/testsuite/gas/s390/zarch-zEC12.s
@@ -53,13 +53,6 @@ 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.txt b/opcodes/s390-opc.txt
index bd252b2..535d6c9 100644
--- a/opcodes/s390-opc.txt
+++ b/opcodes/s390-opc.txt
@@ -79,7 +79,7 @@ b224 iac RRE_R0 "insert address space control" g5 esa,zarch
 bf icm RS_RURD "insert characters under mask" g5 esa,zarch
 b20b ipk S_00 "insert PSW key" g5 esa,zarch
 b222 ipm RRE_R0 "insert program mask" g5 esa,zarch
-b221 ipte RRE_RR "invalidate page table entry" g5 esa,zarch
+b221 ipte RRF_RURR "invalidate page table entry" g5 esa,zarch optparm2
 b229 iske RRE_RR "insert storage key extended" g5 esa,zarch
 b223 ivsk RRE_RR "insert virtual storage key" g5 esa,zarch
 58 l RX_RRRD "load" g5 esa,zarch
@@ -700,7 +700,7 @@ eb000000008f clclu RSY_RRRD "compare logical long unicode with long offset" z990
 eb0000000096 lmh RSY_RRRD "load multiple high" z990 zarch
 # new z990 instructions
 b98a cspg RRE_RR "compare and swap and purge" z990 zarch
-b98e idte RRF_R0RR "invalidate dat table entry" z990 zarch
+b98e idte RRF_RURR2 "invalidate dat table entry" z990 zarch optparm
 b33e madr RRF_F0FF "multiply and add long hfp" z990 esa,zarch
 ed000000003e mad RXF_FRRDF "multiply and add long hfp" z990 esa,zarch
 b32e maer RRF_F0FF "multiply and add short hfp" z990 esa,zarch
@@ -1116,7 +1116,6 @@ 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
@@ -1144,8 +1143,6 @@ 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


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