From patchwork Mon Apr 24 07:35:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 86887 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2564673vqo; Mon, 24 Apr 2023 00:36:47 -0700 (PDT) X-Google-Smtp-Source: AKy350aJcbxvEgGNjZa4vZotjTLK8YHXBpenMv1QdrfiFQaW1Xu3e72TR3v5fMeaPuCFYCgfqdo0 X-Received: by 2002:a17:906:ce55:b0:931:624b:680c with SMTP id se21-20020a170906ce5500b00931624b680cmr8266667ejb.29.1682321807175; Mon, 24 Apr 2023 00:36:47 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id n21-20020a05640206d500b005021f0d5758si7870077edy.671.2023.04.24.00.36.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Apr 2023 00:36:47 -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=cNUfBzE0; 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 135DF3857723 for ; Mon, 24 Apr 2023 07:36:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 135DF3857723 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1682321775; bh=lX/Vqw+0EZuRCFknc6e5XcYGTHDyesuXxb6fsYJnWeU=; 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=cNUfBzE0t1c/UsUBSnAP5eD7E45V47jSxLbztC1QVGp1v8ku+ej6EilBAqoi4V+IF kJ2CBAlwkJc8yioGx40dgcCpzKQs9DAtOiF8IbYZbgk68jNILnnCs3kxF2fk9CugO0 pjEcP7dAqO1YAOd0ZC30Yp08WMjjPcrfriEtt+SQ= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2088.outbound.protection.outlook.com [40.107.6.88]) by sourceware.org (Postfix) with ESMTPS id 3A973385771A for ; Mon, 24 Apr 2023 07:35:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3A973385771A ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TdTMzUOWLw3jJbuIuYth6zL0s+x8VNisM+gb4NLrOjgNdzCX9V4jnAcPK79boo/vSlACvZ5rJvqrODIft4LVUvhmeWXAYJHM8IB7fxHUqx+u47wM84pc6wxZgb/t29GhrTqaPigtuc4YsnZKNShx4jrcuhdPJVVXCSEHrDAubjvMKOKz99xObz7rapT8qG06nR66iC4nbTmctxq+kVsmLDibweISQczArSVwBaCCa9KOQi2tIviVBzonrgV8IwwynmVDrki4FQbE5Ufn4+Vi1mdjRi5wvcvujzcgyI3RWtP9NsCFNe+NdXb7QyaObeAXwwggclBmXgbfBpziMT1SCQ== 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=lX/Vqw+0EZuRCFknc6e5XcYGTHDyesuXxb6fsYJnWeU=; b=AfC2M+NCwFakqOoGknHtkEEa5JoCfW53I8+dQQAuzh2AEiVTWzbctSkJ+b3Czt+FcfmYyvWni3wJRP0rSlFEHjDaHcGZh1RdxY6zbRlXinBLfYS3TxOaKy9okUPyOLe/5GOqGEzmEhYO6KY5VWMhcrVRcO8pMEuQ5WbrWoh8AuJCXmjl5ZJ99RGWkr9hNEvP5OqIspXaKvsa8pqqaQP7Yxjet+otRFGbNxCtkb9HlNaZIgtkG9tkElzSI37cyxOS20tCKI2WckURS57xHZqQCAZTC8NuvmoqYKtf8Kw/rp9/zubV2JPP6S0Oh5C8Dmyd+ImJMCiQ2qp73t9pkSAVqA== 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 VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by DB9PR04MB8156.eurprd04.prod.outlook.com (2603:10a6:10:246::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.33; Mon, 24 Apr 2023 07:35:27 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::52b2:f58:e19:56ae]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::52b2:f58:e19:56ae%2]) with mapi id 15.20.6319.033; Mon, 24 Apr 2023 07:35:27 +0000 Message-ID: Date: Mon, 24 Apr 2023 09:35:28 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: [PATCH 3/3] x86: limit data passed to i386_dis_printf() Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: <61597ebf-cc5e-2029-6520-31f7adfeea68@suse.com> In-Reply-To: <61597ebf-cc5e-2029-6520-31f7adfeea68@suse.com> X-ClientProxiedBy: FR2P281CA0018.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a::28) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|DB9PR04MB8156:EE_ X-MS-Office365-Filtering-Correlation-Id: 7a399837-52c7-475c-273b-08db449678f9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: eGId8SbtNOHNobT7tukYUZXmfzqRbc808Tx9b3wbWlt94C/As4I3Z1TC3tuGKWl/jWTo7ooQeM+UJbx8m14zkpARu+4X9EWeAFCa24K7d3O44yop+k8Do5hc+7jtb0wK5qBCx7BUs3Zk6jhKChLb2FBM+o5rp0RnEhYc/eFLhyjDVRkjF9G4wQD4qAQDIeGOHAK+wIgorL04bmdeg65PCdmbp7tzI4K0xV5pXr15UpY3Ijgj2cqr/ezKfh4S8JfFbGYKxy7xe67lq7/nLFPrm2BRIbFjMbUyRFTPFXqrVSzQqpRPYBRFYDv1rFIHHy63R6kS06iJ9gJgZ9SlfPLJk6NKIHDgYyrf5yK58ujvpw0vbnkNoxbx12CXNP/KZD7KFYfr/0KBvwXFsOp3Ni6bdeD6sAUTJ7t33BCKipaPD74EQrLj9IyoufIBE0IkJ9X6UinxFxPmBHk6SQXsEav6j6bFp2qm+8AippoaCd+FogXgI2Z+e+LqrJ9ps5FLoR0E7M1nrJ4is2CWNrGx5z4NCkcMg4z73fnt+lri55wqShZuFG0/DNTaSjyR0hsMx8ZIQpVRURxG02YB5FJm2dcq7gFRQwiEXJ0UWOgTPJXD0m4RBYczhNnxmGL9q3+eCTFttmigNiI6Mn/tkLg6/o5uuw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VE1PR04MB6560.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(396003)(376002)(346002)(136003)(39860400002)(366004)(451199021)(2906002)(6486002)(2616005)(6512007)(6506007)(26005)(186003)(66946007)(66556008)(66476007)(8676002)(8936002)(316002)(41300700001)(6916009)(4326008)(478600001)(5660300002)(38100700002)(36756003)(86362001)(31696002)(83380400001)(31686004)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?Ikm21ahZBMO3pjhJ0/H0WH1uZ/VW?= =?utf-8?q?Q+2+K8ijG3A5+7GRnK4VzsmgswWqfATKAQueASglT/rJUBbCCJ2FWM933NnH9+W2s?= =?utf-8?q?4adv5ainnnpIBFy2BKblb3ZH8ZEMCwQobcfYM+7CSgSJ3beaC0bLR7Hv1rWERnD/J?= =?utf-8?q?5o67nr5lLTYc68xllexaZQBORzTbeCEYK6RwiWlpnwu5P/h8NonBQKL/O3LTXGxce?= =?utf-8?q?B2Of3XPEo7k6wwaUo/h7BaB5IDAansSIxNrYa8ZfiiQznajQ8BJA4sxIa706vmHNn?= =?utf-8?q?GB6Lj0Mm8LimzXE7EtJEC/AlVmcyKh4f7vdFORqLyfTZiynkCRfdLf/u0SGWExjRN?= =?utf-8?q?CStABF5s/Ekuyjoo2ecNRZdMAdtLfFkDpcMOa7wQFajW2Yv7heDeQOxwsL6qqPDba?= =?utf-8?q?Ajd0Uiq4C5PsX/7sdLpvsA1UYqB7hcrJtlQFI5TzjhGzmouAsXW4ZPIHvJrWwob24?= =?utf-8?q?PaFrW55zJtpgGsuVIzill/Bkmq1W9viC3ajBPSwF8f0LlsIWd4QllePAF4tGpehe7?= =?utf-8?q?IHhdeBpk06KUKYUXhI1gLjd3We27952yO23l3oqnAg6YD05DdxPBpeXnZz40EJCRt?= =?utf-8?q?Et5GJIBm9p5KoZQA5OhMM2e/u8yZlkdzdxMUF1rGq6Bj841cCUOtH9zIY1ysmAMtI?= =?utf-8?q?a3DZucE6dEK5mqlrHpYCUECFu5K8kLS/DEcLT/d3lApm4ZthHpvHsd+8+YWKex5e9?= =?utf-8?q?yaI9741QucdQvO3vGkiJrZCxA2FGKhhTUfIiGU7zB9gbhv4nwh2djel9bwasorjv/?= =?utf-8?q?wiMab+J38cK8Mbmk1Le159Ad3z2XuAZSzlBVQ9d5PSJxY0soHuixCuLx2JUx9EoUn?= =?utf-8?q?tynQKhNOnwzO+AFfb3u8wL2mTSflNFBTfLGLZ0nFy05r6S9rs3cL8y/KlNaEQgzgc?= =?utf-8?q?2HZP2dUirVhMzQtDV5CxZw2XkaqpO8XuPrUP0ggOSNDyOHi0wEh0CZhvGVei1XpD/?= =?utf-8?q?hmXc74PMKhM3OFq1qxFTzBI3dz+JOIoeA5gjzYujnZii91Nd/34Apdd7bmmavpUIO?= =?utf-8?q?8vJuCviy/SVdLYWC8RIjd4dQPdlVwalQ9sNQlY9H1nnfFOuz7QCGaCUANDXadjoo0?= =?utf-8?q?5b12MYVv9PnOm4+U1tVPqIh6R3HdybBqX5I6NUwRZiHgpKECbbdM+5C3B0fbDLD5L?= =?utf-8?q?A13DPO5uQZ/dLD+bYSXlLD2TVoM2ZEx1mc1KJaNFvoPGfnjguxHWZ2zKimNLGf2MZ?= =?utf-8?q?m3AtOmUZBT7KfEfcEMq9JYfNFxnbR/O/kO1972iXus+l5Tea9LYG8b73if7IeH8wf?= =?utf-8?q?DDfj29UC5k9u4kh28kepGBQNtR7D27f/8gjuZ4Yjzzo2Uy258OyJwLq7p0I1W0n8H?= =?utf-8?q?rw/HcP6kbN4U75w52gQj8J2XgrAZHwoH0tUUsWKynIvCMOAleMfFsUAWbymY6aU7I?= =?utf-8?q?Wlq+Q4Z4Z6VlXYWbdgCBXgl2dZ94jeOPoEShx54BwUJzBWUXBLl+/Ojfshz/jrcmc?= =?utf-8?q?hTvuPD9yInnw7QZmnonweQLisVXYNgE99seDM8fdESZ32hUnbBw9VPAppQePiiPUX?= =?utf-8?q?lYlvG/AdR56D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7a399837-52c7-475c-273b-08db449678f9 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2023 07:35:27.0505 (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: rNiGhkEVOJAraL3rNqdiphw76GNYkUkl0UFz2G25RnmR4jdJC7L4PykZ1meYgB5bbnQtxH0RDZdTTMJfSKEJLg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8156 X-Spam-Status: No, score=-3028.0 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, T_SCC_BODY_TEXT_LINE 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.29 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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1764042271336427131?= X-GMAIL-MSGID: =?utf-8?q?1764042271336427131?= The function doesn't use "ins" for other than retrieving "info". Remove a thus pointless level of indirection. --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -114,7 +114,7 @@ static bool MOVSXD_Fixup (instr_info *, static bool DistinctDest_Fixup (instr_info *, int, int); static bool PREFETCHI_Fixup (instr_info *, int, int); -static void ATTRIBUTE_PRINTF_3 i386_dis_printf (const instr_info *, +static void ATTRIBUTE_PRINTF_3 i386_dis_printf (const disassemble_info *, enum disassembler_style, const char *, ...); @@ -359,12 +359,12 @@ fetch_error (const instr_info *ins) name = prefix_name (ins->address_mode, priv->the_buffer[0], priv->orig_sizeflag); if (name != NULL) - i386_dis_printf (ins, dis_style_mnemonic, "%s", name); + i386_dis_printf (ins->info, dis_style_mnemonic, "%s", name); else { /* Just print the first byte as a .byte instruction. */ - i386_dis_printf (ins, dis_style_assembler_directive, ".byte "); - i386_dis_printf (ins, dis_style_immediate, "%#x", + i386_dis_printf (ins->info, dis_style_assembler_directive, ".byte "); + i386_dis_printf (ins->info, dis_style_immediate, "%#x", (unsigned int) priv->the_buffer[0]); } @@ -9528,7 +9528,7 @@ oappend_register (instr_info *ins, const used in the next fprintf_styled_func call. */ static void ATTRIBUTE_PRINTF_3 -i386_dis_printf (const instr_info *ins, enum disassembler_style style, +i386_dis_printf (const disassemble_info *info, enum disassembler_style style, const char *fmt, ...) { va_list ap; @@ -9569,9 +9569,8 @@ i386_dis_printf (const instr_info *ins, { /* Output content between our START position and CURR. */ int len = curr - start; - int n = (*ins->info->fprintf_styled_func) (ins->info->stream, - curr_style, - "%.*s", len, start); + int n = (*info->fprintf_styled_func) (info->stream, curr_style, + "%.*s", len, start); if (n < 0) break; @@ -9722,7 +9721,7 @@ print_insn (bfd_vma pc, disassemble_info if (ins.address_mode == mode_64bit && sizeof (bfd_vma) < 8) { - i386_dis_printf (&ins, dis_style_text, _("64-bit address is disabled")); + i386_dis_printf (info, dis_style_text, _("64-bit address is disabled")); return -1; } @@ -9767,7 +9766,7 @@ print_insn (bfd_vma pc, disassemble_info for (i = 0; i < (int) ARRAY_SIZE (ins.all_prefixes) && ins.all_prefixes[i]; i++) - i386_dis_printf (&ins, dis_style_mnemonic, "%s%s", + i386_dis_printf (info, dis_style_mnemonic, "%s%s", (i == 0 ? "" : " "), prefix_name (ins.address_mode, ins.all_prefixes[i], sizeflag)); @@ -9790,10 +9789,10 @@ print_insn (bfd_vma pc, disassemble_info /* Handle ins.prefixes before fwait. */ for (i = 0; i < ins.fwait_prefix && ins.all_prefixes[i]; i++) - i386_dis_printf (&ins, dis_style_mnemonic, "%s ", + i386_dis_printf (info, dis_style_mnemonic, "%s ", prefix_name (ins.address_mode, ins.all_prefixes[i], sizeflag)); - i386_dis_printf (&ins, dis_style_mnemonic, "fwait"); + i386_dis_printf (info, dis_style_mnemonic, "fwait"); return i + 1; } @@ -9939,14 +9938,14 @@ print_insn (bfd_vma pc, disassemble_info are all 0s in inverted form. */ if (ins.need_vex && ins.vex.register_specifier != 0) { - i386_dis_printf (&ins, dis_style_text, "(bad)"); + i386_dis_printf (info, dis_style_text, "(bad)"); return ins.end_codep - priv.the_buffer; } /* If EVEX.z is set, there must be an actual mask register in use. */ if (ins.vex.zeroing && ins.vex.mask_register_specifier == 0) { - i386_dis_printf (&ins, dis_style_text, "(bad)"); + i386_dis_printf (info, dis_style_text, "(bad)"); return ins.end_codep - priv.the_buffer; } @@ -9957,7 +9956,7 @@ print_insn (bfd_vma pc, disassemble_info the encoding invalid. Most other PREFIX_OPCODE rules still apply. */ if (ins.need_vex ? !ins.vex.prefix : !(ins.prefixes & PREFIX_DATA)) { - i386_dis_printf (&ins, dis_style_text, "(bad)"); + i386_dis_printf (info, dis_style_text, "(bad)"); return ins.end_codep - priv.the_buffer; } ins.used_prefixes |= PREFIX_DATA; @@ -9984,7 +9983,7 @@ print_insn (bfd_vma pc, disassemble_info || (ins.vex.evex && dp->prefix_requirement != PREFIX_DATA && !ins.vex.w != !(ins.used_prefixes & PREFIX_DATA))) { - i386_dis_printf (&ins, dis_style_text, "(bad)"); + i386_dis_printf (info, dis_style_text, "(bad)"); return ins.end_codep - priv.the_buffer; } break; @@ -10035,13 +10034,13 @@ print_insn (bfd_vma pc, disassemble_info if (name == NULL) abort (); prefix_length += strlen (name) + 1; - i386_dis_printf (&ins, dis_style_mnemonic, "%s ", name); + i386_dis_printf (info, dis_style_mnemonic, "%s ", name); } /* Check maximum code length. */ if ((ins.codep - ins.start_codep) > MAX_CODE_LENGTH) { - i386_dis_printf (&ins, dis_style_text, "(bad)"); + i386_dis_printf (info, dis_style_text, "(bad)"); return MAX_CODE_LENGTH; } @@ -10065,7 +10064,7 @@ print_insn (bfd_vma pc, disassemble_info i = 0; /* Print the instruction mnemonic along with any trailing whitespace. */ - i386_dis_printf (&ins, dis_style_mnemonic, "%s%*s", ins.obuf, i, ""); + i386_dis_printf (info, dis_style_mnemonic, "%s%*s", ins.obuf, i, ""); /* The enter and bound instructions are printed with operands in the same order as the intel book; everything else is printed in reverse order. */ @@ -10120,7 +10119,7 @@ print_insn (bfd_vma pc, disassemble_info break; } if (needcomma) - i386_dis_printf (&ins, dis_style_text, ","); + i386_dis_printf (info, dis_style_text, ","); if (ins.op_index[i] != -1 && !ins.op_riprel[i]) { bfd_vma target = (bfd_vma) ins.op_address[ins.op_index[i]]; @@ -10136,14 +10135,14 @@ print_insn (bfd_vma pc, disassemble_info (*info->print_address_func) (target, info); } else - i386_dis_printf (&ins, dis_style_text, "%s", op_txt[i]); + i386_dis_printf (info, dis_style_text, "%s", op_txt[i]); needcomma = 1; } for (i = 0; i < MAX_OPERANDS; i++) if (ins.op_index[i] != -1 && ins.op_riprel[i]) { - i386_dis_printf (&ins, dis_style_comment_start, " # "); + i386_dis_printf (info, dis_style_comment_start, " # "); (*info->print_address_func) ((bfd_vma)(ins.start_pc + (ins.codep - ins.start_codep) + ins.op_address[ins.op_index[i]]),