From patchwork Wed Sep 27 15:53:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 145441 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:cae8:0:b0:403:3b70:6f57 with SMTP id r8csp2726235vqu; Wed, 27 Sep 2023 08:57:44 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHtSkt74HT898ptHKDGBGr4qI5ffx9XHrjLdb95JErwdSXbl+KrNkjt3UGjVwRFoGb8yhOp X-Received: by 2002:aa7:d7d1:0:b0:52f:34b3:7c4 with SMTP id e17-20020aa7d7d1000000b0052f34b307c4mr2523340eds.39.1695830264283; Wed, 27 Sep 2023 08:57:44 -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 l13-20020a056402028d00b005344aaf2904si4842548edv.500.2023.09.27.08.57.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Sep 2023 08:57:44 -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=pVy+Hmm0; 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 8F6093896C30 for ; Wed, 27 Sep 2023 15:53:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8F6093896C30 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1695830008; bh=cmHXLLJjdKxxiJm8NsJ/3kA8BhlfQa264kLUnkkKNug=; 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=pVy+Hmm0tZKZ2PJ5vQpYYgd3B742FQapddQpNKAQYpf7/38hIY12bTTq6Kpbk+D9s dsgGdUqfDr8nkM8aTZlFEm9JafgSMSWCD1XloER2SaN0Y83MnTIrTUBT+DZNHB79vI rcbZ43QRymZegmL+5e2hwYIMh372C8IxUQK9htco= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2078.outbound.protection.outlook.com [40.107.20.78]) by sourceware.org (Postfix) with ESMTPS id 8CFFB3831E12 for ; Wed, 27 Sep 2023 15:53:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8CFFB3831E12 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KA7WxrSNokaVxdOccJeB8tZ0C8fVdYQIFNJ4S5LMfeCp/6XZoFHJ88LRcA7MFckz4rTHZv8BEZXuEuWjBlCO+0HgGxBkV1qF9TigXIsuX4oMSnqrrjjR9frc5hQXfF7lKkKbK97s8OYi8TUPwFj9KxJcExavaESQ4umqgcQGW1UCpL+3mqlaNoxUOjK5LtkMEPKoGHvTsy4gx3D5R6cjSlh+oqokEfP39yZLd/OQWcWAtPA6ocApKfLeVyetT8/7S2aa/teQvIoT19aA0V3t7IsAETaVkd5HMqMEfenKyFuUuPk7lOpPDkY4l3rtHoEAQHz+/EoEor2DZwz+ruPkTg== 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=cmHXLLJjdKxxiJm8NsJ/3kA8BhlfQa264kLUnkkKNug=; b=AAxvOt7WE+NJOQhclrDRHrTbMew2/TumKuRqdXQhoMIPUzoVGuxsFLpW2VNpjzmlwTkr4hfCkgFZZzAdThrrCaB+tzvsRNxwSvj8s1ya8SIsnw5lArJcx1Jy/Sx/Ve5p2R1SNp3hViIphLPwcavXo6/N4SBPTtjq9l2drMn1aJal3f7TzsaEUsdkk+rcI+zL+SGeQWrmVFzMyhH9Hk6Dy+mTyGJxZ22c2yZQyNzonrQ6++s+uw+QpiRdAHd0OI0mJ2dKn4qfakGggKVZgPqmOuBDCyMdCaT8IM+5W5cGKcU5QOODsRoz9Mg2d/OlPNuzrtmjFU3pAE8D6iUBfPcdAQ== 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 PAXPR04MB9138.eurprd04.prod.outlook.com (2603:10a6:102:22d::22) 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:53:18 +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:53:18 +0000 Message-ID: <8e35142f-eb0f-7308-e241-407e136390c8@suse.com> Date: Wed, 27 Sep 2023 17:53:16 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: [PATCH 11/11] gas: make .nops output visible in listing 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: FR0P281CA0151.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b3::19) To AS8PR04MB8788.eurprd04.prod.outlook.com (2603:10a6:20b:42f::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR04MB8788:EE_|PAXPR04MB9138:EE_ X-MS-Office365-Filtering-Correlation-Id: 7bc9c6f3-edef-4a3d-6d52-08dbbf71dde6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GoPxocH4iAA/21dVktjfaMSfZQ7Dh0XF8m9h/lP81ZUOTy3uMOzvLBLZXyoor7o1k1r3wqOVIqS0JwLr33GGE5B65NqVa90ubpGXAU438J76u9WUZ8x0gT1KkYT/oxB6r6/OD/8y9gY97gWBCvQ4/tTXTZ+3pcCpqWUZ3SRiKHVwea8Ml3E4hQ5/eNXihdESlY6lEtySFBo3Eig7Pmfelb47AWkMMKPfu1XRgapdqb9JmqIcAB0WVRKpwM4osBBsEMl2TTmZiBkiNtQ5vr558eqZfWfQicSbFF63fvEVEbyLGw/IgHBe4evYErsRjXkvZWJypFV5TcdR+cEQATZqETX4KF6dwIQyO4E+euU1abX7u+v01xcNCNODoZfPFBG8ClVKfw936EwlEZoMb0vXf5TLYnfcV7VENhC3RK0iP7suNV0TZbbcFJNyxnxkAoZecsMqn+xKCRg3EHCywaS8Ql065uyncbnrZ7Pzb3QDBt8kOos3EXrArdnsy1jb0BMBCT0ACoBpMpB9uZqbUu+CNeBuU3I9zKr5Xd2rNNZ5lnW212+j8MTOYstCK3JfZIlkMvqXqFofm1I0/HLg4ZBPNSB05Qzl3XlBFXJTov1o3/9QeFem2QJYKDmeZbpkyVToZAHGcSJZLsRe3t9ITNC335uALQTcE4eNDqvfhpx9+Q2Sa78x/g7JEM6Yaom5KTZI 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)(136003)(396003)(346002)(366004)(376002)(39860400002)(230922051799003)(1800799009)(451199024)(186009)(6512007)(6506007)(2616005)(8936002)(26005)(2906002)(478600001)(4326008)(66556008)(66476007)(6916009)(66946007)(316002)(5660300002)(41300700001)(8676002)(36756003)(31696002)(6486002)(38100700002)(86362001)(31686004)(142923001)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?Bw8zbLAAPrFCG2gN9fOoQObvqqR/?= =?utf-8?q?PEVKB5H1P87qgaVR/ModPD1/dv9gzM3nnaR2F86X7kVK1ibaNh7WIB3mYARmMndQc?= =?utf-8?q?3BcjrOYYCme44iZRwjfI9Am7EY10bqYrG5Z4ZlqyYewuv5T5qBi0tUsj8E0pfFkPn?= =?utf-8?q?l84BM7RPsyoiinb2VPQSTOyKOngqVlZqlvE7aTZStUYS8ZVJx/lGwa2MPh0Oqjtb1?= =?utf-8?q?P4IV5i//K+dVOGjbjgMcSBzKTNACcA6EL5jjrQ7YK001hL+1P7eOUstpCxwyVDdOy?= =?utf-8?q?unvYLZkHDuGppkL4E3WkE1y/S/1MeqnsoI9hzScJXjOldqAP4t5vieRDnaGHLNeJr?= =?utf-8?q?jQqb7g+9Ie2g+NNhansmbQWkZ1P3r9ZKveZCn5lhhLhbm7rpqBQAYW/HWG3qozHbs?= =?utf-8?q?plWoPcOLuFcIMSObMufDIYgV7jBzTYSWL3+e071evJiA+Nj5AMF2zItVvUNaZKP0s?= =?utf-8?q?yz8bbwqGzTORXoAU2AGcZRFtpjpuRgMFecetuzod+kCAevpZs8ewM93YOJJpu48V0?= =?utf-8?q?LzAB+m0pbv8idzXUY0T4LzkN1OwCBsaflLVMfXy+42UyomdabeDuAyDbweZR+m2Rz?= =?utf-8?q?HRNi/oz7CEDJ59FCo3hT5DVss/4vhrFA02lJSHRewfC0qUK1RuMXlWe3R/oJfetOv?= =?utf-8?q?h8X4JJDrREPJevNcDwKfHHkGNxoG0eYWjiGi4MepZ7adZGwtid2ovAqv5niPv+Y7E?= =?utf-8?q?JbyvBWXw+KFm7I/jx+eS2WbI+ppS/FuBGE/YMbA0LqGvBSWh5KXfFbE9LYg/si94/?= =?utf-8?q?TlCgR4gzt3Nnp0C1Nc0qmDJxSqo3T3BBi9VBHDhUzzfxwP8r58NdCL3pNc2VISL7G?= =?utf-8?q?/b8bhfnY7m3p1+JT11yXPKKJAAOUuYq6lwMIgVLdtvDRcICydWyrD9OLg0zdxP3FZ?= =?utf-8?q?r0uhtdvxhIB/CoGbFyjc30TLPzA6qaeuP9B9lafeIw43IoYsWINN4tct/lFypfbbx?= =?utf-8?q?s2z+9byx68h5qvgY9NZ4SReay0i+WrSQ0qHdQBEMG0uNhC1pO4n309sPA/nFk4nyB?= =?utf-8?q?m+s7W3k8QhMw/mMC+BoPsoTvbNJhFatd3Qen0n5ekH1gHysfVilvAOfvYOcSFscUU?= =?utf-8?q?Zbqgw24fhlGfcHwC1oO+5kTykibYR/GUvgj4PZSghM4cSFKay7B9YDb4hUuUcSIpl?= =?utf-8?q?QfqFIMoQcRGUXcIdgTl0WNFgm0aq11HqBLwBTFtMuSyhrNYmE5h+CjeJb0qnvU5f+?= =?utf-8?q?r/Fr/AuUpvnVCnP4G4DZuTxMh3WK+WXLkyxNhpQxWB2FvrnyMc4D4LjMmx9m+mHRy?= =?utf-8?q?JZcOn7htKcMEn9Q/mLox6TCtv38lsDkC7UIbsbkCcZFBhyf0u7Prvgei6ynX0LuQQ?= =?utf-8?q?4Du+ETemrdMHPSrtlUKLkaSUoUYfU0LTpYLKhLDoEgnXITNQ72Yl1jjrNhvZdxNYr?= =?utf-8?q?djKoCQtnxUPbg5+norApk9Tpu6SBjRah+IE4EVlK/j3bpCb0XYlKv9+qTGyPMi9D0?= =?utf-8?q?AgYWGgjiFK4e+M6Kaq75AgAvSc0MBlIMwED8YshYzsWH7imuC5iThy05Buijk+kRS?= =?utf-8?q?t7djGfSkjQmZ?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7bc9c6f3-edef-4a3d-6d52-08dbbf71dde6 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:53:18.0143 (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: dOxk9poztiLCtZkr6NukWA0KM33l9GSFuVv2qIB1B+IN0MaUQl1DLdzDMpYZLL33GD/ft91dZaPXlLQ/TG1QPw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB9138 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_PASS, 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: 1778206914752348599 X-GMAIL-MSGID: 1778206914752348599 Due to using a different frag type (in turn due to storing data differently), making the resulting code appear in listings requires special handling. --- a/gas/as.h +++ b/gas/as.h @@ -247,7 +247,9 @@ enum _relax_state 1 constant byte: no-op fill control byte. */ rs_space_nop, - /* Similar to rs_fill. It is used to implement .nop directive . */ + /* Similar to rs_fill. It is used to implement .nops directive. + When listings are enabled, fr_opcode gets the buffer assigned, once + that's available. */ rs_fill_nop, /* A DWARF leb128 value; only ELF uses this. The subtype is 0 for --- a/gas/listing.c +++ b/gas/listing.c @@ -815,6 +815,28 @@ calc_hex (list_info_type *list) var_rep_idx = var_rep_max; } } + else if (frag_ptr->fr_type == rs_fill_nop && frag_ptr->fr_opcode) + { + gas_assert (!octet_in_frag); + + /* Print as many bytes from fr_opcode as is sensible. */ + while (octet_in_frag < (unsigned int) frag_ptr->fr_offset + && data_buffer_size < MAX_BYTES - 3) + { + if (address == ~(unsigned int) 0) + address = frag_ptr->fr_address / OCTETS_PER_BYTE; + + sprintf (data_buffer + data_buffer_size, + "%02X", + frag_ptr->fr_opcode[octet_in_frag] & 0xff); + data_buffer_size += 2; + + octet_in_frag++; + } + + free (frag_ptr->fr_opcode); + frag_ptr->fr_opcode = NULL; + } frag_ptr = frag_ptr->fr_next; } --- a/gas/write.c +++ b/gas/write.c @@ -1682,7 +1682,12 @@ write_contents (bfd *abfd ATTRIBUTE_UNUS bfd_get_filename (stdoutput), bfd_errmsg (bfd_get_error ())); offset += count; - free (buf); +#ifndef NO_LISTING + if (listing & LISTING_LISTING) + f->fr_opcode = buf; + else +#endif + free (buf); } continue; } --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -598,6 +598,7 @@ if [gas_32_check] then { run_list_test "inval-pseudo" "-al" run_dump_test "nop-1" run_dump_test "nop-1-suffix" + run_list_test "nop-1" "-aln" run_dump_test "nop-2" run_dump_test "optimize-1" run_dump_test "optimize-1a" --- /dev/null +++ b/gas/testsuite/gas/i386/nop-1.l @@ -0,0 +1,39 @@ +[ ]*[0-9]+[ ]+\.text +[ ]*[0-9]+[ ]+single: +[ ]*[0-9]+[ ]+\.nops 0 +[ ]*[0-9]+[ ]+.... 90[ ]+nop +[ ]*[0-9]+[ ]* +[ ]*[0-9]+[ ]+pseudo_1: +[ ]*[0-9]+[ ]+.... 90[ ]+\.nops 1 +[ ]*[0-9]+[ ]* +[ ]*[0-9]+[ ]+pseudo_8: +[ ]*[0-9]+[ ]+.... 2E8DB426[ ]+\.nops 8 +[ ]*[0-9]+[ ]+00000000 * +[ ]*[0-9]+[ ]* +[ ]*[0-9]+[ ]+pseudo_8_4: +[ ]*[0-9]+[ ]+.... 8D742600[ ]+\.nops 8, 4 +[ ]*[0-9]+[ ]+8D742600 * +[ ]*[0-9]+[ ]* +[ ]*[0-9]+[ ]+pseudo_20: +[ ]*[0-9]+[ ]+.... 2E8DB426[ ]+\.nops 20 +[ ]*[0-9]+[ ]+00000000 * +[ ]*[0-9]+[ ]+2E8DB426 * +[ ]*[0-9]+[ ]+00000000 * +[ ]*[0-9]+[ ]+8D742600 * +[ ]*[0-9]+[ ]* +[ ]*[0-9]+[ ]+pseudo_30: +[ ]*[0-9]+[ ]+.... EB1C2E8D[ ]+\.nops 30 +[ ]*[0-9]+[ ]+B4260000 * +[ ]*[0-9]+[ ]+00002E8D * +[ ]*[0-9]+[ ]+B4260000 * +[ ]*[0-9]+[ ]+00002E8D * +[ ]*[0-9]+[ ]* +[ ]*[0-9]+[ ]+pseudo_129: +[ ]*[0-9]+[ ]+.... EB7F2E8D[ ]+\.nops 129 +[ ]*[0-9]+[ ]+B4260000 * +[ ]*[0-9]+[ ]+00002E8D * +[ ]*[0-9]+[ ]+B4260000 * +[ ]*[0-9]+[ ]+00002E8D * +[ ]*[0-9]+[ ]* +[ ]*[0-9]+[ ]+end: +#pass