From 19fb31c0060f646a9f84be1a84ed1bea04e7ed57 Mon Sep 17 00:00:00 2001 From: Andreas Krebbel Date: Thu, 1 Jun 2017 13:46:15 +0200 Subject: [PATCH] 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 * s390-opc.txt: Support the optional parameters with the first versions of ipte/idte. gas/ChangeLog: 2017-06-01 Andreas Krebbel * 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. --- 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 ,13e -.*: c5 a0 00 00 00 00 [ ]*bprp 10,12c ,12c -[ ]*12d: R_390_PLT12DBL bar\+0x1 -[ ]*12f: R_390_PLT24DBL bar\+0x3 -.*: c7 a0 00 00 00 00 [ ]*bpp 10,132 ,0 -[ ]*136: R_390_PLT16DBL bar\+0x4 -.*: c7 a0 00 00 00 00 [ ]*bpp 10,138 ,0 -[ ]*13c: R_390_PC16DBL baz\+0x4 +.*: c5 a0 0c 00 00 0c [ ]*bprp 10,12a ,12a +.*: c5 a0 00 00 00 00 [ ]*bprp 10,118 ,118 +[ ]*119: R_390_PLT12DBL bar\+0x1 +[ ]*11b: R_390_PLT24DBL bar\+0x3 +.*: c7 a0 00 00 00 00 [ ]*bpp 10,11e ,0 +[ ]*122: R_390_PLT16DBL bar\+0x4 +.*: c7 a0 00 00 00 00 [ ]*bpp 10,124 ,0 +[ ]*128: R_390_PC16DBL baz\+0x4 -000000000000013e : +000000000000012a : .*: 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 -- 2.7.4