From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 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-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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cmHXLLJjdKxxiJm8NsJ/3kA8BhlfQa264kLUnkkKNug=; b=TEoLtLTOCZCcMhTtRnfCCXsswL9OvZgd5x0optOKA3UQ4gIj/ieNcn/vPBp/ufScB09aAk8ac7mCslPSAN4NkssDnxCh+7h1J7ZQomcF3C/Fg3GqAmRGqjcIKQkwWh6tj3pcVTKZKW1rpqk8OkBf49IPBeGVeyZOTqG1qosAMOIMndurd6AFOkfu58fOGhyYCAiWMXX6u/eZMDvdXLZY1XWr2J56/ytZ/zqdZwdp0ERjx+FBSIXFBVV2Gm/8tyaa3IrZpx39QlXf8xbB4hR5hi7dWlSfnvD4Ez1yAPCb9pYJdDzYgie0ThBSJGAI5u28f1psbvgxE397H8j7ZGKSwQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; 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> From: Jan Beulich In-Reply-To: <7ce54bc2-fef2-d2e4-21fd-202fdead0c20@suse.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit 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?B?Qnc4emJMQUFQckZDRzJnTjlmT29RT2J2cXFSL1BFVktCNUgxUDg3cWdhVlIv?= =?utf-8?B?TW9kUEQxL2R2OWd6TTNubmFSMkY4Nlg3a1ZLMWliYU5oN1dJQjNtWUFSbU1u?= =?utf-8?B?ZFFjM0JjanJPWVlDbWU0NGlaUndqZkk5QW03RVkxMGJxWXJHNVo0WmxxeVll?= =?utf-8?B?d3V2NVQ1cUJpMHRVc2o4RTBwZkZrUG5sODRCTTdSUHN5b2lpbmIyVlBRU1RP?= =?utf-8?B?eUtPbmdxVmxacWx2RTdhVFpTdFVZUzhaVkp4L2xHd2EyTVBoME9xanRiMVA0?= =?utf-8?B?SVY1aS8vSytkVk9HamJqZ01jU0J6S1ROQUNjQTZFTDVqanJRN1lLMDAxaEwr?= =?utf-8?B?MVA3ZU9Vc3RwQ3h3eVZEZE95dW52WUxaa0hEdUdwcGtMNEUzV2tFMXkvUy8x?= =?utf-8?B?TWVxbnNvSTloelNjSlhqT2xkcUFQNHQ1dmllUkRuYUdITE5lSnJqUXFiN2cr?= =?utf-8?B?OUllMmcrTk5oYW5zbWJRV2taMVAzcjlaS3ZlWkNuNWxoaExoYm03cnBxQlFB?= =?utf-8?B?WVcvSFdHM3Fvekhic3BsV29QY09MdUZjSU1TT2JNdWZESVlnVjdqQnpUWVNX?= =?utf-8?B?TDMrZTA3MWV2SmlBK05qNUFNRjJ6SXRWdlVOYVpLUDBzeXo4YmJ3cUd6VE9S?= =?utf-8?B?WG9BVTJBR2NaUkZ0cGpwdVJnTUZlY2V0dXpvZCtrQ0FldnBaczhld005M1lP?= =?utf-8?B?SkpwdTQ4VjBMekFCK20wcGJ2OGlkelhVWTBUNEx6a04xT3dDQnNhZmxMVk1m?= =?utf-8?B?WHkrNDJVeW9tZGFiZUR1QXlEYndlWlIrbTJSekhSTmkvb3o3Q0VESjU5RkNv?= =?utf-8?B?M2hUNURWc3MvNHZockZBMDJsSlNIUmV3ZkMwcVVLMVJ1TVhsV2UzUi9vSmZl?= =?utf-8?B?dE92aDhYNEpKRHJSRVBKZXZOY0R3S2ZISGtHTnhvRzBlWVdqaUdpNE1lcFo3?= =?utf-8?B?YWRaR3d0aWQyb3ZBcXY1bmlQditZN0VKYnl2QldYdytLRm03SS9qeCtlUzJX?= =?utf-8?B?YkkrcHBTL0Z1QkdFL1lNYkEwTHFHdkJTV2g1S1hmRmJFOUxZZy9zaTk0L1Rs?= =?utf-8?B?Q2dSNGd6dDNObnAwQzFOYzBxbURKeFNxbzNUM0JCaTlWQkhEaFV6emZ4d1A4?= =?utf-8?B?cjU4TmRDTDNwTmMyVklTTDdHL2I4Ymhmblk3bTNwMStKVDExeVhQS0tKQUFP?= =?utf-8?B?VXVZcTZsd01JZ1ZMZHR2RFJjSUN5ZFd5ckQ5T0xnMHpkeFAzRlpyMHVodGR2?= =?utf-8?B?eGhJQi9Db0diRnlqYzMwVExQekE2cWFldVA5QjlsYWZlSXc0M0lvWXNXSU5O?= =?utf-8?B?NHRjdC9sRnlwZmJieHMyeis5Ynl4NjhoNXF2Z1k5Tlo0U1JlYXkwaStXclNR?= =?utf-8?B?MHFIZFFCRU1HMHVOaEMxcE80bjMwOXNQQS9uRms0bnlCbStzN1czazhRaE13?= =?utf-8?B?L21NQytCb1Bzb1R2Yk5KaEZhdGQzUWVuMG41ZWtIMWdIeXNmVmlsdkFPZnZZ?= =?utf-8?B?T2NTRnNjVVVaYnFndzI0ZmhsR2ZjSHdDMW9PKzVrVHlraWJZUi9HVXZnajRQ?= =?utf-8?B?WlNnaE00Y1NGS2F5N0I5WURiNGhVdVVjU0lwbFFmcUZJTW9RY1JHVVhjSWRn?= =?utf-8?B?VGwwV05GZ20wYXExMUhxQkx3QlRGdE11U3lock5ZbUU1aCtDamVKYjBxbnZV?= =?utf-8?B?NWYrci9Gci9BdVVwdm5WQ25QNEc0RFp1VHhNaDNXSytXWExreXhOaHBReFdC?= =?utf-8?B?MkZ2cm55TWM0RDRMak1teDltK21IUnlKWmNPbjdodEtjTUVuOVEvbUxveDZU?= =?utf-8?B?Q3R2Mzhsc0RrQzdVSWJzYmtDY1pGQmh5ZjB1N1BydmdlaTZ5blgwTHVRUTRE?= =?utf-8?B?dStFVGVtcmRNSFBTcnRsVUtMa2FTVW9VWWZVMExUcFlMS2hMRG9FZ25YSVRO?= =?utf-8?B?UTcyWWwxampyTmh2WmR4TllyZGpLb0NRdG54VVBiZzUrbm9yQXBrOVRwdTZT?= =?utf-8?B?QmpSYWgrSUU0RVZsSy9qM2JwQ2IwWFlsS3Y5K3FUR3lQTWk5RDBBZ1lXR2dq?= =?utf-8?B?aUZLNGUrTTZLYXE3NUFnQXZTYzBNQmxJTXdFRDhZc2hZenNXSDdpbXVDNWlU?= =?utf-8?Q?hy05Buijk+kRSt7djGfSkjQmZ?= 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 List-Id: 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