[binutils-gdb] x86: default to not accepting MPX insns
Jan Beulich
jbeulich@sourceware.org
Mon Dec 2 08:40:10 GMT 2024
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=57c526470bbf03220f928f0894a85c76a9659d35
commit 57c526470bbf03220f928f0894a85c76a9659d35
Author: Jan Beulich <jbeulich@suse.com>
Date: Mon Dec 2 09:39:23 2024 +0100
x86: default to not accepting MPX insns
Gcc9 had MPX support removed. While we don't want to remove support,
require these deprecated insns (and registers) to be enabled explicitly.
Diff:
---
gas/testsuite/gas/i386/bnd.l | 14 ++++++--------
gas/testsuite/gas/i386/bnd.s | 1 -
gas/testsuite/gas/i386/got-no-relax.d | 2 +-
gas/testsuite/gas/i386/got.d | 2 +-
gas/testsuite/gas/i386/i386.exp | 6 +++---
gas/testsuite/gas/i386/lfence-load.d | 2 +-
gas/testsuite/gas/i386/mpx-16bit.d | 2 +-
gas/testsuite/gas/i386/mpx-add-bnd-prefix.d | 2 +-
gas/testsuite/gas/i386/mpx.d | 1 +
gas/testsuite/gas/i386/notrack-intel.d | 1 +
gas/testsuite/gas/i386/notrack.d | 1 +
gas/testsuite/gas/i386/opts-intel.d | 1 +
gas/testsuite/gas/i386/opts.d | 1 +
gas/testsuite/gas/i386/pseudos.d | 2 +-
gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-1.d | 2 +-
gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-2.d | 2 +-
gas/testsuite/gas/i386/sse2avx-opts-intel.d | 2 +-
gas/testsuite/gas/i386/sse2avx-opts.d | 2 +-
gas/testsuite/gas/i386/x86-64-lfence-load.d | 2 +-
gas/testsuite/gas/i386/x86-64-mpx-add-bnd-prefix.d | 2 +-
gas/testsuite/gas/i386/x86-64-mpx-addr32.d | 1 +
gas/testsuite/gas/i386/x86-64-mpx-branch-1.d | 2 +-
gas/testsuite/gas/i386/x86-64-mpx-branch-2.d | 2 +-
gas/testsuite/gas/i386/x86-64-mpx.d | 1 +
gas/testsuite/gas/i386/x86-64-notrack-intel.d | 1 +
gas/testsuite/gas/i386/x86-64-notrack.d | 1 +
gas/testsuite/gas/i386/x86-64-pseudos.d | 2 +-
gas/testsuite/gas/i386/x86-64.exp | 6 +++---
opcodes/i386-gen.c | 2 +-
opcodes/i386-init.h | 2 +-
30 files changed, 38 insertions(+), 32 deletions(-)
diff --git a/gas/testsuite/gas/i386/bnd.l b/gas/testsuite/gas/i386/bnd.l
index c9377d8c4b2..b70fe9c1522 100644
--- a/gas/testsuite/gas/i386/bnd.l
+++ b/gas/testsuite/gas/i386/bnd.l
@@ -1,14 +1,12 @@
.*: Assembler messages:
-.*:6: Error: .*`bndmov'.*
+.*:5: Error: .*`bndmov'.*
GAS LISTING .*
[ ]*1[ ]+\.text
[ ]*2[ ]+\.intel_syntax noprefix
-[ ]*3[ ]+\.arch generic32
-[ ]*4[ ]+bnd:
-[ ]*5[ ]+\?\?\?\? A1000000[ ]+mov eax, bnd0
-[ ]*5[ ]+00
-[ ]*6[ ]+bndmov bnd0, bnd0
-[ ]*7[ ]+\?\?\?\? 00000000 \.p2align 4,0
-#...
+[ ]*3[ ]+bnd:
+[ ]*4[ ]+\?\?\?\? A1000000[ ]+mov eax, bnd0
+[ ]*4[ ]+00
+[ ]*5[ ]+bndmov bnd0, bnd0
+#pass
diff --git a/gas/testsuite/gas/i386/bnd.s b/gas/testsuite/gas/i386/bnd.s
index e2c61bf4ed0..63d3aed1282 100644
--- a/gas/testsuite/gas/i386/bnd.s
+++ b/gas/testsuite/gas/i386/bnd.s
@@ -1,6 +1,5 @@
.text
.intel_syntax noprefix
- .arch generic32
bnd:
mov eax, bnd0
bndmov bnd0, bnd0
diff --git a/gas/testsuite/gas/i386/got-no-relax.d b/gas/testsuite/gas/i386/got-no-relax.d
index 41b4adfc431..acc8055e880 100644
--- a/gas/testsuite/gas/i386/got-no-relax.d
+++ b/gas/testsuite/gas/i386/got-no-relax.d
@@ -1,5 +1,5 @@
#source: got.s
-#as: -mrelax-relocations=no
+#as: -mrelax-relocations=no -march=+mpx
#objdump: -dwr
.*: +file format .*
diff --git a/gas/testsuite/gas/i386/got.d b/gas/testsuite/gas/i386/got.d
index 351da27e046..9610e2cf2c0 100644
--- a/gas/testsuite/gas/i386/got.d
+++ b/gas/testsuite/gas/i386/got.d
@@ -1,4 +1,4 @@
-#as: -mrelax-relocations=yes
+#as: -mrelax-relocations=yes -march=+mpx
#objdump: -dwr
.*: +file format .*
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index 0a48b4eb0f1..34352026ccc 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -68,7 +68,7 @@ if [gas_32_check] then {
run_dump_test "intelok"
run_dump_test "intelok2"
run_dump_test "prefix"
- run_list_test "prefix32" "-al"
+ run_list_test "prefix32" "-al -march=+mpx"
run_dump_test "insn-32"
run_dump_test "lea"
run_dump_test "lea16"
@@ -374,8 +374,8 @@ if [gas_32_check] then {
run_dump_test "prefetch-intel"
run_dump_test "smap"
run_dump_test "mpx"
- run_list_test "mpx-inval-1" "-al"
- run_list_test "mpx-inval-2" "-al"
+ run_list_test "mpx-inval-1" "-al -march=+mpx"
+ run_list_test "mpx-inval-2" "-al -march=+mpx"
run_dump_test "mpx-add-bnd-prefix"
run_dump_test "mpx-16bit"
run_list_test "bnd" "-al"
diff --git a/gas/testsuite/gas/i386/lfence-load.d b/gas/testsuite/gas/i386/lfence-load.d
index eb94bdcbb68..a315be75254 100644
--- a/gas/testsuite/gas/i386/lfence-load.d
+++ b/gas/testsuite/gas/i386/lfence-load.d
@@ -1,4 +1,4 @@
-#as: -mlfence-after-load=yes
+#as: -mlfence-after-load=yes -march=+mpx
#objdump: -dw
#warning_output: lfence-load.e
#name: -mlfence-after-load=yes
diff --git a/gas/testsuite/gas/i386/mpx-16bit.d b/gas/testsuite/gas/i386/mpx-16bit.d
index b26bc1ae1df..a38e46ec8c5 100644
--- a/gas/testsuite/gas/i386/mpx-16bit.d
+++ b/gas/testsuite/gas/i386/mpx-16bit.d
@@ -1,4 +1,4 @@
-#as: -I${srcdir}/$subdir
+#as: -I${srcdir}/$subdir -march=+mpx
#objdump: -drw -Mi8086
#name: i386 MPX (16-bit)
diff --git a/gas/testsuite/gas/i386/mpx-add-bnd-prefix.d b/gas/testsuite/gas/i386/mpx-add-bnd-prefix.d
index 5ba3ca56816..6e18f61ba05 100644
--- a/gas/testsuite/gas/i386/mpx-add-bnd-prefix.d
+++ b/gas/testsuite/gas/i386/mpx-add-bnd-prefix.d
@@ -1,4 +1,4 @@
-#as: -madd-bnd-prefix
+#as: -madd-bnd-prefix -march=+mpx
#warning_output: mpx-add-bnd-prefix.e
#objdump: -drw
#name: Check -madd-bnd-prefix
diff --git a/gas/testsuite/gas/i386/mpx.d b/gas/testsuite/gas/i386/mpx.d
index a12081c6358..a1e2f8f85a9 100644
--- a/gas/testsuite/gas/i386/mpx.d
+++ b/gas/testsuite/gas/i386/mpx.d
@@ -1,3 +1,4 @@
+#as: -march=+mpx
#objdump: -drw
#name: i386 MPX
diff --git a/gas/testsuite/gas/i386/notrack-intel.d b/gas/testsuite/gas/i386/notrack-intel.d
index 7b72a39fd73..611e846b4ab 100644
--- a/gas/testsuite/gas/i386/notrack-intel.d
+++ b/gas/testsuite/gas/i386/notrack-intel.d
@@ -1,5 +1,6 @@
#source: notrack.s
#objdump: -dw -Mintel
+#as: -march=+mpx
#name: i386 NOTRACK prefix (Intel disassembly)
.*: +file format .*
diff --git a/gas/testsuite/gas/i386/notrack.d b/gas/testsuite/gas/i386/notrack.d
index 1208c922e6b..b220d05af11 100644
--- a/gas/testsuite/gas/i386/notrack.d
+++ b/gas/testsuite/gas/i386/notrack.d
@@ -1,4 +1,5 @@
#objdump: -dw
+#as: -march=+mpx
#name: i386 NOTRACK prefix
.*: +file format .*
diff --git a/gas/testsuite/gas/i386/opts-intel.d b/gas/testsuite/gas/i386/opts-intel.d
index 4172e93c39e..281f7097d8d 100644
--- a/gas/testsuite/gas/i386/opts-intel.d
+++ b/gas/testsuite/gas/i386/opts-intel.d
@@ -1,4 +1,5 @@
#objdump: -drwMintel,suffix
+#as: -march=+mpx
#name: encoding option (Intel mode)
#source: opts.s
diff --git a/gas/testsuite/gas/i386/opts.d b/gas/testsuite/gas/i386/opts.d
index 73d2a6ef544..ac9becac2c1 100644
--- a/gas/testsuite/gas/i386/opts.d
+++ b/gas/testsuite/gas/i386/opts.d
@@ -1,4 +1,5 @@
#objdump: -drwMsuffix
+#as: -march=+mpx
#name: encoding option
.*: +file format .*
diff --git a/gas/testsuite/gas/i386/pseudos.d b/gas/testsuite/gas/i386/pseudos.d
index 98e1149c19b..47dca19e9a2 100644
--- a/gas/testsuite/gas/i386/pseudos.d
+++ b/gas/testsuite/gas/i386/pseudos.d
@@ -1,4 +1,4 @@
-#as: -O0
+#as: -O0 -march=+mpx
#objdump: -drw
#name: pseudo prefixes
diff --git a/gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-1.d b/gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-1.d
index 0db4c04a1f8..cdd46f91748 100644
--- a/gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-1.d
+++ b/gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-1.d
@@ -1,4 +1,4 @@
-#as: -J
+#as: -J -march=+mpx
#source: ../x86-64-mpx-branch-1.s
#objdump: -dwr
#name: x86-64 MPX branch
diff --git a/gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-2.d b/gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-2.d
index b6ff92c1700..4bcb00ea11f 100644
--- a/gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-2.d
+++ b/gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-2.d
@@ -1,4 +1,4 @@
-#as: -J -madd-bnd-prefix
+#as: -J -madd-bnd-prefix -march=+mpx
#source: ../x86-64-mpx-branch-1.s
#objdump: -dwr
#name: x86-64 branch with BND prefix
diff --git a/gas/testsuite/gas/i386/sse2avx-opts-intel.d b/gas/testsuite/gas/i386/sse2avx-opts-intel.d
index 6f9d30dabe9..6dc8b2f0240 100644
--- a/gas/testsuite/gas/i386/sse2avx-opts-intel.d
+++ b/gas/testsuite/gas/i386/sse2avx-opts-intel.d
@@ -1,4 +1,4 @@
-#as: -msse2avx
+#as: -msse2avx -march=+mpx
#objdump: -drwMintel,suffix
#name: encoding option with -msse2avx (Intel mode)
#source: opts.s
diff --git a/gas/testsuite/gas/i386/sse2avx-opts.d b/gas/testsuite/gas/i386/sse2avx-opts.d
index 48e0933474b..e1306de54dd 100644
--- a/gas/testsuite/gas/i386/sse2avx-opts.d
+++ b/gas/testsuite/gas/i386/sse2avx-opts.d
@@ -1,4 +1,4 @@
-#as: -msse2avx
+#as: -msse2avx -march=+mpx
#objdump: -drwMsuffix
#name: encoding option with -msse2avx
#source: opts.s
diff --git a/gas/testsuite/gas/i386/x86-64-lfence-load.d b/gas/testsuite/gas/i386/x86-64-lfence-load.d
index 726236826e8..dcfa810a513 100644
--- a/gas/testsuite/gas/i386/x86-64-lfence-load.d
+++ b/gas/testsuite/gas/i386/x86-64-lfence-load.d
@@ -1,4 +1,4 @@
-#as: -mlfence-after-load=yes
+#as: -mlfence-after-load=yes -march=+mpx
#objdump: -dw
#warning_output: lfence-load.e
#name: x86-64 -mlfence-after-load=yes
diff --git a/gas/testsuite/gas/i386/x86-64-mpx-add-bnd-prefix.d b/gas/testsuite/gas/i386/x86-64-mpx-add-bnd-prefix.d
index 1bbec106e00..7f3458cf200 100644
--- a/gas/testsuite/gas/i386/x86-64-mpx-add-bnd-prefix.d
+++ b/gas/testsuite/gas/i386/x86-64-mpx-add-bnd-prefix.d
@@ -1,4 +1,4 @@
-#as: -madd-bnd-prefix
+#as: -madd-bnd-prefix -march=+mpx
#warning_output: x86-64-mpx-add-bnd-prefix.e
#objdump: -drw
#name: Check -madd-bnd-prefix (x86-64)
diff --git a/gas/testsuite/gas/i386/x86-64-mpx-addr32.d b/gas/testsuite/gas/i386/x86-64-mpx-addr32.d
index cb53535eb0a..593029709f0 100644
--- a/gas/testsuite/gas/i386/x86-64-mpx-addr32.d
+++ b/gas/testsuite/gas/i386/x86-64-mpx-addr32.d
@@ -1,3 +1,4 @@
+#as: -march=+mpx
#objdump: -drw
#name: x86-64 MPX addr32 tests
diff --git a/gas/testsuite/gas/i386/x86-64-mpx-branch-1.d b/gas/testsuite/gas/i386/x86-64-mpx-branch-1.d
index 795f3fdacc4..2ae13ca64c6 100644
--- a/gas/testsuite/gas/i386/x86-64-mpx-branch-1.d
+++ b/gas/testsuite/gas/i386/x86-64-mpx-branch-1.d
@@ -1,4 +1,4 @@
-#as: -J
+#as: -J -march=+mpx
#objdump: -dwr
#name: x86-64 MPX branch
#notarget: *-*-solaris*
diff --git a/gas/testsuite/gas/i386/x86-64-mpx-branch-2.d b/gas/testsuite/gas/i386/x86-64-mpx-branch-2.d
index c61b3af69e8..f5fdb4fa985 100644
--- a/gas/testsuite/gas/i386/x86-64-mpx-branch-2.d
+++ b/gas/testsuite/gas/i386/x86-64-mpx-branch-2.d
@@ -1,4 +1,4 @@
-#as: -J -madd-bnd-prefix
+#as: -J -madd-bnd-prefix -march=+mpx
#objdump: -dwr
#name: x86-64 branch with BND prefix
#dump: x86-64-mpx-branch-1.d
diff --git a/gas/testsuite/gas/i386/x86-64-mpx.d b/gas/testsuite/gas/i386/x86-64-mpx.d
index 0794e7ec9be..67c2d837ac1 100644
--- a/gas/testsuite/gas/i386/x86-64-mpx.d
+++ b/gas/testsuite/gas/i386/x86-64-mpx.d
@@ -1,3 +1,4 @@
+#as: -march=+mpx
#objdump: -drw
#name: x86-64 MPX
diff --git a/gas/testsuite/gas/i386/x86-64-notrack-intel.d b/gas/testsuite/gas/i386/x86-64-notrack-intel.d
index b9967908324..628669f2ddf 100644
--- a/gas/testsuite/gas/i386/x86-64-notrack-intel.d
+++ b/gas/testsuite/gas/i386/x86-64-notrack-intel.d
@@ -1,4 +1,5 @@
#source: x86-64-notrack.s
+#as: -march=+mpx
#objdump: -dw -Mintel
#name: x86-64 NOTRACK prefix (Intel disassembly)
diff --git a/gas/testsuite/gas/i386/x86-64-notrack.d b/gas/testsuite/gas/i386/x86-64-notrack.d
index 4c258ded2da..76108b6114f 100644
--- a/gas/testsuite/gas/i386/x86-64-notrack.d
+++ b/gas/testsuite/gas/i386/x86-64-notrack.d
@@ -1,3 +1,4 @@
+#as: -march=+mpx
#objdump: -dw
#name: x86-64 NOTRACK prefix
diff --git a/gas/testsuite/gas/i386/x86-64-pseudos.d b/gas/testsuite/gas/i386/x86-64-pseudos.d
index c55e6f4b7aa..ea5a3585c37 100644
--- a/gas/testsuite/gas/i386/x86-64-pseudos.d
+++ b/gas/testsuite/gas/i386/x86-64-pseudos.d
@@ -1,4 +1,4 @@
-#as: -O0
+#as: -O0 -march=+mpx
#objdump: -drw
#name: x86-64 pseudo prefixes
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index e59daec5514..fee227d2a4d 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -172,7 +172,7 @@ run_list_test "x86-64-specific-reg"
run_list_test "suffix-bad"
run_list_test "x86-64-suffix-bad"
run_list_test "unspec64" ""
-run_list_test "prefix64" "-al"
+run_list_test "prefix64" "-al -march=+mpx"
run_list_test "oversized64" "-al --divide"
run_dump_test "x86-64-fxsave"
run_dump_test "x86-64-fxsave-intel"
@@ -307,8 +307,8 @@ run_dump_test "x86-64-prefetch"
run_dump_test "x86-64-prefetch-intel"
run_dump_test "x86-64-smap"
run_dump_test "x86-64-mpx"
-run_list_test "x86-64-mpx-inval-1" "-al"
-run_list_test "x86-64-mpx-inval-2" "-al"
+run_list_test "x86-64-mpx-inval-1" "-al -march=+mpx"
+run_list_test "x86-64-mpx-inval-2" "-al -march=+mpx"
run_dump_test "x86-64-mpx-addr32"
run_dump_test "x86-64-mpx-add-bnd-prefix"
run_dump_test "x86-64-sha"
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index 5a3b1566e98..bb10ae8b621 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -47,7 +47,7 @@ typedef struct dependency
static const dependency isa_dependencies[] =
{
{ "UNKNOWN",
- "~IAMCU" },
+ "~(IAMCU|MPX)" },
{ "GENERIC32",
"386" },
{ "GENERIC64",
diff --git a/opcodes/i386-init.h b/opcodes/i386-init.h
index 8b54d17266c..3d12c6bd012 100644
--- a/opcodes/i386-init.h
+++ b/opcodes/i386-init.h
@@ -1481,7 +1481,7 @@
#define CPU_UNKNOWN_FLAGS \
{ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, \
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, \
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
More information about the Binutils-cvs
mailing list