From patchwork Fri Nov 15 10:58:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 101174 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 13D3F3858C53 for ; Fri, 15 Nov 2024 11:00:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 13D3F3858C53 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=suse.com header.i=@suse.com header.a=rsa-sha256 header.s=google header.b=caLCVxLh X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com [IPv6:2a00:1450:4864:20::236]) by sourceware.org (Postfix) with ESMTPS id 8A41B3858C5F for ; Fri, 15 Nov 2024 10:58:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8A41B3858C5F Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8A41B3858C5F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::236 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1731668320; cv=none; b=KgJ/KYDACRB2y7io/nYfDAnaXhplJ7ZyQLCelgWKQO2+QlIGeYDie/CcRErjfwED+/jiMdxCkHUp9CDJ1HJ/QTb0BIxJiESWkLsgxBV4KgpDpvtFjFbOzddg6IxYGHKpy0XqHm/L4QRv4HkGnBF/lW8ouTGBmU0DzkQ6n/mJttY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1731668320; c=relaxed/simple; bh=MtPKy2MKfDJyFi9f3LN2j75cjydu9Rsg2cGBc/LqXiU=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=SbyXCLw+h4311PSJqbdsQwam3vEmBkteiCh/hW4YlyGmwg77Juo+h2P85H2BZZvcC2oPOEMz9ZXibk5GCqNLMGY+CVKh/Cm60Y/8Rkb/le8G8HaKFLXpL/uFTHEtEYQx2V0i8J162kZ6rNKaJTHGhWr3kDkGSb/3a3RRGcohA8I= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-lj1-x236.google.com with SMTP id 38308e7fff4ca-2fb4fa17044so17637641fa.3 for ; Fri, 15 Nov 2024 02:58:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1731668319; x=1732273119; darn=sourceware.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=EPyDwegW5ANv7fH/Wvm4U0XCsnDuY8cZlkRKhZGErIg=; b=caLCVxLhVjJOYEy+rYeyXDmO2tMG8B+G6UNof7vT+iRbY3YsvbZBg808mSayfMiIxc F1mWUE9x4+S4dglpmQewRBrrK+1xRPfQhpcd0PuwWorlz1dKVyaWUwa78ZmmhdUJOJ9n Q3sbX9IeTy8uNZd1NVhODMYTfZiFJwhw6RLFpl/Y1iQfnIy1rhg4oc4yjjlMTD++IVOF kB+afoLQ/8hnqEbghgcvDsxwVzx6Dh2J4gCvTgQkPRLKzH+w/phQR6lwqNC1ecc571xa THT6ErhqTIOPz9CfDzLX0EH0+Y8zP0TO6Gi2YEikszeC6cO9XFMQe0cbHvFTrtJkmtCE Du6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731668319; x=1732273119; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=EPyDwegW5ANv7fH/Wvm4U0XCsnDuY8cZlkRKhZGErIg=; b=a+ShWFZb7UCUDDR7TZUtRXTJBdU7W8kTMiTe7BT46fcTBedVfl5gYXvIUpVMi7xUQM H9vb3Lq69kvDEfsOqM5ZzPU8p4R/itAR9UuAZaCumfeiSXyXNxsVUgV0RaOom68bezaS n1pvZWq0/1elSvbupXp/yL9JsUlRKS1B+SzbLIwpEYXDVn5gLBZMoI/WcyOX+0Wdzykb MyzGjKnWfDSI5i7PC0UuQyNL9+oypoxF3nI/Lrav7ZgW787zaYR+yFupwthnewidx+gB 9lOAKubKcV36MRLNk0c8Mpx09IDCZMz9s6ejR+MA2LvV+LwdJHTYUgi80A+CpkTYGPQc RXrw== X-Gm-Message-State: AOJu0Yz/VImPE2nT8OVoC78mBzQI7ZmRneHHdZe7LNIB2W8EGs2BSVI5 5gv65pJoFt3+/6kkLxfBlbJm6M1nqRz4s2tIfMrL62RxulrdNN/rC4/by8m40neiXBiLnFuAynI = X-Google-Smtp-Source: AGHT+IH9l7HoZPK7tkw+hUxlsekyLWFo7btVHyfBaaeHjkf0blWK5DFBeuZWETh/ktyh0D5by2paag== X-Received: by 2002:a2e:b8c1:0:b0:2fa:d723:efba with SMTP id 38308e7fff4ca-2ff60621c40mr13625371fa.8.1731668318862; Fri, 15 Nov 2024 02:58:38 -0800 (PST) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-432d4788c2asm64037955e9.0.2024.11.15.02.58.38 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 15 Nov 2024 02:58:38 -0800 (PST) Message-ID: <2dec576a-3a21-4135-90f2-da34f4ee8960@suse.com> Date: Fri, 15 Nov 2024 11:58:37 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH RFC 1/2] x86: default to not accepting MPX insns From: Jan Beulich To: Binutils Cc: "H.J. Lu" References: <3ffc6c0b-4779-4dd7-90a7-150ed74b85dc@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <3ffc6c0b-4779-4dd7-90a7-150ed74b85dc@suse.com> X-Spam-Status: No, score=-3022.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces~patchwork=sourceware.org@sourceware.org Gcc9 had MPX support removed. While we don't want to remove support, require these deprecated insns (and registers) to be enabled explicitly. --- Question is whether -madd-bnd-prefix should then also enable MPX. --- 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 --- 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 --- 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 .* --- 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 .* --- 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" --- 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 --- 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 --- 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) --- 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 --- 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 .* --- 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 .* --- 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 .* --- 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 --- 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 --- 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 --- 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 --- 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 --- 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 --- a/gas/testsuite/gas/i386/x86-64.exp +++ b/gas/testsuite/gas/i386/x86-64.exp @@ -168,7 +168,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" @@ -303,8 +303,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" --- 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 --- 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 --- 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) --- 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 --- 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* --- 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 --- 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 --- 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) --- 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 --- a/opcodes/i386-gen.c +++ b/opcodes/i386-gen.c @@ -45,7 +45,7 @@ typedef struct dependency static const dependency isa_dependencies[] = { { "UNKNOWN", - "~IAMCU" }, + "~(IAMCU|MPX)" }, { "GENERIC32", "386" }, { "GENERIC64",