From: Jan Beulich Date: Mon, 2 Dec 2024 08:39:23 +0000 (+0100) Subject: x86: default to not accepting MPX insns X-Git-Tag: gdb-16-branchpoint~253 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=57c526470bbf03220f928f0894a85c76a9659d35;p=thirdparty%2Fbinutils-gdb.git 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 --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, \