From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00065.outbound.protection.outlook.com [40.107.0.65]) by sourceware.org (Postfix) with ESMTPS id 7FEE83858C74 for ; Thu, 15 Sep 2022 07:42:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7FEE83858C74 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=cyOB9VzDYSiu9CJX2dkSU7GnACb2tFPVFXiyds7ib6ScyEl+8i9a3MvB5I7KrjAbrBjJGOsR4+ugT/zkGwLzuG+2pw4jRRGP04/vT3liH63MTlxDAG7bcX1jwAjKGDH6WrReLCdBQhYJrxKATCnBEdG2cT1C1YC9LY7FluEXLTm/nWOB287dle/2qkTGo4CEeW5vazdxSkJ+lQqjS6PdH7/A9XSc43MLl18jLp29h5DhtBK2WdeMUuV6cUTlYpyN3t/t7q+XaW8yeQLKNskHk/UmCJX9vwpAEJ4YFDLko18qDghedmYDR16KRR9jOB9Y47u2jn7FWqIaeqCF9A7Y8g== 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=9fZF1lNl6plWkSrkQPcESzT+trTExUqPtWlj9KQlCtU=; b=Itt/gFHpU0+KJkjjvCpLaf3GoajKPtbfHBI6xCvyQj5LmL13Dca8Gn034Dn5pednCNid8Fg0yHazO9tq1JfkGGI68Zn+n3xqDzOaZF2hUi5VI4S/BL1r7EJksjdU0KJ7NeKT22BkP1urEvk+rxKgBPozUMdN9FOqBb1lNhFFmoUaGevnFfuWhNR3cToMv/SI4gISLfBITmKmImYK3O3PmXzYVJrRlhy6eTOW0svjPf+DNlVsiuR6npZLxxqBg6/CIaQdOXslcl5pT8CgkCj0/CwJsXlL1tcetU6PPpQPUC6RULNpQfDtI9TqyVzx3sgR7qNZStmrP4Hwclj6MSZs9Q== 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=9fZF1lNl6plWkSrkQPcESzT+trTExUqPtWlj9KQlCtU=; b=J2Tc9vHlOeEp4ppi9FqsEGvqBEu/wTYs581KHtcKXeIyWq2q0KLm6XJWQEB+dfEWsbX7ECtOSpstKcJsx2CInKM5Wy3AMk9vue1VHsttx1hnHkL6jglJj7tUxJt76YKlWkx/nj26UIHRcZt/LEVITkQPpmI/dZ3FFmTcG5tUMOabdSTXRMoQAOOIP2wi21OI0sU3315rt8K+LuDESip4EDxgB5h/3eKyOoSdFk65JokBw8s/EK1JzF8sfNcoqZPho4NFnQCskUgnvjCEpFC13obKFo2Z5pJTsidHBgGz9SkWrIzggWo2sMpJJkd0Mg80vSpaK++pxlmsJQ7H/6/nGA== 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 DB8PR04MB6873.eurprd04.prod.outlook.com (2603:10a6:10:115::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.22; Thu, 15 Sep 2022 07:42:06 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::59bc:901a:98a7:76d4]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::59bc:901a:98a7:76d4%5]) with mapi id 15.20.5632.015; Thu, 15 Sep 2022 07:42:05 +0000 Message-ID: <09666d48-99f0-ae25-ef84-f542da3628ce@suse.com> Date: Thu, 15 Sep 2022 09:42:04 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Subject: Re: [PATCH 1/3] RISC-V: re-arrange opcode table for consistent alias handling Content-Language: en-US To: Nelson Chu Cc: Binutils , Palmer Dabbelt , Andrew Waterman , Jim Wilson References: <7cb92a0b-d1ef-e3db-4773-0b6cd5183272@suse.com> <40281e59-659c-044f-0c86-1db77fd17b5c@suse.com> From: Jan Beulich In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR3P281CA0169.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a0::8) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|DB8PR04MB6873:EE_ X-MS-Office365-Filtering-Correlation-Id: e54d1f74-595b-4982-1635-08da96edc96e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5Z7Z+h7Vz3V3HbIdddBe2uURx6mBpiPsPlM0X/KjPmUqRg3f7cDEcr1OJuPZhegt8eZMcwW7s5UGAhN9BujQLOQ5uWOKkH8Wxzt4rATazs7XIEuvMocBWO+Lplwcu5hyJPMr18mnRUiULoYIbwp5YomYp9IHC110+hVRD66AHcwYb7ByHZoMR1KhjbTDW8Bnj34bLt/4ik8FQHR/11LlKtWY2MpLu9Cu40oVAn/6visZKg8afnPt3Y4eExvmpF6R/KrUyI7cZTeV/3QWFmX7CcIaqB5eaBQFOEGXO4gwj0PCmhUsEEzVn1FggCwv2XYEJ10sHKfp4sb6IP7VWRW0emwPlLlCZaNIBL9P7UABx/2vy3NaLdIeo7Wt1j7RG5tEGzMWjjCOPUZuX0H9wQPO+wu3WJA/igWnRbd1AHgU0E3r39WRq45psPr+N3BdFxD5bk6laKQDITBZvyOOEV7EAXkrdG6xOQn+CrJ1+YlnV2fSF39mOtMSuHZ62j4WT2hCscMptAtowkej5XwMB/0ZYRotCDhnx64o0g1x5iQ3HOq8zmyxrLkJ6b5xDZkJUfnP3zH9BRGCPKw2HcPEKKaY/PzSz22R3scW5AA6NArufbDLOz5CiiHsIJBCDnyABjm/yMPf1A8jL4xZbhxQL2qmeu5k7CADq3zLriIbYM+QVzFGknDH6RWc2LklvU+Apn7LA60TuPX2LYJRCKmBOojW1R07IkcoIbvwO6PfvceGQF3FDf820UZ8sgz+3FFCEGoTAJpb0bHJmlw/Y6qrcldAUiiAYQEhoPpfFjo3TtuD0UA= 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:(13230022)(136003)(39860400002)(366004)(346002)(376002)(396003)(451199015)(36756003)(31696002)(38100700002)(86362001)(31686004)(6506007)(53546011)(2616005)(2906002)(6512007)(478600001)(41300700001)(26005)(186003)(6486002)(5660300002)(66946007)(4326008)(8676002)(83380400001)(8936002)(66476007)(66556008)(316002)(54906003)(6916009)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bVZzK0s1Y0FlZXVYRldTU2ppQnc2VEhpZjNmU2EzUHk5NzdQaEhhRGhUS3dz?= =?utf-8?B?MGp6Yk9aL3lpQUJJYXhkeldQRDZoY0orRFUxNWVSN2EzMEZRdFBUTWlPeFh5?= =?utf-8?B?WGdFK1dmWGZtZ0wrU1FjL0JzYlVWbHh5MXNScmp3ak4xNm9UQUgvcVdoK2l1?= =?utf-8?B?T2pNbGlrQWlnclNSeEpUWWN2ek1Ta1Q2SFZnQk5scEFsdGpvQ1BHRy9vSUJ1?= =?utf-8?B?NEpVQU94NVVxaHU4MlptdStvcWl4UWh6eEFkbWpWa2xxZjE1TXVFVDE5ZExH?= =?utf-8?B?QXVwamNpMmtFWWNBVGQ5MUpUb0NOS0tLSTJ3SEh1dHhkNXhhQ1VhSE9UZG44?= =?utf-8?B?cURtMVBpNGpsRjRXR1BCaE1UNEE0TXRyZVlKb0RHOW9EV2VBVUtuQnhMTUlM?= =?utf-8?B?MEdZaEZTbjEzUjVtK0oramVMbkFjTWdmOXBzNmhsQy9YcWt5bEJrM3YybHlL?= =?utf-8?B?c3hPbmk0bGtQTGY2UXIvSFlGN05WdGRTM2NUMzgrV2dDVnhiV0R2MkJ6UUJC?= =?utf-8?B?SXVpRzJZNU5KT01QejJXWitlYndSbGpEOG9uNGFXazZoN2E1Z0h1M09SWFFQ?= =?utf-8?B?MHBLc01Dc3hqZmR4VVdSWFhuQ0N2OWtWbExtSGFJOHlsQyt2eFJkTW1Ka0Fj?= =?utf-8?B?UVNua2NISWV3Rm4wUm5YZmhpTVRZZHBoRDg2MlhPcmh2U3BIYjROYXd1MEJR?= =?utf-8?B?cUlPNmdiY1gyaS9BOHl6YjAxM2pjOHA0ajV3UVgxbjdBMjd0bENqMW1zbjMw?= =?utf-8?B?bWQvbjZLK2RaVDFTVHJSNGR2WE95bVQrdlhzS0FES2hUTUFZMHlSOWZNbzBs?= =?utf-8?B?VktWMmRSdExsK252NXpUaVNBNmlqdkt0a015cHhncHRyMG9UMUQ0V0N3ZUZE?= =?utf-8?B?ODRJM3NNSURlTWRoVUZmMFhIUlM5c2VyaG9jbEVxaUdVd3U0eFJGVDVkNFRL?= =?utf-8?B?Q0F1RXdrbS9ldUtnTWg4V2ZqZFhGeHNDcHlxRVA2RGhWbmQzcTRwVVl3WmM3?= =?utf-8?B?eGc2WHcwSWJkQU5yM2N5WS9HcGhVOHZZRmh1THVWenFNQUtYVUsxV1hvMDky?= =?utf-8?B?YWNPNml1YWpHbDg4bWtnTGVGYU9OcTYvYjlxOWVUSUZySFBTUXZ3bDMxRkV3?= =?utf-8?B?dHRrblRodHdZS2FmVUJVM2hTaWtYNjY1dlkrRFltRWd1czN1NXl2cE01N09R?= =?utf-8?B?bGFOL29KS29nRVRibmZnOEpPM0xQZWpaTzhrcjBaWjJEeFRRQjducU9mN0Nv?= =?utf-8?B?bWF4MkF0cFR4VHYrL2QyeU1kY3JMcVZIdUtOYTlkc3VleVZENTBPam9JSS9S?= =?utf-8?B?ZVJUSE4ra0xhSER0QUtyUWxBWUhJQkluUE9PWThZb2hKR2FlNUF0dWw2czc5?= =?utf-8?B?RkJUeFQ2VThjQjB5ZHF4TDJBeGtnbDdaNi83ZEV2dXB3UU1NOE56Uno5REdJ?= =?utf-8?B?clIrSS9ETFF1UGhkMURoeHVjcVdYbjh4MTQxVDFua3VHUEpQSUFtUnJOa0tJ?= =?utf-8?B?OWY0WklhekQvMEh2cGNoL052NXptQWVhZk5hT3BuQllnRERoOVR2S1pQeFY2?= =?utf-8?B?Vlk5MjlQZmdLK1d5TFZnQ0IvOWJ1a0VEVFp5NDYvcFpGRTlQTEFnV2NLQmJs?= =?utf-8?B?c1Y0K3BNa2NEa0tPdEhxNnFZRXhaVHBlSG1OOGVCbm5jVVRaTVBVbmpGdWpV?= =?utf-8?B?MkExZGRxTExvM0d4L3EvSEpUNUtoTEpFdjJhcDFXUlJmMVFLYzhTa3IxelRy?= =?utf-8?B?NUhMQ2NzUElNNjBNM0pxTHR5WGhJWkF2TzdhdDZ1dk92RFJSS3RZTVN3UnFB?= =?utf-8?B?QS9pc2NueHJHOG1hU08vYmlzUWNjZDY3cVpHMW02YWxPZ1ZkV3EvV1puTlhu?= =?utf-8?B?aHNtNEVabTYrOUhEYWxJTXkvQUxSY0lsTmpHZjJaU05WcjhEdWpMZlIyTEZq?= =?utf-8?B?b1ZacU1iUnZhbkZYdkFJbFI2dXRHREptVWJVYWFCK0xjbUhwd01XVXdXaUg2?= =?utf-8?B?RGY3N3hGOGJHSEhZcFkxTW5iUk0yQllMelhNdFBqWFVka3VRcTdzQ0NwK1Ur?= =?utf-8?B?OUZob1ZEVnlFcFlHWkpabnJydm9MTVBUd05FelFBVi9aQ2o4VGRCSWZJSkYy?= =?utf-8?Q?5qccQbSgjsKItTZDuBUxboKFu?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: e54d1f74-595b-4982-1635-08da96edc96e X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2022 07:42:05.8759 (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: fIdtzryzgZ0cKNNIFywYx5oyakXEmQ/z+YCnqp3XzZYft3eD9oDuLCOjVK9mmVQ2nw1Y3f74dU8N/wSpYNN3GA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB6873 X-Spam-Status: No, score=-3030.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,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: On 15.09.2022 04:30, Nelson Chu wrote: > On Tue, Sep 13, 2022 at 9:02 PM Jan Beulich wrote: >> --- a/opcodes/riscv-opc.c >> +++ b/opcodes/riscv-opc.c >> @@ -290,9 +290,9 @@ const struct riscv_opcode riscv_opcodes[ >> {"jalr", 0, INSN_CLASS_I, "d,s,j", MATCH_JALR, MASK_JALR, match_opcode, INSN_JSR }, >> {"j", 0, INSN_CLASS_C, "Ca", MATCH_C_J, MASK_C_J, match_opcode, INSN_ALIAS|INSN_BRANCH }, >> {"j", 0, INSN_CLASS_I, "a", MATCH_JAL, MASK_JAL|MASK_RD, match_opcode, INSN_ALIAS|INSN_BRANCH }, >> +{"jal", 0, INSN_CLASS_I, "a", MATCH_JAL|(X_RA << OP_SH_RD), MASK_JAL|MASK_RD, match_opcode, INSN_ALIAS|INSN_JSR }, >> {"jal", 0, INSN_CLASS_I, "d,a", MATCH_JAL, MASK_JAL, match_opcode, INSN_JSR }, >> {"jal", 32, INSN_CLASS_C, "Ca", MATCH_C_JAL, MASK_C_JAL, match_opcode, INSN_ALIAS|INSN_JSR }, >> -{"jal", 0, INSN_CLASS_I, "a", MATCH_JAL|(X_RA << OP_SH_RD), MASK_JAL|MASK_RD, match_opcode, INSN_ALIAS|INSN_JSR }, >> {"call", 0, INSN_CLASS_I, "d,c", (X_T1 << OP_SH_RS1), (int) M_CALL, match_never, INSN_MACRO }, >> {"call", 0, INSN_CLASS_I, "c", (X_RA << OP_SH_RS1)|(X_RA << OP_SH_RD), (int) M_CALL, match_never, INSN_MACRO }, >> {"tail", 0, INSN_CLASS_I, "c", (X_T1 << OP_SH_RS1), (int) M_CALL, match_never, INSN_MACRO }, >> @@ -310,13 +310,13 @@ const struct riscv_opcode riscv_opcodes[ >> {"move", 0, INSN_CLASS_C, "d,CV", MATCH_C_MV, MASK_C_MV, match_c_add, INSN_ALIAS }, >> {"move", 0, INSN_CLASS_I, "d,s", MATCH_ADDI, MASK_ADDI|MASK_IMM, match_opcode, INSN_ALIAS }, >> {"zext.b", 0, INSN_CLASS_I, "d,s", MATCH_ANDI|ENCODE_ITYPE_IMM (255), MASK_ANDI | MASK_IMM, match_opcode, INSN_ALIAS }, >> -{"andi", 0, INSN_CLASS_C, "Cs,Cw,Co", MATCH_C_ANDI, MASK_C_ANDI, match_opcode, INSN_ALIAS }, >> -{"andi", 0, INSN_CLASS_I, "d,s,j", MATCH_ANDI, MASK_ANDI, match_opcode, 0 }, >> {"and", 0, INSN_CLASS_C, "Cs,Cw,Ct", MATCH_C_AND, MASK_C_AND, match_opcode, INSN_ALIAS }, >> {"and", 0, INSN_CLASS_C, "Cs,Ct,Cw", MATCH_C_AND, MASK_C_AND, match_opcode, INSN_ALIAS }, >> {"and", 0, INSN_CLASS_C, "Cs,Cw,Co", MATCH_C_ANDI, MASK_C_ANDI, match_opcode, INSN_ALIAS }, >> {"and", 0, INSN_CLASS_I, "d,s,t", MATCH_AND, MASK_AND, match_opcode, 0 }, >> {"and", 0, INSN_CLASS_I, "d,s,j", MATCH_ANDI, MASK_ANDI, match_opcode, INSN_ALIAS }, >> +{"andi", 0, INSN_CLASS_C, "Cs,Cw,Co", MATCH_C_ANDI, MASK_C_ANDI, match_opcode, INSN_ALIAS }, >> +{"andi", 0, INSN_CLASS_I, "d,s,j", MATCH_ANDI, MASK_ANDI, match_opcode, 0 }, > > Doesn't ANDI a base instruction? Of course. Like for all aliases, there is a corresponding base instruction. I guess I simply don't understand what you mean to express with the question. > The operand "d,s,j" of AND is an > alias of ANDI, so the original order seems correct. Always dump *.i > instructions to the non-i type looks weird, and llvm-dump seems has > the same behavior as current GNU objdump. > > % cat tmp.s > and a0, a1, 0x10 > % riscv64-unknown-elf-as tmp.s -o tmp.o > % riscv64-unknown-elf-objdump -d tmp.o > > tmp.o: file format elf64-littleriscv > > > Disassembly of section .text: > > 0000000000000000 <.text>: > > 0: 0105f513 and a0,a1,16 What's weird about that? And if that's weird, would you mind spelling out the conditions under which aliases are to be preferred over base instructions when disassembling? There actually is a "These aliases are for assembly but not disassembly" comment somewhere in the file, clarifying for two of the aliases that they ought to come after their base insns. But for all other aliases which aren't simply a different (but not shorter) name for the same insn (e.g. "bgt" vs "blt") I'd assume the aliases should be preferred, for the reason stated in the patch description. That said - I can see it being a matter of taste for i vs , but if so this should be spelled out somewhere. > % llvm-objdump -d tmp.o > > tmp.o: file format elf64-littleriscv > > Disassembly of section .text: > > 0000000000000000 <$x>: > 0: 13 f5 05 01 andi a0, a1, 16 I don't think I view llvm as a "canonical reference". Perhaps they merely followed the GNU behavior? Jan