From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 857A83858C48 for ; Fri, 12 Jul 2024 13:59:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 857A83858C48 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 857A83858C48 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1720792777; cv=pass; b=H5KQOK5YYGXRgIrXQvQGYWHQD4GHoaHGVTY0RlooKFA4j00QzxiH4CWovB9RwhHxVAIrH4GivYeNUSDyvbz2CBvGF0fP9sUeH7MD39iCW5uC9Cm/3gGOwH6tXIngQ5cNVCXYzXL1ClfLWgRvLZi9YLP7/jJE+CfzeOshMTpIePg= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1720792777; c=relaxed/simple; bh=SSJ9tQVsG+p+gznB5D7MpviBY8ToJlhFEhhmEpdry8c=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:Subject:From:To: MIME-Version; b=tKibcmfQL9OjZ2gl/aY9mDl/DY4n8hs0gcBrAN5UZTXVLxlgKgaPB9hEglUxX9LLa+KNWA7NxxDYsxew4cRpdgeukGNsco0lJmY0wwR710k5QFA8nIE5c09Jslpl3GYNfu6Yv6Ifg0ROwb2+UQc/Bvpjn5o2w2vV9T9iogkivu0= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46CDIfX8023475; Fri, 12 Jul 2024 13:59:30 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= message-id:date:subject:from:to:references:in-reply-to :content-type:content-transfer-encoding:mime-version; s= corp-2023-11-20; bh=5RVY5IE8Wx4s7WrHolqpjp/ueMyVtQZTuvXg/GpJyaE=; b= J2Ic3+B6GHOpOW4RinV4ljz/z4R+KmF4vFh1WbVm+uvSQICTn41ioLmYbQ1IPFi0 5+NTnZB/Yi1N8CQPWbBdG0a+MPwzo/CccFuwL4ukWHqYZ9kpDLJ0e7ZlUCIJREeh 52BIi/OLhGTD9u9aVEevTyG6n2p4D5HddUnfAfOC9LcoM00wVI6bhsRZC3ZxyvqJ I2F6lwSeU6M8ZaUZmfMNdhct0cKkU5JDGLkfNeXRLnnW+8d/AYbCFOoIm2+z2Vra qU/RZS1Ztc0FXXTUahBJUPSYzA17noxBrxxRHet+FJ3M3MtHTyP+BzvLBc1hj8D1 CQ2bc6EQeE9pdh0j0E6m1g== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wgq41n8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 12 Jul 2024 13:59:30 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46CDZAAT029031; Fri, 12 Jul 2024 13:59:28 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2044.outbound.protection.outlook.com [104.47.70.44]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 409vv6ck25-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 12 Jul 2024 13:59:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=duStkeLu/kLnAwV4dvRyW8FxMm5wFWhtJFUDkmc9KcuZ2Rx2HTzj1XUTmpp2lP7dCWNM8rT7/oykySbe9ftUdlIkVp8J3+SP3mxHW9BTA7NSergRthFJdLSGRi0ZvmzNFH0U/A4/XudnGMStrexLo30vZvEWgu1b9+enaW039Nbj1L4Le+EWlrESOzNlRQf9OnbJKltCJjooacJJmYcNSGzYzVV7JEnI5YxNz8LqUAI5IzDVMS6bknSTZ4vgiWEKd1jT0nATgLAVbwcJqSWG3jVopyyGogB8bka5OVaRo5ighP/Zty6BBNgny1PBpXTfvB2bGkWlln+SUZ33PeIG0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=5RVY5IE8Wx4s7WrHolqpjp/ueMyVtQZTuvXg/GpJyaE=; b=I8czjqBUpfwDKq4F8yg0SPzHpFSQOO9dMYH15uC096KljzaqSkJd1ZG/0l5jLQjPUUUtmRsjk71DEL06QC6nkT8cU3OJB1XEbYGrstG0yI13P4Uu3gKCBOtPY7FhwRKdhPZRcbsiw0swdkWp2PLucCwxX5X5rcRGKcB6+EyO1g+zJhkE0z8PPmbxIfmMwCNT9n0pJy1JL2L0A+Zy9j8vSc3n9dbT3CmToBxvbIOsTM8vw7fqi2PTdPa2ymE9NenTS65jfnzYjSwghtUz16UQp0gQ0h+IsMQvb5pnWgH+MMDjSAsgq260GsUufCf0AMBvyKaI7rdWbhjfitBahGxbxw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5RVY5IE8Wx4s7WrHolqpjp/ueMyVtQZTuvXg/GpJyaE=; b=Fl1BY/nYcSeDkUnn7PJ871k9ksWd2uxDzUqSh4srAXdlQFD2k+VVcrErMVYooqaI3u7TB6Z3svz2wUgefL8UATBLAnmqoHJGivPIVNz/zVEmswfUCGoj5cWDREqCvOmaWDM+sgotEXW3WX7SHY3DtvTXX52VnjbD58uIl4eUAO4= Received: from BN6PR1001MB2180.namprd10.prod.outlook.com (2603:10b6:405:32::23) by CY8PR10MB6852.namprd10.prod.outlook.com (2603:10b6:930:84::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.20; Fri, 12 Jul 2024 13:59:26 +0000 Received: from BN6PR1001MB2180.namprd10.prod.outlook.com ([fe80::34e:408e:c7a1:2446]) by BN6PR1001MB2180.namprd10.prod.outlook.com ([fe80::34e:408e:c7a1:2446%4]) with mapi id 15.20.7762.020; Fri, 12 Jul 2024 13:59:26 +0000 Message-ID: <12f57613-f453-4cec-860c-a1fa1ed7496b@oracle.com> Date: Fri, 12 Jul 2024 06:59:21 -0700 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH,V4 3/8] opcodes: aarch64: flags to denote subclasses of ldst insns From: Indu Bhagat To: binutils@sourceware.org, Richard.Earnshaw@arm.com, richard.sandiford@arm.com References: <20240701025404.3361349-1-indu.bhagat@oracle.com> <20240701025404.3361349-4-indu.bhagat@oracle.com> Content-Language: en-US In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: MW4PR04CA0354.namprd04.prod.outlook.com (2603:10b6:303:8a::29) To BN6PR1001MB2180.namprd10.prod.outlook.com (2603:10b6:405:32::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN6PR1001MB2180:EE_|CY8PR10MB6852:EE_ X-MS-Office365-Filtering-Correlation-Id: b81d9d20-25f6-4938-2ec8-08dca27ad74c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?ZlhUcmU0T0k3ZHBHTWRacm90dXFYZ1phYVJZZUt1cUxVK3FyUFdmZUFmOVNQ?= =?utf-8?B?SXBlK1k4cmVMTGZwVkpXYWhsV3VwbkVheHdrYW5ZOUVJVEl5K1JDZVh2Wi9Q?= =?utf-8?B?SVdUaDRsbEtqSUxVa3E0Mm5oYVhyaENOc0t6NmFjZ2U0SVRSbmkwRVZFdEJh?= =?utf-8?B?OXN2SGE5UWwwTGs1M0FzQzNKY3llc2t0YzN0dFMyV25NMjZvbU5hTi8vcXhk?= =?utf-8?B?N0FaSUlJNDFubktjUnBvajFMUUZXSGZ0bzlVdk51YmZMWm8vRzlWb1pqVGFW?= =?utf-8?B?RURMdGJCU1VrQWlvZnpUemJlVjlkaUkvMURWWUxhVlhoMWp4T2JpTWRTWjAv?= =?utf-8?B?Y3RzazM1b3VKVURkcDBqdlZQK3V0QTJ0UkNWbVB6cHo0S3F2OENiNU4xbmhJ?= =?utf-8?B?MnYrbFd3Q1hHNHZXNGFoTzNQSm5jc2hkUVRDTWhTQ2FoaDNqQUUyd1lSV1FK?= =?utf-8?B?azBoV25uWTN1Nkl0eG1lcDRmbFdRMnQ2Rlp0OUp3NTdzQ0pHOGdLeUxZdThq?= =?utf-8?B?dkJIY2pGUHZRdTJNNVNYYlF4UDdrYjBkLzIyaE1IRitjNlRDcTNoM0tPSU93?= =?utf-8?B?Ni9tVnFybmxrVFJSRlFVMFpNOGp3Sy9tNzV1cEN6RzdqejFPajdOMjU2ZzFP?= =?utf-8?B?eXJuUGtPSFlYVHZwSUdoKytuL3NTeGlWMXZUQTFxZGpoR2t5eEhkYlQzbzEz?= =?utf-8?B?Rkpmbms2c1lLS0g5NkFPYk91c0wzUG5hNE9qWVhqRVFWek1lY3NIcjVvRDN4?= =?utf-8?B?L1J3Wml1Y0padnBNcGFSMWVDQzZzcG9BN1hzTnBkbXFlSFdraVN2VjVKRXM1?= =?utf-8?B?a2thN3p1YWRzNkEreEpWNTFlN2lpY2NWL3oyN3FlVjdLc2F6TXM5dnpjVjFq?= =?utf-8?B?eXZXQm5UZWxwbk54WnpSbkRMTHAvM3QyK01VVVZhQlRFY2tHeFh6dEtYSmh0?= =?utf-8?B?RHFURkNlSFkvMkxTNUFUWTB5aHVJS1B0OFZrb0xoQ2UyVjd1RGxFUlFTSTZa?= =?utf-8?B?QjlFcittME1SM05VbXpNSW1HVWpnZDlaZGdIZkczS1FudHdmR2JqYmErYXFU?= =?utf-8?B?NG9IR0ZCdmJLaG5OQkE2b1JZMmlGUmhWaUhYWDVNY1o0OUtSNEJiWkNMSHNN?= =?utf-8?B?OU5CRTRnbHVjWk9ZZHNBNHFhOFdhaElHM2loT3BnVURrM0I3RGlxYndGZzR0?= =?utf-8?B?dmdsNUs2WjVMUlVNcjdsTHE2U0hZbFloYzMvZlNxMUJiRGcxQVJiaEJqcG54?= =?utf-8?B?UllSRDFWWlVIUEgwc1ZXTzhlODZkemM1dFJQMWJDRFlGUmtybmlOVG5rMm9J?= =?utf-8?B?QmN6YjRhZHhmNTVXdTlvZDlRSFltOTcwVCttWXhGN3NiQVdWeEVjK0hBMXpB?= =?utf-8?B?aW5xcml4aUhrZTRJNVdzMmxzR0J1dnRWRWF4TEV0ckVPSTlIeWdUVTRVVmNo?= =?utf-8?B?SmhQamZnUmc1TTJVbDdBbXA5aE9QUFljWFNDNmxvTXBDSXh3cTU2dmxzLy9s?= =?utf-8?B?ZHNVL05iTk91bStHN0crSXRMakFkZ2NtbUF5MFdQZnQ4d1ZiL1VycFIwUTBX?= =?utf-8?B?MmtVQ2RPN1VMbFFKMW5aUVJuSjduZkwzNTBTSmljdGZwc1I5UnZNNDlvNytR?= =?utf-8?B?Wnp0OEtsYjkzMzZWTzZjUEpySU1yc1IrUGYwZnZSQVd6RndFSi8rL0R6czZh?= =?utf-8?B?LzdPYWh6dVkzVjZ0QWQyLzVTL2VmNFhVcG9rcGwzcitVc0VyaEJpdEdydkFQ?= =?utf-8?B?emovZFliZWhnU3dXOHNxMnBobnE3dUg2aURDdW1KT29uSllzSFQ0K2FObWQy?= =?utf-8?B?QkVGL3hPVEdBZlpyd1pQQT09?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN6PR1001MB2180.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Unhaa3BGbnh3WEoxNzZhbDNxVzU0QTUzb1FERXNRYTR5MEZWREo5NDhHVDBm?= =?utf-8?B?dWtnVmRJM2VmYlRWeHZkUzFBSEZobm5IVS8vcENsanFHbzJKSnk1Snd6bTdU?= =?utf-8?B?MkRWNDRxYWg4V3htekFjT2pHVWpNMk85TmoxQmFxQ2JRaGRWU3ZkV1VoWGhi?= =?utf-8?B?TjFsNWNrQkM3L0VscTdTd09zYVUwOGtJbjdBQlFYWDVGUUJyeWdyWmVPZGxF?= =?utf-8?B?dzQzTzNuRmwvVzNIS1hBYmg4bS9reW1ESS9MQlgxbEE4RFJLOFowQ2F4bmtw?= =?utf-8?B?aEJxdDN3STNlV2ExWGFMbVMxcy9PWXdBZFdVL0FvV2FPRDBpN3B4YUt2bnVt?= =?utf-8?B?dmpOb05sdmRNbTZaemxWbjRUbk9ZeWpPYngwL2RVTk0zeVc5YXJqd3crdnRz?= =?utf-8?B?VGg0VU1MMGpaZWR3UXkxUHM2VkcveE8ybTI1azNPbnVGbnZaMGJwTVJMNmxC?= =?utf-8?B?dkFPeDJ2cjd0VHBKWFd6UVYrMnRMT3hpeDB5OVIraHdtK0haWGhRem9JMFlh?= =?utf-8?B?aDR6cHUvclUxQW5zT2MxZEVRVWlTalBaR1pYTzQ2SDRmT0N5WVBvU2FFZ2dp?= =?utf-8?B?STNidmZJcm1VVG5WWTNYcXBIaC9UbjBYVExGYnRTWFRBRnJONHAvcDNaYlBy?= =?utf-8?B?WnNrNlY1ckJrbjdPc1BxRW04RWJ5NFVPTWFrS1pVQ2xZRmRINzh3ek5UTFU3?= =?utf-8?B?Yzg0RE95Ymlkc0Z1SjNSbXlVM0pneUVNeGNFb1VNOGNSRy91OWVPbGhMd0ti?= =?utf-8?B?NW5GbnR3THpYL3ZhUlovTDA5KzlpcHlQV1lJc3dkMlhzelNyYjNzZ0hIdmZp?= =?utf-8?B?cGFoekNITjNzNG5CaG9XNUdESnMydnNOSE52c0JoRmFKYUdodVVBcDhlclN3?= =?utf-8?B?aGVHUGxJQnRiN1lBY1FST2IvU25kSlR0YUxCaCtqUWp3ckpCWm5tZXp1dEd4?= =?utf-8?B?b3BFMXMrdmRzR1RvM1RzL3B2azBSbVpGblBDSEFqZzBhS1c0ZmFicEtTejg0?= =?utf-8?B?L2xZWTFrdklHR0U1aFFqbDRxdjVVdGIwY2p0U1VNUnliaVdXelBadUNjSXdC?= =?utf-8?B?TEx0R2V3L2M4RmczeURGUnMrTWkzQlRVTlBTZndnUENSK0lrd1dvR2tFK1Ex?= =?utf-8?B?cTV4QkRqUXY4MTZUYjY3b3NGNm5mdXdwbEthZ0QvSkRCVm1NcEU0Z3AzQjNN?= =?utf-8?B?M3JseGtQMVNGRjMwS1RGMmFsK1lNZG9vQnB5c0JlZ1RzWUJpbE5nSENrZDVv?= =?utf-8?B?K1M2SFdTaWh5NVp6cUR2djczZ0dGdmhyNnIyNGVjc1pPN1Q5UkQyWWNIUm5p?= =?utf-8?B?cWg2dTZYN1BURks2ODlhdkZaZTg0OTl4V1NSNGw2Y1IrZXNhS3lUSEVvVlRC?= =?utf-8?B?R1dSR1JxaW9tTGY3cW10OUUyVnp5Z3JIeldnejNVQXA5T0dYQWhxaVlJb0Fl?= =?utf-8?B?NHhVbXpXanViMlFIblFGOEhCOS92Sk0yZWR0REkyMGNNeWZqQU9PdmNWMzAr?= =?utf-8?B?TEFQZC8ybXZzdlpsUis4Ky9KWnNVemk5NSs1eEhHUVJJUVR5UGh6Qm1vZ3pH?= =?utf-8?B?dU1VRXZFQkF5MUhHNU94bWJLZ1FkdXRLSHp5WFFOaG5jaDc3K2NROVhFL1Z2?= =?utf-8?B?dDVFekRhVTU5NmlEVjdkNjNvYjk0UXRUT3V4Uldza1graWkzYmVyWnZqL2Ix?= =?utf-8?B?Ykl0SC92ZmtDVUVydGJzaHZTNVlraHFYQmV5ei92WHVMcElnbncxQWFTRmhh?= =?utf-8?B?VlVQWTlJV2pOZ2UwNXhIWkdvZnFncFdKSFdpeVB3QnhYOURCVXJtZGl6djZR?= =?utf-8?B?eUJmWEhMcEh5UjZoSlFCcTRZNE84bi9TSkdYd2ZuY1p0bmloeHo3MEhjNXhO?= =?utf-8?B?WjBFYUJuUHNaNGdZVmdnV0Nna1I1TnozUzgvYytKNWpkTGtVQjRZand0VUlL?= =?utf-8?B?d1NGNFJaTmVpczhSMmliM1RlNUN1UjlHSnVObEdoK3Z5ckN4T1RRVWluMkhH?= =?utf-8?B?aGtWUkQwa2prRm5zZ0NPb0NheXhWMk9TSDBTczZ5UlpIdE1CREV1eGZTekhn?= =?utf-8?B?aUdEQm0xQlRvMEVGMmk5Q1o0S1NLVFRkYWxlUS9DMWJ1Uk80dVhrUUhpblpG?= =?utf-8?B?dkVkYVNYeE9KdDlva2tFeTk3MHo2M3RaQW52YVZtY1RvRThCeXZUdUlscmtH?= =?utf-8?Q?CPdfYRulSO2Lq9Lcd3ljagg=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ZPDzM06WzzeJXz+F2yuygDZUlrlE13r0kDsBCOuWfKvZnkNmnJpn3n09mStLFqu7AAicoZUxP8+KtN3pbE1c2I1VYbdLsdBQ/CklRxb2VzOhf6PQZZqlCb1o/YRCCZX++Hqkob0JfKKnSG4AUTIMCjRIphuduuCGT5Z37VAoGdsGMfrsBXCICK6uV/ZjPPLdZcJ4BPKUUC8N/1HbfXArVsX4RXThf5WvDi8IRXPwfIBbIx7JtVzZ6mC/YEFqQqJjzL9le3dg40j6HD3YipjrmCJPQ/Ypl9CUxKtOk0I8LuUjynDPv35QXPEOq746amZX7y2g49/z2aJv/7AOObK/BXjuGHq13mK36KWm1uMbmH5mpuM6nYdCwEutt2prK/4dlQIZ5rBz8VRJHVZa1saAwO1OTkzHX7TKyGPRjtEZZtuCSwI1fJS17RFspAVOvI/wWKRS+CWjlMisADRr3xZ/gjp9kO2zDnaiuoViLEGiHdzPLORRulS5UQXQTTpDLIGzlRigj69utquqLOCZN+ufhkxkGxnGkhlINm9XuGrT6YixBG7Y3W8o+BsYcE7TRPlZDhDvS2TxSl39Ofg8UqCa6mzUDGLQoj38AuiZ5d80vyQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b81d9d20-25f6-4938-2ec8-08dca27ad74c X-MS-Exchange-CrossTenant-AuthSource: BN6PR1001MB2180.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jul 2024 13:59:26.2524 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: BIwaplcsTHcROtg2PbcixU7uX2yKD4xFPg7b60G6lnZbE8Mvr4VobX6uVs4c346qA+6EYYFfqzvuTiHoSm2rhQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6852 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-12_10,2024-07-11_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 bulkscore=0 spamscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407120094 X-Proofpoint-ORIG-GUID: nfpucXB6BDS5byjtlzr7YCQX6UwuIRoJ X-Proofpoint-GUID: nfpucXB6BDS5byjtlzr7YCQX6UwuIRoJ X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,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 7/10/24 22:45, Indu Bhagat wrote: > On 7/1/24 11:06, Richard Sandiford wrote: >> Indu Bhagat writes: >>> [Changes in V4] >>>   - Specify subclasses only for those iclasses relevent to SCFI: >>>        ldst_imm9, ldst_pos, ldstpair_indexed, ldstpair_off >>> [End of changes in V4] >>> >>> [Changes in V3] >>> - Use F_LDST_SWAP for lse_atomic ld/st ops.  Use of F_LDST_LOAD or >>>    F_LDST_STORE was incorrect. >>> [End of changes in V3] >>> >>> [New in V2] >>> >>> The existing iclass information tells us the general shape and purpose >>> of the instructions.  In some cases, however, we need to further disect >>> the iclass on the basis of other finer-grain information.  E.g., for the >>> purpose of SCFI, we need to know whether a given insn with iclass >>> of ldst_* is a load or a store. >>> >>> opcodes/ >>>      * aarch64-tbl.h: Use the new F_LDST_* flags. >>> --- >>>   opcodes/aarch64-tbl.h | 78 +++++++++++++++++++++---------------------- >>>   1 file changed, 39 insertions(+), 39 deletions(-) >>> >>> diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h >>> index 7ef9cea9119..6e523db6277 100644 >>> --- a/opcodes/aarch64-tbl.h >>> +++ b/opcodes/aarch64-tbl.h >>> @@ -4123,39 +4123,39 @@ const struct aarch64_opcode >>> aarch64_opcode_table[] = >>>     __FP_INSN ("fcsel", 0x1e200c00, 0xff200c00, floatsel, 0, OP4 (Fd, >>> Fn, Fm, COND), QL_FP_COND, F_FPTYPE), >>>     FF16_INSN ("fcsel", 0x1ee00c00, 0xff200c00, floatsel, OP4 (Fd, >>> Fn, Fm, COND), QL_FP_COND_H, F_FPTYPE), >>>     /* Load/store register (immediate indexed).  */ >>> -  CORE_INSN ("strb", 0x38000400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, >>> ADDR_SIMM9), QL_LDST_W8, 0), >>> -  CORE_INSN ("ldrb", 0x38400400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, >>> ADDR_SIMM9), QL_LDST_W8, 0), >>> -  CORE_INSN ("ldrsb", 0x38800400, 0xffa00400, ldst_imm9, 0, OP2 (Rt, >>> ADDR_SIMM9), QL_LDST_R8, F_LDS_SIZE), >>> -  CORE_INSN ("str", 0x3c000400, 0x3f600400, ldst_imm9, 0, OP2 (Ft, >>> ADDR_SIMM9), QL_LDST_FP, 0), >>> -  CORE_INSN ("ldr", 0x3c400400, 0x3f600400, ldst_imm9, 0, OP2 (Ft, >>> ADDR_SIMM9), QL_LDST_FP, 0), >>> -  CORE_INSN ("strh", 0x78000400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, >>> ADDR_SIMM9), QL_LDST_W16, 0), >>> -  CORE_INSN ("ldrh", 0x78400400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, >>> ADDR_SIMM9), QL_LDST_W16, 0), >>> -  CORE_INSN ("ldrsh", 0x78800400, 0xffa00400, ldst_imm9, 0, OP2 (Rt, >>> ADDR_SIMM9), QL_LDST_R16, F_LDS_SIZE), >>> -  CORE_INSN ("str", 0xb8000400, 0xbfe00400, ldst_imm9, 0, OP2 (Rt, >>> ADDR_SIMM9), QL_LDST_R, F_GPRSIZE_IN_Q), >>> -  CORE_INSN ("ldr", 0xb8400400, 0xbfe00400, ldst_imm9, 0, OP2 (Rt, >>> ADDR_SIMM9), QL_LDST_R, F_GPRSIZE_IN_Q), >>> -  CORE_INSN ("ldrsw", 0xb8800400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, >>> ADDR_SIMM9), QL_LDST_X32, 0), >>> +  CORE_INSN ("strb", 0x38000400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, >>> ADDR_SIMM9), QL_LDST_W8, F_LDST_STORE), >>> +  CORE_INSN ("ldrb", 0x38400400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, >>> ADDR_SIMM9), QL_LDST_W8, F_LDST_LOAD), >>> +  CORE_INSN ("ldrsb", 0x38800400, 0xffa00400, ldst_imm9, 0, OP2 (Rt, >>> ADDR_SIMM9), QL_LDST_R8, F_LDST_LOAD | F_LDS_SIZE), >>> +  CORE_INSN ("str", 0x3c000400, 0x3f600400, ldst_imm9, 0, OP2 (Ft, >>> ADDR_SIMM9), QL_LDST_FP, F_LDST_STORE), >>> +  CORE_INSN ("ldr", 0x3c400400, 0x3f600400, ldst_imm9, 0, OP2 (Ft, >>> ADDR_SIMM9), QL_LDST_FP, F_LDST_LOAD), >>> +  CORE_INSN ("strh", 0x78000400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, >>> ADDR_SIMM9), QL_LDST_W16, F_LDST_STORE), >>> +  CORE_INSN ("ldrh", 0x78400400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, >>> ADDR_SIMM9), QL_LDST_W16, F_LDST_LOAD), >>> +  CORE_INSN ("ldrsh", 0x78800400, 0xffa00400, ldst_imm9, 0, OP2 (Rt, >>> ADDR_SIMM9), QL_LDST_R16, F_LDST_LOAD | F_LDS_SIZE), >>> +  CORE_INSN ("str", 0xb8000400, 0xbfe00400, ldst_imm9, 0, OP2 (Rt, >>> ADDR_SIMM9), QL_LDST_R, F_LDST_STORE | F_GPRSIZE_IN_Q), >>> +  CORE_INSN ("ldr", 0xb8400400, 0xbfe00400, ldst_imm9, 0, OP2 (Rt, >>> ADDR_SIMM9), QL_LDST_R, F_LDST_LOAD | F_GPRSIZE_IN_Q), >>> +  CORE_INSN ("ldrsw", 0xb8800400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, >>> ADDR_SIMM9), QL_LDST_X32, F_LDST_LOAD), >>>     /* Load/store Allocation Tag instructions.  */ >>>     MEMTAG_INSN ("stg",  0xd9200800, 0xffe00c00, ldst_unscaled, OP2 >>> (Rt_SP, ADDR_SIMM13), QL_LDST_AT, 0), >>>     MEMTAG_INSN ("stzg", 0xd9600800, 0xffe00c00, ldst_unscaled, OP2 >>> (Rt_SP, ADDR_SIMM13), QL_LDST_AT, 0), >>>     MEMTAG_INSN ("st2g", 0xd9a00800, 0xffe00c00, ldst_unscaled, OP2 >>> (Rt_SP, ADDR_SIMM13), QL_LDST_AT, 0), >>>     MEMTAG_INSN ("stz2g",0xd9e00800, 0xffe00c00, ldst_unscaled, OP2 >>> (Rt_SP, ADDR_SIMM13), QL_LDST_AT, 0), >>> -  MEMTAG_INSN ("stg",  0xd9200400, 0xffe00400, ldst_imm9, OP2 >>> (Rt_SP, ADDR_SIMM13), QL_LDST_AT, 0), >>> -  MEMTAG_INSN ("stzg", 0xd9600400, 0xffe00400, ldst_imm9, OP2 >>> (Rt_SP, ADDR_SIMM13), QL_LDST_AT, 0), >>> -  MEMTAG_INSN ("st2g", 0xd9a00400, 0xffe00400, ldst_imm9, OP2 >>> (Rt_SP, ADDR_SIMM13), QL_LDST_AT, 0), >>> -  MEMTAG_INSN ("stz2g",0xd9e00400, 0xffe00400, ldst_imm9, OP2 >>> (Rt_SP, ADDR_SIMM13), QL_LDST_AT, 0), >>> +  MEMTAG_INSN ("stg",  0xd9200400, 0xffe00400, ldst_imm9, OP2 >>> (Rt_SP, ADDR_SIMM13), QL_LDST_AT, F_LDST_STORE), >>> +  MEMTAG_INSN ("stzg", 0xd9600400, 0xffe00400, ldst_imm9, OP2 >>> (Rt_SP, ADDR_SIMM13), QL_LDST_AT, F_LDST_STORE), >>> +  MEMTAG_INSN ("st2g", 0xd9a00400, 0xffe00400, ldst_imm9, OP2 >>> (Rt_SP, ADDR_SIMM13), QL_LDST_AT, F_LDST_STORE), >>> +  MEMTAG_INSN ("stz2g",0xd9e00400, 0xffe00400, ldst_imm9, OP2 >>> (Rt_SP, ADDR_SIMM13), QL_LDST_AT, F_LDST_STORE), >> >> These store an allocation tag, rather than storing the contents of the >> registers to regular memory.  I think they should be put in an "other" >> category. >> > > I have changed these to F_SUBCLASS_OTHER. And on the ginsn generation > side, no memory ginsn op is generated (address calculation op is > generated if writeback is in effect as usual).  Also added code comments >  in tc-aarch-ginsn.c to clarify that skipping memory ops is needed > because the memory op affects the tag only. > >>>     /* Load/store register (unsigned immediate).  */ >>> -  CORE_INSN ("strb", 0x39000000, 0xffc00000, ldst_pos, OP_STRB_POS, >>> OP2 (Rt, ADDR_UIMM12), QL_LDST_W8, 0), >>> -  CORE_INSN ("ldrb", 0x39400000, 0xffc00000, ldst_pos, OP_LDRB_POS, >>> OP2 (Rt, ADDR_UIMM12), QL_LDST_W8, 0), >>> -  CORE_INSN ("ldrsb", 0x39800000, 0xff800000, ldst_pos, >>> OP_LDRSB_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_R8, F_LDS_SIZE), >>> -  CORE_INSN ("str", 0x3d000000, 0x3f400000, ldst_pos, OP_STRF_POS, >>> OP2 (Ft, ADDR_UIMM12), QL_LDST_FP, 0), >>> -  CORE_INSN ("ldr", 0x3d400000, 0x3f400000, ldst_pos, OP_LDRF_POS, >>> OP2 (Ft, ADDR_UIMM12), QL_LDST_FP, 0), >>> -  CORE_INSN ("strh", 0x79000000, 0xffc00000, ldst_pos, OP_STRH_POS, >>> OP2 (Rt, ADDR_UIMM12), QL_LDST_W16, 0), >>> -  CORE_INSN ("ldrh", 0x79400000, 0xffc00000, ldst_pos, OP_LDRH_POS, >>> OP2 (Rt, ADDR_UIMM12), QL_LDST_W16, 0), >>> -  CORE_INSN ("ldrsh", 0x79800000, 0xff800000, ldst_pos, >>> OP_LDRSH_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_R16, F_LDS_SIZE), >>> -  CORE_INSN ("str", 0xb9000000, 0xbfc00000, ldst_pos, OP_STR_POS, >>> OP2 (Rt, ADDR_UIMM12), QL_LDST_R, F_GPRSIZE_IN_Q), >>> -  CORE_INSN ("ldr", 0xb9400000, 0xbfc00000, ldst_pos, OP_LDR_POS, >>> OP2 (Rt, ADDR_UIMM12), QL_LDST_R, F_GPRSIZE_IN_Q), >>> -  CORE_INSN ("ldrsw", 0xb9800000, 0xffc00000, ldst_pos, >>> OP_LDRSW_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_X32, 0), >>> -  CORE_INSN ("prfm", 0xf9800000, 0xffc00000, ldst_pos, OP_PRFM_POS, >>> OP2 (PRFOP, ADDR_UIMM12), QL_LDST_PRFM, 0), >>> +  CORE_INSN ("strb", 0x39000000, 0xffc00000, ldst_pos, OP_STRB_POS, >>> OP2 (Rt, ADDR_UIMM12), QL_LDST_W8, F_LDST_STORE), >> >> AFAICT, patch 7/8 doesn't distinguish between byte stores and other sizes >> of store, even though this matters for CFI purposes.  I think we should >> use an "other" category for anything that isn't a full load or store of >> a W register, X register, or FPR. >> >> Patch 7/8 shouldn't treat a W, B, H or S load or store as being enough >> for CFI purposes.  The width has to be 8 bytes or more. >> >> Similarly, for LDP & STP, 7/8 should punt on W and S loads and stores, >> since they cannot implement a full save & restore for CFI purposes. >> > > Currently, the checks in dw2gencfi.c issue a warning if CFI offsets are > not a multiple of 8.  So if user says --scfi=experimental for >     stp     s8, s9, [sp, 96] > they get an error: >     Error: register save offset not a multiple of 8 > > I was sort of relying on the above for some cases, while leaving the > users on their own for other cases. E.g, No error is issued if the user > does a save/restore of S register like so: >     str    s8, [sp, 96] > > Hmm, I could punt on W and S by not creating ginsn mem ops for them > altogether.  Should the user be warned though ? How about something like : >    Warning: ignored probable save/restore op of less than 8-byte > > As this will be diagnosed by the ginsn creation code, the warning will > be issued when a load / store: >   - of callee-saved register, >   - of width < 8 bytes, >   - and with addr_reg involving REG_SP or REG_FP is seen > > To avoid the high number of warnings, we could warn once (for the first > sub 8-byte applicable load/store). Do you think the warning is useful ? > I am inclining towards working on this as a follow-up patch (not included in V5). Punting on S and W registers should be easy, but I would like to test it out to be sure I am not misssing anything. Further, I am tending towards not adding a new warning for this in the current infrastructure at all (mostly because there will be false positives which dilutes the eficacy of the warning). IIUC, the usage of W and S registers to save/restore callee-saved registers is not ABI-conformant anyway. Please let me know your opinion on defering this as a follow-up patch. Thanks