From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2048.outbound.protection.outlook.com [40.107.8.48]) by sourceware.org (Postfix) with ESMTPS id 35AFB3858404 for ; Tue, 4 Apr 2023 06:58:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 35AFB3858404 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=cpdVpiLbfw8/ZYwCR35asoFfPejJaxNClMrkLWWLSoABjEF4J2seVnQlFPkf47mbdNNPmL+2YJ9lPEYIowDHBgBv1MVvyH//yzPI0Yf+2D574TZNgwYe9nCtpikEXuRJEVZbnNv/nJ3yY4OGMf0pzA1CeIkfFAbiljqA1Ic+S3rq9nyYJrzU85XLcMr1ruCm7YaVdMJzeBaJ02JeT9zjRqPMOR4u8BcCKJmsBbntpsRgCTXw/XSAeRU+HK65kAdfUufPIODSnr9D3vj0cjWMaAQkx9Xml3OOI9foTLzIwHLtsV2+HeoNtoNRWQJOcbjnWRikmRrNWfAyN008Cco7iA== 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=wphEUJc9C+M8Djc6qKOG+Td2+tHWMNEpZ+i21HIxLcM=; b=S+vN21WXhj7lOixJq8FftOfs28xiGpvgf0bmIjNP/q5ObAWYLaN4PO0QWdFf0H+EEKuyj0CzQYG0+6eX0ZTkMAnF0/Md4A0Vx96tsc8uiPUD6DqaWXH7ng0uNk889qefh+EkzJHoEDA2iuyQ6UMATgn2NObaV8YkwoOnVkykU1crkK5pyJQqx8ZU4ql9oolOu3EhZCDYfDFsX6M4DMC5Vy+kblSZB8qj1SkktfcdNSjRVwwhFufeGb8YPyeO2Qu1LdwYE5nAFOBPjFEIRztuaLUh4r3PuPjghkNVLv8Dq0sLWfkIe6iT2XLQJxkH6yziUIxkR0NhzrGiaseskdlwjA== 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=wphEUJc9C+M8Djc6qKOG+Td2+tHWMNEpZ+i21HIxLcM=; b=gbxcJNAQcxBo/lAGgLOMFFTcBXXXaLFCwmW3nGktuYA6kK78Nwbhvz4E8NtnrcDHjYNf15FTBDyC2XH4u3/dgoymK175wpvHmxJAwBEcuQyku9CIBveIirguFAoL12heU4viRerbuQJFM1CwTSOu1d/46vXU3DyiZpnjYMoDbzEZscb72gDq0zFnCoG5YlIbQJL6+nj85nVUMGmQOz09EoXRds/F4m0yewX1zH8p/Ty1wL9Yvp8gkvtUMog3xTAbKqFhu77AmWf5zDA5BOPwX7XF49bEZJ7CxGbX2d78IlBmQuUd37PKyox5YtzFfPF25FTjBrlk+FQoBBOr9ddY8w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by DBAPR04MB7447.eurprd04.prod.outlook.com (2603:10a6:10:1b2::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6254.35; Tue, 4 Apr 2023 06:58:16 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::154e:166d:ec25:531b]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::154e:166d:ec25:531b%6]) with mapi id 15.20.6254.035; Tue, 4 Apr 2023 06:58:16 +0000 Message-ID: <9b770800-dc80-2c00-40a2-903cbe4ffb8c@suse.com> Date: Tue, 4 Apr 2023 08:58:15 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.9.1 Subject: [PATCH 1/8] x86: move fetch error handling into a helper function Content-Language: en-US To: Binutils Cc: "H.J. Lu" , Alan Modra References: <5dac45a8-cd5f-ee4d-52fc-7d283fc29ec4@suse.com> From: Jan Beulich In-Reply-To: <5dac45a8-cd5f-ee4d-52fc-7d283fc29ec4@suse.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR2P281CA0011.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a::21) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|DBAPR04MB7447:EE_ X-MS-Office365-Filtering-Correlation-Id: aac73850-88c5-4b2e-db97-08db34d9f761 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YTcTx8C9bfVlZm9N1qlIadrRLIY3hpNjGbdhmEi6OgYLIqMwFFgcuj8OG05Un2v2yYnp0hCaVC7NYzF5U7GrgSpQG7SChn2ftr1oW1jIVjWC9K2NEW3+0BN0kU9cBUXJYEOXH4ElZzZZ9vLvpKPPaXnaOAH48N8UIiONgOd6XgEdTMh8nohm/FrVhOgv9UPGiC2/2wyy5/I2usKaGVyAFZinu8z+lG+O3Eb5SP+xSBUzv/CohVTNkeMTpk/ZkpqyuWwNa/Z0DM5OAYQhEDdlhBV8ULHHR3xBi//3sfjKkFttP7fzZUdcN7PblcAjjfe3wktFwjeTKoPDP/sLsiOYyVV2/HERL8kg/BzVxShYElZmxuPJOoNhdu+EjvewUxoOgiAlQvtIkow6kkp4X/HfJMDiLq+v89Tpki8hD46FPTJftZl/DilEXzjsux+jwZucIi4H+QXhvMJlr4xIiMNM+KeRkJf0eRwsbdErhRaL6hJ2CdZ3V2G90AvkudOfyQZnAC0srjc8wbEc/l5g+i/4YKTWHNhQn1HFbdz7pGaA0i3YT3QpjF4cNJkHbDwVzR3Dh6YCziJQkofEYRriTUvwqNXvaEES6zq9nrUSoXWEtPbKRoj+qVx7Q3nt9VQay8bhWi3S4e4yaQUAnJc/Ps85uw== 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)(376002)(39850400004)(396003)(366004)(136003)(346002)(451199021)(478600001)(316002)(54906003)(8936002)(5660300002)(36756003)(86362001)(31696002)(2906002)(4326008)(8676002)(6916009)(66476007)(66556008)(38100700002)(41300700001)(26005)(6506007)(6512007)(66946007)(6486002)(2616005)(31686004)(186003)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UnJ5aFUzMklteDNDcmRGSU5pUjVTd2hCMkE4NmI4TVN2anFUT0t6OVNjS1Jq?= =?utf-8?B?d3lCNTRYajMxZTJ1YzkrWHhBQVoxYjBDV1FONEZJbUR5bzRTbmd4YzVjMEYr?= =?utf-8?B?Y21GN3VHRGYycmJTbHNpbTlOb1JOK1hNTTRxcFRGU1VnNW5xL1owREk5KzVT?= =?utf-8?B?dFQwVmowR0JSazg1S3ZOeTB2U3VmVHg2OXNmc09Ra1kyVkxnOHF5akZTb2Z0?= =?utf-8?B?S2g5WTFvNEhpQllDWHhBeHQzeVdPNXNzeW45SzR4MUNQUUMyMDYzRmZNbk5K?= =?utf-8?B?eE1uWHFWL3VMT2hBRzdQWnA4QVIrZG5LeHdSWlZ3Mi8rbzhWc3VuTE5ZRnhh?= =?utf-8?B?K0VlUDVyN3FaM3FTTkNuRmM5ZjJodVhCR21EZE84Nk9zOExaY25lTEZudjR3?= =?utf-8?B?YWxhVTFVK0xmeUdEWFFOTzRvbWkzY2ZQcGZyY3BRSTdYMGMvNkp3TGNzZ1Uz?= =?utf-8?B?NkhWQis4ckUxMzZkWjEvbUxRdUJYM2dYTmQxUUpualpTais3VGNwTXVkdWNF?= =?utf-8?B?ZVVtVFRzNUlPbENzdjAzUTkrWlRJcCtmUXZpazlETHRJMmxkZ0l5KzlsVGhk?= =?utf-8?B?Zmw1b282V3JjUGZlWGdYTGN2ZC9CQVpBaUhKTi9vTWhUUSs2U1h3V2pzNnJh?= =?utf-8?B?K1V6clNtZHIyYlBZUkMzL0N1Q0ZPQ1JhdUxyd3FSbEpSVmYzeVY1U2U3NUty?= =?utf-8?B?RlFqV2xLQXpjdisveE1PUFk3ZEZzMjlBVURjRGZuMG9sQ0U5NXdnSTdsY1Jr?= =?utf-8?B?TDI5MlJJOTlpTG9VdUtVSkJUSFNhU2wvUGxIM3pZeDQ2UkFyZ2l3YnFuazdN?= =?utf-8?B?RFNxbVVVV3JwM0U2NmI5NjI2ekZpQzRsUmt6bWV5NDVMNGRKMWUreDVaT3dD?= =?utf-8?B?NFJoOVhFVFJHamRFVlBZQitSYVBtWW5wbmN6c044VmY1Tkl0aDFnbUN0Ullj?= =?utf-8?B?cnhiVE5JeGJGeE1vNUd0bGpjNGwzbGRhZzc2NW9Qcm1PSWVXcnhxd3lWMWVl?= =?utf-8?B?ZzBPSU4rWGg4bmlRb082VjlTbHlDRWVJZDBnYUYrQnBrYjRveUJUaWg1OXBh?= =?utf-8?B?LzNTdnJkNGJ0Mm9wRXRTeXFqQzlra05MWGhsbDZNQUNQbnQ4NXUzbmJBWkw1?= =?utf-8?B?S1VuZlNmWGxCUXNoY0pKTVBjQkcyeVRVTFhGME50NWw1NXJrQitVb0pXa0Y4?= =?utf-8?B?TkNTdmZpSWRHNmlTR3VPOEplcXVhRjhpVUx0NWYrTlhlN1ByMnM2YzI1M0sz?= =?utf-8?B?YkpwcXNZR2lxV1lXSklTZkhSckpSdG4yU0VKQS9WSkNPVXJ5bkh3Ymd3Z1NZ?= =?utf-8?B?VUpXSXlwSFRwejdNMWtpRDNpbFl3ekRGVG1NRXJGdzRISGx6QTVDNENuMDZC?= =?utf-8?B?WTJ0SkV4TkZlR1poMC9BWnV3Zlg4MzNHWnRhelQ1YXFXcnNsbktLWGQrMlY5?= =?utf-8?B?eEtkSldYNFFKeTZwSTBDVDhDaTFzV0hKZVdVTWplMGRVSndHZ1lJZGFpa1Ji?= =?utf-8?B?cFZ4YmtqbExMOTZnRmd3M01RZlBaMUhDK0gvbm5GSm03Ymsrckl6QmtZdWo0?= =?utf-8?B?dEpNMDZaMFltQTVLWTJnZHlkTUJxSDMxWHpleG1HUTl6eWdtNmRCQ0lEYm9T?= =?utf-8?B?WDFsN2Z3MWJwTnpwbmJpRXdEbzk5Z3FVT09hQ0hJWjFKLzZzTE9ENUxZSml1?= =?utf-8?B?em5tdGFjTm5PU1VPSk10bTBmTWxjdHpzMm8rSXFuL1NnME0wWU1xQTZRTnEy?= =?utf-8?B?Z25jdDlsWHFIWG01SVc2UHMwZjh1aVh2SCtmRjk5d0xlaGJJWFc3QXNIQlF4?= =?utf-8?B?N2V6aDJIS3A4ZUh2OXJxQkhrVncrWDFYZ2RhMmZ1NGZMVmVTRnFkZEk2d2NG?= =?utf-8?B?amhzNUZVS014Wm5jWVBRVXFBN3dCYkdoclZFVzg2bktVM1pFR25ULy9Zc3BM?= =?utf-8?B?VVRBWk1DVW9tZWtuMGVRcGdRMzR4dlhIaGt1cXJHc016amZhQ2ViOGJXa3Bh?= =?utf-8?B?U3J4OXVIYXBLTTFGNGhrdnk0akNCbXJWQXQyTm9LM1EyVkpWZTVFR0dBTDVp?= =?utf-8?B?VmcxSm1wdWNRQ0JiS1NLeUMzRnBMSWErN0Vnams2cGJNeDRGQUljSDNGdWJn?= =?utf-8?Q?FAimQiFRO5X1L4+kqJljQpvZs?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: aac73850-88c5-4b2e-db97-08db34d9f761 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2023 06:58:16.8471 (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: eDdF594B2xJq65bJWPB5+fr6SkZvfAt9I+hyDUFYCLaa3o1zKtAnIQjJ6c2OTISQkQzeAbWhoZf2x218w1hLxQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7447 X-Spam-Status: No, score=-3027.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_RPBL,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: ... such that it can be used from other than the setjmp() error handling path. Since I'd like the function's parameter to be pointer-to-const, two other functions need respective constification then, too (along with needing to be forward-declared). --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -116,6 +116,11 @@ static void MOVSXD_Fixup (instr_info *, static void DistinctDest_Fixup (instr_info *, int, int); static void PREFETCHI_Fixup (instr_info *, int, int); +static void ATTRIBUTE_PRINTF_3 i386_dis_printf (const instr_info *, + enum disassembler_style, + const char *, ...); +static const char *prefix_name (const instr_info *, int, int); + /* This character is used to encode style information within the output buffers. See oappend_insert_style for more details. */ #define STYLE_MARKER_CHAR '\002' @@ -324,6 +329,33 @@ fetch_data (struct disassemble_info *inf return 1; } +static int +fetch_error (const instr_info *ins) +{ + /* Getting here means we tried for data but didn't get it. That + means we have an incomplete instruction of some sort. Just + print the first byte as a prefix or a .byte pseudo-op. */ + const struct dis_private *priv = ins->info->private_data; + const char *name = NULL; + + if (ins->codep <= priv->the_buffer) + return -1; + + if (ins->prefixes || ins->fwait_prefix >= 0 || (ins->rex & REX_OPCODE)) + name = prefix_name (ins, priv->the_buffer[0], priv->orig_sizeflag); + if (name != NULL) + i386_dis_printf (ins, 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", + (unsigned int) priv->the_buffer[0]); + } + + return 1; +} + /* Possible values for prefix requirement. */ #define PREFIX_IGNORED_SHIFT 16 #define PREFIX_IGNORED_REPZ (PREFIX_REPZ << PREFIX_IGNORED_SHIFT) @@ -8975,7 +9007,7 @@ ckprefix (instr_info *ins) prefix byte. */ static const char * -prefix_name (instr_info *ins, int pref, int sizeflag) +prefix_name (const instr_info *ins, int pref, int sizeflag) { static const char *rexes [16] = { @@ -9576,7 +9608,7 @@ oappend_register (instr_info *ins, const used in the next fprintf_styled_func call. */ static void ATTRIBUTE_PRINTF_3 -i386_dis_printf (instr_info *ins, enum disassembler_style style, +i386_dis_printf (const instr_info *ins, enum disassembler_style style, const char *fmt, ...) { va_list ap; @@ -9804,32 +9836,7 @@ print_insn (bfd_vma pc, disassemble_info } if (OPCODES_SIGSETJMP (priv.bailout) != 0) - { - /* Getting here means we tried for data but didn't get it. That - means we have an incomplete instruction of some sort. Just - print the first byte as a prefix or a .byte pseudo-op. */ - if (ins.codep > priv.the_buffer) - { - const char *name = NULL; - - if (ins.prefixes || ins.fwait_prefix >= 0 || (ins.rex & REX_OPCODE)) - name = prefix_name (&ins, priv.the_buffer[0], priv.orig_sizeflag); - if (name != NULL) - i386_dis_printf (&ins, 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, "0x%x", - (unsigned int) priv.the_buffer[0]); - } - - return 1; - } - - return -1; - } + return fetch_error (&ins); sizeflag = priv.orig_sizeflag;