From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) by sourceware.org (Postfix) with ESMTPS id 2D0F03858D20 for ; Thu, 17 Feb 2022 16:29:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2D0F03858D20 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04lp2057.outbound.protection.outlook.com [104.47.13.57]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-35-OFoen5m3Mf6fEBTixkOQMg-1; Thu, 17 Feb 2022 17:29:23 +0100 X-MC-Unique: OFoen5m3Mf6fEBTixkOQMg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K1nIsrQPgo26Z042L0bIbZaHpc2YQiIksKWGIRuKnP8fTtQ1ydKkn8boRkAILeKPWsB+bU9z7qfcXpbKEHnXhmW5t1vqBev6Vw3iKNttyU/KWnKKaSX/G3CUNkaPRhQUX65DUZKlpPkgrQghV+kdiUeowEJ3kbZWSE0oVIzscNojaFKpQKfYX9bivAs6uhw/mIuxsJ+q6oIY5EUe/CSe2zSesxY2VetPZhbdg9NQWUzuaDHg9feN+u2jUD7s6ZqTS/p6U3/4hQ1rb2BawwHLda+dAYN2DD88TxwjkT7UwCgOR0w5mjO7hBmwsnxgQCQ+Y6anT/7FPtcLUHh9Q74CIQ== 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=BOitIh2DGliNFIU9bxy0HMpChjLePQuAUIe8Ye4wFnU=; b=ZVtE3XNtS8gvp2ZTjzAVjcgccg9ELq882gV3X+WoEHYrmRbKpI//XTvRMmb4KMlAHJqxF37yqgsa4ksKpqjlom0TUtyX/q+BsiJWjyguwLFwpYWXC+V7twfhMU/rMOuHcCfI6sTf1/kbbXGs87nOjZuQuY1AtEG10HK74eFzb+Siln4phIlCQZ/Tz3bJ/fmW+M5JEwWlTLri+fGH0vkXiT3oUcdzW9D1ml8vLnDmoXbe7RBmIxOO/0IjvCxtZHltZyMXk8zap0dFn+iy36N7q9BLvNeqax7p807Sg6WL+1cnDMqi9UMEMMKg6rPiQOt8ApK3VFu3AT2XUKj6rkJj3w== 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 VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by DBAPR04MB7445.eurprd04.prod.outlook.com (2603:10a6:10:1a7::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4995.16; Thu, 17 Feb 2022 16:29:22 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::d479:b728:345c:bd65]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::d479:b728:345c:bd65%5]) with mapi id 15.20.4995.016; Thu, 17 Feb 2022 16:29:22 +0000 Message-ID: <2723bccf-3591-d1a7-2c94-741fcd26b8e7@suse.com> Date: Thu, 17 Feb 2022 17:29:21 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Subject: Re: [PATCH 3/3] opcodes/i386: partially implement disassembler style support Content-Language: en-US To: Andrew Burgess Cc: binutils@sourceware.org References: <11996f886e69218629abf81f8041269e8740a60e.1645043588.git.aburgess@redhat.com> <37ba6375-00cf-3041-ee79-21377558402c@suse.com> <87o835eaf9.fsf@redhat.com> From: Jan Beulich In-Reply-To: <87o835eaf9.fsf@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR3P281CA0050.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::19) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2cb99c73-7373-4cc1-b5e2-08d9f232a79e X-MS-TrafficTypeDiagnostic: DBAPR04MB7445:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2276; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: eLa5Vt98jyAqchvbSn7HzxFPb3O+M50Fk8yuP7qJ32q17fCUDCSAhbcUJPF3D2lavCOigAQAMjUiLvJNO/CmqHMycBxJNIP8AMHmjyCCrWjrQhDDCS/D6GqX1fRG5oB4sN/6/qbRrDuWeArUpuf+tDSX0sKAG9oXTp6NiCGFGiXZrvIiAA+jVempXP1upsRhEnoVbTpRkvM5DSgxuUM3QNK6dik+H4dmS3pf/RmW1/ZlbsDgvoREUbRHXbmvcwrlqFqvlhql/13s+Zcua9m/KukOxryFRdo829y/5p6fScCYqeqZZiD9Ne52FaE66hA1cg4iTAMCSPsp2Nw+wS2t+maInZ3nhCLuHmCuFQJE0Penq/KPa+HQXm5+PfeH306C6TvLGQEtj7T/hNj2IKLU204Cylp/RSHnoikEPom4MG0qIMhF2+Zbb0+OCS+OOeWniHFlBJln9tQgplddY3CXZ7SMuqf837BwzwlBCI0E7Rd2j7iGq2EbOlplVJLrBZRlG/A3oO8Od/QWSFenLRqYuRNLnTWnV9cZ7eCVMi4MonQHdpmxNvcyrqTA+UkbxYUWfMl4V+4AxaU/pZaHNnYMav+IA5n1Y0v0cD5VSTRG7MK8ROVdXAVeuquJ1TedElsrAb/KYKvW9CJgcqTjLvlgMdJpPKtRyTG4Wmh32juhbNHQpsWFmYDd1Plv6XU1epm2gAfXNf5476zK4ZBObCt1t+PXS8Gdfk006aLrAnA1r932HoT0ut00ft8o3E6lPEJ8 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB5600.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(6486002)(36756003)(6506007)(2616005)(508600001)(31686004)(31696002)(2906002)(86362001)(38100700002)(8936002)(5660300002)(6916009)(316002)(83380400001)(26005)(186003)(53546011)(66946007)(4326008)(66556008)(8676002)(66476007)(6512007)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OWN2Ukx1bUVkay9jaWU2ZFp6enlEYlQyQS9oWDVqL21EMDhLSTV2WmhJV3RP?= =?utf-8?B?SWxWekZpKzBjSmlaRTY4TFpVT2Fwd1ZTUFprRjFuei9yV1NmSWR0VVA2cTNs?= =?utf-8?B?TFR2N29SUDhaUHErRG5RamF0eHE0T3pJMzJ0UldZbmJpVmRyMC9xRzFUcWdz?= =?utf-8?B?MmI1VkRObEQ5K2pxT0dEcVM0OUJKSWFjbzRqQ0VBWDdqM2pYTUU2RlU4QjNU?= =?utf-8?B?d0dDUlFUaFdTNkx4ZTMzdm5nS0NyS3VmcFZ0TE1rcXVXYkQzbnBmWUxBSTM0?= =?utf-8?B?bzZVa2g1S05JRXlZOTZNdjNObkt0bkZyMlZIVlBSK1ZkTk91QWlDaFNkZlNL?= =?utf-8?B?bW1Gb2lGSXBFQnk3d3pmbFkwYUNQcS9TNzFVR2kwckZvSjcwVmZtRVZoZ0Fy?= =?utf-8?B?VUxFbHNlMm1OVTJiZXoxYkZaQlZJODVFRG9RZW1uNFJSWExKOEhMSkplcVpv?= =?utf-8?B?eUFLQU0xTlJCd2F4b3hNWmhIY3VBWnNmdEFBNndGdXZGYXYxKzdZYS94THhv?= =?utf-8?B?M3NnRGlIT3FGeFRrbGhZd1hwQmxLQWdGMjZ6NnVoRGZOVmJ0Q09qV0Q5NXph?= =?utf-8?B?QlJtblV0MWNLWkJVZ1laYVJsb093SFpNWk9YWnF5QitLYit4azdLNlE3U1J1?= =?utf-8?B?UDJVUUJpdjdnZFlFdUZPMEdnNUZGSkl4N3NNSVpHQWxjK0lBKzJxN05EZ1hx?= =?utf-8?B?cHhQRElzSHhOZ1JqMFppYTVSdW1ScCtWUVBBU3YvakxOQ1FXK0hrWXJEVDZ0?= =?utf-8?B?RklSb3FPK21jSjFyNE9DYVJMRGlNMkgzcmsvYjI5M1RmTzRFMEhqUzJyenN5?= =?utf-8?B?YTlTZkUwYlVEMzlHYXhhemMrRERwOURMOXZKRUg1cndmT2t5am5mRml2Yll2?= =?utf-8?B?bTRxNVBSbExvMUo0Y1hocWE2TjlLMkxjS0lqa2JGaWh2WnRKVDJtd1o1cGpE?= =?utf-8?B?bXNRc1pBVll2eTNjUGZnVlh6S3lDN3I5QU5WcW9zMHQ5Rm9rT2JPY2NmY0d6?= =?utf-8?B?Vmh5YkM0S2sxamY4SlhDRlNGVlNFOXN0eXB3TnQ4cmVUaFBNTTdRUGR6QmpY?= =?utf-8?B?WDRMNG5GSXpyb1RicGUzWFZrQ25KY2JVSklsdHpJcm5WK1VBbStOSEYxckxh?= =?utf-8?B?MHVzbmdudjVUYzVoTFg5b1RSSjZ5K0ZDc08xdlRoU01INnVVS0dNL2xBZWM1?= =?utf-8?B?Zm9VdEpnYzJobnhsQ3JBQlgxc3hPVThsbG9RbDhud2xjV0hWRWoya01LQlQz?= =?utf-8?B?cmtlUUcvRloyYjlLaTlhYndWeXJXTlBqdzF5aW5sdi9hM0hwekh5NFhIQ01O?= =?utf-8?B?ZUY1Uk0wYXJGQXlYR1YySzJHTWxXQjY5ME1HcVNSWkwvdStXZW5GYXpIeGdM?= =?utf-8?B?R1RzNE5BQlBmUlUrbEdxS25MbEdialc2Q2t4UDVTSzJYRlhLc0wyUm1WSnBw?= =?utf-8?B?NWxxNTUyMnRiVXN4My9jYkIrb0k3emFZUmlDOTcxNldsbGhEL0U3TDRXUlhz?= =?utf-8?B?Mkl6cEdjeEFuRkF3TTc5a2Jqc3JPd2M4c0dENVhUNHVYT3VQSlFzNEk2ZVJ3?= =?utf-8?B?Z0ZqRkJkcmx3THl1d3BGNThXSWllN0JQWmp2d2ZLTythcEEwOU1uY0JMN0RS?= =?utf-8?B?WjZlOW5EMGdSOGo0ZHQ0b2E4bTBQbHRVODFheFY0bmxGNUxTaitGUnRRSkY4?= =?utf-8?B?MGhNMzVOZ2JOT2hPRm5SOHdsMlEzcFFHdG1RWFI1QVZZS2FkS3FMQWVDSklV?= =?utf-8?B?Y2RNQThQNml6eWt4NXgwWVJob0FMRktrc0pqbTBpVlFqRUVsUHNkdTd5T285?= =?utf-8?B?QXUyRm5tU0RVWGVNa01CTXZ4bzVzc1lPMXFMQUI0ZCtVaGF3bll4VGh3Q1BK?= =?utf-8?B?Q05MbHdpR3IzME8zTEhWRGtWcHZlbm9oNmkrUWVGN1pPZXpEWUlQc1MzRFA5?= =?utf-8?B?S3hYNEJ6dE0vbWQ2d0RHRXhxcm1Db2Fma1VuUEh0aFF4RlJzNk9XbWtwSXRS?= =?utf-8?B?emxQTkNOMVhCQy9hUFYxR2YweTdocnNrNU9hN1c5bzNDUDBJRGdGMmJPUWx0?= =?utf-8?B?NjBDVlZ2aVk5dHUvaSthR3N1ZzdOdGpUVkVIWUhqdk1PMEt3QUFkWWtGS0tl?= =?utf-8?B?VFQ4WXBscVVZd2dncElKMjBjclU1TXVJZUx5Mm5TdE5VUnhySkx5SXVOODBD?= =?utf-8?Q?EJHod8eYovwJet0nbSAUVbo=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2cb99c73-7373-4cc1-b5e2-08d9f232a79e X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2022 16:29:22.5524 (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: fYerZsQzDqcMt1PWaT7chefg8h6kg1bHXooD6y7oUZQDUpmdicYLOM8GKRa80x/+31mmR7pF1p61oHXCfZ6GkQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7445 X-Spam-Status: No, score=-3032.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, NICE_REPLY_A, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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-List-Received-Date: Thu, 17 Feb 2022 16:29:28 -0000 On 17.02.2022 17:15, Andrew Burgess wrote: > Jan Beulich via Binutils writes: >> On 16.02.2022 21:53, Andrew Burgess via Binutils wrote: >>> @@ -9456,12 +9456,18 @@ print_insn (bfd_vma pc, instr_info *ins) >>> { >>> name = prefix_name (ins, priv.the_buffer[0], priv.orig_sizeflag); >>> if (name != NULL) >>> - (*ins->info->fprintf_func) (ins->info->stream, "%s", name); >>> + (*ins->info->fprintf_styled_func) >>> + (ins->info->stream, dis_style_mnemonic, "%s", name); >>> else >>> { >>> /* Just print the first byte as a .byte instruction. */ >>> - (*ins->info->fprintf_func) (ins->info->stream, ".byte 0x%x", >>> - (unsigned int) priv.the_buffer[0]); >>> + (*ins->info->fprintf_styled_func) >>> + (ins->info->stream, dis_style_mnemonic, ".byte"); >> >> Perhaps better have dis_style_directive for this? It's certainly not >> an insn mnemonic. > > Are you suggesting directive in addition to mnemonic? Or as a > replacement for? In addition to. They're fundamentally different things at the assembler level. But that's just my view ... > My goal with the style list was to try and keep the number of styles > pretty small, an instrution mnemonic like 'add' and a directive like > '.byte' seemed to have a similar enough function that styling them > identically felt OK. > >> >>> + (*ins->info->fprintf_styled_func) >>> + (ins->info->stream, dis_style_text, " "); >>> + (*ins->info->fprintf_styled_func) >>> + (ins->info->stream, dis_style_immediate, "0x%x", >>> + (unsigned int) priv.the_buffer[0]); >> >> I wonder if the naming (dis_style_immediate) isn't misleading. As per >> the comment next to its definition it really appears to mean any kind >> of number (like is the case here), not just immediate operands of >> instructions. Hence maybe dis_style_number (as replacement for or in >> addition to dis_style_immediate)? > > You mentioned this before in the previous thread, and I didn't really > understand then either. > > Can you give an example of something that's a number, but not an > immediate? e.g. I wonder (given the instruction/directive distinction > you draw above), I wonder if you're conserned about: '.byte 0x4', maybe > you don't like referring to this 0x4 here as an immediate? Well, an operand to a directive for example is not an immediate imo, yes. A "load offset" (as your comment calls it) may also not be an immediate. E.g. in x86 memory access instructions: mov 0x10(%rbx), %eax the 0x10 isn't an immediate, but a displacement. The difference may be more relevant in something like mov $0, 0x10(%rbx) where the $0 is an immediate operand, but the 0x10 isn't (and you wouldn't want to mix the two). >From that comment it's not clear to me where else you would think "immediate" applies (or not), but in RISC-V's lw x0, 0x10(x0) I wouldn't consider the 0x10 an immediate either, albeit this may be a result of my x86 bias. Jan