From patchwork Wed Sep 27 15:48:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 145429 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:cae8:0:b0:403:3b70:6f57 with SMTP id r8csp2722387vqu; Wed, 27 Sep 2023 08:50:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFUQbJWK4xmFW6gOQ86U9QL7qZXAPGVnflEiJXmdN9f2rCnPoeAO30D+YSCJ/RW5A/RmmxD X-Received: by 2002:a2e:9d5a:0:b0:2bf:a9b6:d254 with SMTP id y26-20020a2e9d5a000000b002bfa9b6d254mr2095526ljj.50.1695829845840; Wed, 27 Sep 2023 08:50:45 -0700 (PDT) Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id h19-20020a170906829300b0099e04cdb98dsi14715260ejx.310.2023.09.27.08.50.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Sep 2023 08:50:45 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=WVqn9nLE; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 415803831E20 for ; Wed, 27 Sep 2023 15:48:36 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 415803831E20 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1695829716; bh=XJ70krwPxm0LXoCfVwbPIlGD+ZMTpUhkNBOs9Ds71Y0=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=WVqn9nLEgfrYA9Zam68IFdnEgjvONH5coZbpJtN6C/PkYekqJxzQGUEhzfK2lBMNw WT0QEJoxpb0BgnMYzkzVoQOmVSjCpmcFRGcT3jTNszkZAftibCWi75C46s9zmsjSsO rebG9uWjSaWPLfdmrw2ru8+GlIrBXU16nW3xLtd4= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2068.outbound.protection.outlook.com [40.107.104.68]) by sourceware.org (Postfix) with ESMTPS id 97CBD3882641 for ; Wed, 27 Sep 2023 15:48:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 97CBD3882641 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WhjdY6r4m1ul/NkKPcfDxyb69NGBQgQ8V2AvZ28nc8/Ton9B/sOOMMnBdoaB0txjUl32F01DPG0XVUG4NkcAI4ZGf+vA2Ryq0Qd86UulKKtGKQh+gTqYv18Pz93Kc9FiwWuixG0dNhAaO3iKiJo/UkFxlZp0RD210piXlRW7T3SPqxT7K22CzTPKEGtQ3QfS8ePKI6WL9Kqct9X4KbpzNnfBYLYS3gHAUdQxLpcx8eN2KIQahi9e9CoQFxNxZl/3k6Ujtz5Wfiu6SUfHWy5iMj1OwMkK2NcE2QR1+iAqxotw/pxzEKvjB1wxIls2mwTL0/CCfMe26V+85dQUFCu1uw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=XJ70krwPxm0LXoCfVwbPIlGD+ZMTpUhkNBOs9Ds71Y0=; b=eDG7kix60NwM34beP566zdbU4MuQvKLaAQJBZ/g+O/ZRTNBp3gZUINHadxj4bUJgD2sMwhKzUMH09pLW2jim5edpq4hTex91ixBr1mzTPEs0DhejbHaiX2XJ/gjTLGAxLOAufhbWrQqsX5GYUiZJ3HP6i2Z8nrvf11z1nBBTEWMfAUfBIUr0yayf6k6YFIT5oDgZipxKPfKEtRwcCiW7UlKjfv0dLlmDzSzTPMLQd34x4MSOJ6n6nWve6pieATp2uFyPwPIGv52lXuHZOg/s1dXXYcPPqXldheE1S9OdPFJJlfa/pA7RZZ7sJp2cSle9cnteO0DcjQsX/+6ITGBUxg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Received: from AS8PR04MB8788.eurprd04.prod.outlook.com (2603:10a6:20b:42f::21) by AM8PR04MB7812.eurprd04.prod.outlook.com (2603:10a6:20b:245::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.28; Wed, 27 Sep 2023 15:48:17 +0000 Received: from AS8PR04MB8788.eurprd04.prod.outlook.com ([fe80::afae:3fda:c84d:bcdc]) by AS8PR04MB8788.eurprd04.prod.outlook.com ([fe80::afae:3fda:c84d:bcdc%7]) with mapi id 15.20.6838.016; Wed, 27 Sep 2023 15:48:17 +0000 Message-ID: <85a2958d-3a80-7bbc-ffa3-4078f34eeef2@suse.com> Date: Wed, 27 Sep 2023 17:48:15 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: [PATCH 02/11] x86: i386_generate_nops() may not derive decisions from global variables Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: <7ce54bc2-fef2-d2e4-21fd-202fdead0c20@suse.com> In-Reply-To: <7ce54bc2-fef2-d2e4-21fd-202fdead0c20@suse.com> X-ClientProxiedBy: FR3P281CA0109.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::9) To AS8PR04MB8788.eurprd04.prod.outlook.com (2603:10a6:20b:42f::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR04MB8788:EE_|AM8PR04MB7812:EE_ X-MS-Office365-Filtering-Correlation-Id: 551b06b8-32db-4c14-36ba-08dbbf712a81 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8e636IHCcLgBUE/3GjqKD7Og2VluUbzPy23MJqCJ+7BNN2U74+3eZmg+oHoOulDMVWV/XsK0uc604lICUhr3tCQaQo7gU1qiC5dRSSgHVU4tBwNnoYgjUMbHB+VxCA6n612adqcDpmRSj815HEXO55iepgzDaT4newbJ1XO9iG/BBvqSuBa8+Q9EkXPu9zAJiR32DUSifaGaKAmL2uh6oAOfVchSLccoccpsn7eTeDHd2+rkHcTqJnRm2Oi3ZYarYuSSrQ5c/5PJ68Qh9/g5CeZ3tfzDU7ewxjRuYqPf/TNtMXDAmxdJl3hZpEvv81JvDWlmm2qqiCN7qzRCjlbyir2sWrcLVKPqMFSRVPjmHpect0TpgQ5LO7PihcJSreM0IeRFx+f465tDqEnbl4kntAETHmaGgdn/AhJ2YJrIJK8N+Q/z0dyO1t31Mj78/VkqHFJ9oBzKbh2NqVmvJChbbYrlwEZSW9307CrPXvVMWwzbgmvECtweBe4Oj8qz4DXCs9qEwZYQ/XMqhQYW18D/e5Fl9/Jo1J+lalBx1H3m+t9dEklk0byfjKkmVaJH3RdKjBk1mkPLX4ur7QHxq5/ykHPFbeeuGOKZhKfa6IkVXSIZnJU9LWTZOgvbERtrw0tvmcwMErMc4cihCTeZCfTE9w== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR04MB8788.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(396003)(376002)(366004)(39860400002)(346002)(136003)(230922051799003)(451199024)(186009)(1800799009)(31686004)(4326008)(5660300002)(8936002)(41300700001)(6916009)(316002)(8676002)(36756003)(66946007)(31696002)(66476007)(2616005)(66556008)(6486002)(6506007)(6512007)(86362001)(2906002)(26005)(38100700002)(478600001)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?5v5GVweir8mEgB8vldPbkWRBlstV?= =?utf-8?q?ZDuee3oRbGZuOPzF97t6tzPSmZNfTDwRWJ2LRsbIUUdEXn/XbwY3WlRtioLyNQHgW?= =?utf-8?q?Mnr8xvMpGJFR/THiV0mVidXn9Tjuyi+zO1CUX6eQVbbBgTik9Y2+tN7mkKwUglmzJ?= =?utf-8?q?ZbNEaczvsAr1mwryDuVSKaZ5vzakBgLFfZkt5qPktszB+9nt4aaXYv6OBbNQt1Aow?= =?utf-8?q?M3Ey8evAmYjhST4/RRIugR3J46aJHy2YLNxyH12DGb+4nL4lPoYaYRZwCMjj353lf?= =?utf-8?q?Bx1nY9SUEQkZiK4X6xIZ1dg1/lclD41aIjU6he58GDvdJjFubBnkWCEJ1lehQYeph?= =?utf-8?q?pnl+fn81ObOsJrpiyEDzxMfruEvB+QiIwgARPIedVKho+qEC6EoWAVLWYzSEdckhz?= =?utf-8?q?pNekMx8eIYf6wczcjiyzbn7tCPcdJ2WscOnO5MKfXcrL/4/zA1AaCD2v47q3cjQ10?= =?utf-8?q?OYJR+6OrPRFlVoJ40j8pgIHyHP540MOWjuus/O3bkAvKIONITKGA9vyv78Q+J/nv4?= =?utf-8?q?bg6xrsjYQf4VKFYq8YoSePNGJNrvxx10JG5n0cfjY+REghMtOIV0lBAObPY4rYNzJ?= =?utf-8?q?gK/oWfpDhMdcmlCL/rDLp1d1ihmI5FVU0WbmjHGHzQQA+jLFj5UvOEX2LsguZvtrj?= =?utf-8?q?hQsdE1fVK/30f+GUtEKWj7gkFhiTWByUAK6V3kGaFwGvDGeFfYq9skxWkAo7Xir4h?= =?utf-8?q?GcMrfREkSH2VvZ+9GeBFg9Eb0BwQ+SzmYD8PVXSjZmwJniLlARMhnhkSZ91nS8Du/?= =?utf-8?q?sbWkmm2+BQVFZxTPSlYrqiDM0sF/rQoHklZAFENcFJKUKG6XF4uFE6IP4TEe9ABPp?= =?utf-8?q?ORGEYyF4krA9LjxLTcH0VeqUO9NygDUDAdZ4sKdCFq9CVB5+ngbHvMZFQz8fbV48L?= =?utf-8?q?JHYEj1fuVqQm7cYyDpMb4VlGfdz4MGGZdZeAdgXV5GJdSaFhYd/KxVTl7xcXN7mL8?= =?utf-8?q?wZrRMXh3PckBY48Oghx5yFFIxGsGrkZAuOIpXrajMaYFOeWs1HKGVRuy4SanBq1dW?= =?utf-8?q?2M1p+s8jzAD1U2bwFuLgSa43nJOkDCbV+atQSyLOaxNz64VgiEiwdUZxVNs+NhZ9I?= =?utf-8?q?z2bY8ndyoqzb8OG672lf65jgK1CaSiC3U78HqI9Bad7RcL/6p4dJFutwntQkGOABd?= =?utf-8?q?uE1+3c6nf/YrVurCXbeZE7nTDSDezM0Rbga6nmFKWOla7gSFT7xeIlOk5/I/VJLa2?= =?utf-8?q?iG3rmAdKXuIacS+LPXFrgzIl4abt+F7pBImjoXqeTPg9yJhAP8Vs8n0G2crmJBNh+?= =?utf-8?q?lAv7U4F3lwHtrhlSstFJnLJWy3hySy/pF6ilztPuKKFm3pkEPDLavqLlMF0O6ENSi?= =?utf-8?q?PFNDwjQS2iBNuVauIFU5GMJptviBZgWNUwcp49rLSMEVp0ohEpjWb0cxLurHKAl/S?= =?utf-8?q?PiihpVVZIc1h4+8uwaG/iBFpLH7WEJHFOOVCAUicge9+MBoMFnn9Nm/rquGUDX7sP?= =?utf-8?q?8YxynU5TofK2VawqmgAWHSU/zsUSIIcrL2Lew46ddlBZKjyN9sKdEa9v8JYQoP1Xl?= =?utf-8?q?7WGt1ce7ULi6?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 551b06b8-32db-4c14-36ba-08dbbf712a81 X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8788.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Sep 2023 15:48:17.0889 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hN2HiWXeDT1U0toAU5SrYPrd9W00dWfdqIX5NM/w9QkibgSuE2w68MhcbI/ORO/oLd97dOs9t/cI2rGnXizmvg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7812 X-Spam-Status: No, score=-3026.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, 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: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1778206476294586374 X-GMAIL-MSGID: 1778206476294586374 What matters is what was in effect at the time the original directive was issued. Later changes to global state (bitness or ISA) must not affect what code is generated. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -1434,7 +1434,7 @@ i386_generate_nops (fragS *fragP, char * When -march= or .arch is used, we can't use anything beyond cpu_arch_isa_flags. */ - if (flag_code == CODE_16BIT) + if (fragP->tc_frag_data.code == CODE_16BIT) { patt = f16_patt; max_single_nop_size = sizeof (f16_patt) / sizeof (f16_patt[0]); @@ -1446,7 +1446,7 @@ i386_generate_nops (fragS *fragP, char * if (fragP->tc_frag_data.isa == PROCESSOR_UNKNOWN) { /* PROCESSOR_UNKNOWN means that all ISAs may be used. */ - switch (cpu_arch_tune) + switch (fragP->tc_frag_data.tune) { case PROCESSOR_UNKNOWN: /* We use cpu_arch_isa_flags to check if we SHOULD --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -148,6 +148,7 @@ if [gas_32_check] then { run_dump_test "nops-7" run_dump_test "nops-8" run_dump_test "nops-9" + run_dump_test "nops-10" run_dump_test "noreg16" run_list_test "noreg16" run_dump_test "noreg16-data32" --- /dev/null +++ b/gas/testsuite/gas/i386/nops-10.d @@ -0,0 +1,13 @@ +#objdump: -drw +#name: nops 10 + +.*: +file format .* + + +Disassembly of section .text: + +0+ : +[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi +[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi +[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea 0x0\(%esi\),%esi +#pass --- /dev/null +++ b/gas/testsuite/gas/i386/nops-10.s @@ -0,0 +1,6 @@ + .text +default: + movsbl %al,%esi + .p2align 4 + + .code16 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-nops-6.d @@ -0,0 +1,13 @@ +#objdump: -drw +#name: x86-64 nops 6 + +.*: +file format .* + + +Disassembly of section .text: + +0+ : +[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi +[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw (0x)?0\(%rax,%rax,1\) +[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax +#pass --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-nops-6.s @@ -0,0 +1,7 @@ + .text +default: + movsbl %al,%esi + .p2align 4 + + .code32 + .arch generic32 --- a/gas/testsuite/gas/i386/x86-64.exp +++ b/gas/testsuite/gas/i386/x86-64.exp @@ -116,6 +116,7 @@ run_dump_test "x86-64-nops-4-core2" run_dump_test "x86-64-nops-4-k8" run_dump_test "x86-64-nops-5" run_dump_test "x86-64-nops-5-k8" +run_dump_test "x86-64-nops-6" run_dump_test "x86-64-nops-7" run_dump_test "x86-64-sysenter" run_dump_test "x86-64-sysenter-intel"