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 B002A3858D26 for ; Thu, 11 Jul 2024 05:45:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B002A3858D26 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 B002A3858D26 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=1720676736; cv=pass; b=SQhAG+vu0NjoaUFUsY3OMwRWtdIP93gMtKdpZPlN2oTVZNiCm5mN9/4Y5fzqlUyoryqaCVxARfCjpzxsupvRUZ4sPFYFH5SGgN4S2nrbKYFs22M7xBr5mW6H6yHYEl/OHhB3dvcY566sCtIi0LHRxJUvKLQ3yEu5Pwnvt8OG/rQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1720676736; c=relaxed/simple; bh=wPEBelEEe4WxO1yF9zQJa9eauzvH3VNj3G1rbCCWyzg=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:Subject:To:From: MIME-Version; b=K3v77GNYaxf8iwN+SBXbSjWooDlCt1J7rV4yu44HHN/oS+HZxCa3V1MZJwGuBU9ut7BFF6KvPDtm9QhIE/ZjurOB6cyxo6Y4jgc0yq/nnI9NFiPudiSOFqC58Rc7noCUZnM7A0zihjza/ipJvyqgwCkqWCCc/ZUF8/0Q7gFFkgI= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46B0Qogw004041; Thu, 11 Jul 2024 05:45:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= message-id:date:subject:to:references:from:in-reply-to :content-type:content-transfer-encoding:mime-version; s= corp-2023-11-20; bh=ber6CdfgROMocdMuJSlJJIP1tOb1szHB1Vg7e2VvCVU=; b= EjrdhRUtyRYRpqz6z1tTJUeT9HwM2H+cqj9XEWYfq1yfdgUGg2tVCgplLyO7GIXu VGnEZopbhlLa8tMEj60wUojJ+0wwj/oUTodDf6M78N0VHy5UJQPv4ecRnrMEy8Bw SA4g2MLncOiZJ/TRwYfhy6TQbT6ZXz3+a/efnVQ7MxEqVvhK++6RsGkohNZ0iZpP HA3VGDcUYoOmVIvdqpugXIUbFRnbFEpF7GBkhO0b46v32diGozkKODqT6hoEuGJs znpTwa4gUzFLAUN7S3FbDXNTXh03Krf7bTE6nHjJtKIBo01IGConZHD9vIvGiOZ4 mbjvA40SfwlVU5CZduuggQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406xfsrtte-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 11 Jul 2024 05:45:28 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46B4jNEe008931; Thu, 11 Jul 2024 05:45:28 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2047.outbound.protection.outlook.com [104.47.70.47]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 409vv420br-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 11 Jul 2024 05:45:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=exMVBj1YF6WWu9fIzICHnv0nrOcwTdyAECXqFSZteklTJBnUIwAjw3vSYuknB7dgbvqeRCcpkJ4AvGOMyubNJOy2OHwcTBHSpN5G0VB3IL1EJufgfDy5II8etu231tJpCn03AOruu3QpUQC4Vzzfo672Rk/klaIVP/H/lEJ/Tos9aGOXvgDLDIcAWDK+Y80vmoe2JohOQZSQLm+SWOB63P5+60WSWZh+JDsmU1H+VTeBLLa75DvpMBosTUSg+hl4oA4qvJSKdDJPpcSHB8HyjcIHTCeOs7sSwy2NaS4IJ/oHjTYLA/qKn179wZkZQnkMgdKSfT46QLaJQP68WFNyDA== 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=ber6CdfgROMocdMuJSlJJIP1tOb1szHB1Vg7e2VvCVU=; b=hIigrfOoBLP4kt57aPE3nXcHpzbdZYJ6jaVV91df2j5znNbr2XrwLd8346lo9invifHAozxtX+mqQ/E5wA0A30FyKzrDdBS97CSJsI3slHlCmW2CLjxS040d62sEgMufb1jicGFT4nNxF/c/yb4C/yRB27ej3HBLNf4NtrbgTmO37X9DPDVfH5zj9qfOUZnC7hWNW9CZPdXiETSlFikYE+M50n8otq172v5R9UNlvJZuBsz0o/g59b9K1iaF5nNonnzPO6vKYrO23umtriE3+AGeqEOxhYYDid2zbKHS+C3nvMEXaIdFPRZAzTbvXNg9Qdcx0f22rOW1DGmyGzcEDA== 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=ber6CdfgROMocdMuJSlJJIP1tOb1szHB1Vg7e2VvCVU=; b=LqKl9lt4bmLAx1uH1mILbSGPUEq1C8yV/BeqN7vKJjTTWiGcNNX4RsgPVUhdaw3f8U1X0ycqJaRxnnRX19JoVAiDQBqsnPZyL2kzeV5wVcF5ouk0hxNAkLGodQeT/1EvCWwm+3qCvTbMmN2fII50TH1qSN70Zhm1Is5EukVxw38= Received: from BN6PR1001MB2180.namprd10.prod.outlook.com (2603:10b6:405:32::23) by IA0PR10MB6913.namprd10.prod.outlook.com (2603:10b6:208:433::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Thu, 11 Jul 2024 05:45:25 +0000 Received: from BN6PR1001MB2180.namprd10.prod.outlook.com ([fe80::34e:408e:c7a1:2446]) by BN6PR1001MB2180.namprd10.prod.outlook.com ([fe80::34e:408e:c7a1:2446%3]) with mapi id 15.20.7741.033; Thu, 11 Jul 2024 05:45:24 +0000 Message-ID: Date: Wed, 10 Jul 2024 22:45:19 -0700 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH,V4 3/8] opcodes: aarch64: flags to denote subclasses of ldst insns 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 From: Indu Bhagat In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: MW4P222CA0018.NAMP222.PROD.OUTLOOK.COM (2603:10b6:303:114::23) To BN6PR1001MB2180.namprd10.prod.outlook.com (2603:10b6:405:32::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN6PR1001MB2180:EE_|IA0PR10MB6913:EE_ X-MS-Office365-Filtering-Correlation-Id: 4ee02dbd-3ddf-4d19-2cbc-08dca16ca8e0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?QkVlOWFsRXZ1ZHNOUmUyYTN5dkZYTVJDRHBXcDk1VGJ2RkZCclU0UUtCTWVY?= =?utf-8?B?N09ySmdvZURYeElVdEVYYUxpaGdsUFg1NWg0R0Jzc21XQlI0L0hReS9HVjI4?= =?utf-8?B?cU5uSnBBT1FselkzbjVwbzVnaVdMUXRBWTA5S1VpUk8vYXFuNVBSZXV4bDVI?= =?utf-8?B?c21kQW9iRzQ3QzhkU2kwQmFEZHQvWHoxMGpHaTZnaWZKSEpjSkVsTVdmczVa?= =?utf-8?B?QTUzZjczbElIdDViTnNGUjFNaDZicUp2YW92ZGY0ZWRrS2s2L2ZmYkhjWVht?= =?utf-8?B?dDAwaVNSVExGT2w4YUFCcHdlVnoyK0dhRjVKWnpkSUM3MjZyd0VVWjFXRWRX?= =?utf-8?B?VjlCMDIwVW9QbGNGcTc3OXQzanJzZGhYWnRJbXA5WVRVSjJMME42T2d0K3FG?= =?utf-8?B?VlhoWHVwNzdJZStFY1UzRnZ5K1VjNnlCY0VzbU9WNk5PK0dnWjM2bWd3Uzh2?= =?utf-8?B?dGQ3Ny85QlFNblpnZzUwSi90NDdTWG5MWFQ2MXUrTzc1d1dMWmhhRmwzejBD?= =?utf-8?B?THZuS0NsY3hlS0hIUVZPS0w5VTFPQmJEWTY0WDZ1VE1lamhqbmNPVHQzZmFL?= =?utf-8?B?MXVIenlHWTRPd20rMS9IQTZtU1o1UmpwV2FUSDYxam1rN0dOZXg5cWFwWWdT?= =?utf-8?B?bVRWYmtRaXFHR04zcTVZZHZWRU5ic3FzdlNVQkxicDFWbC9DemVwMDNYaUta?= =?utf-8?B?WHNYbUQ1bTh5S2poekJITzJxZlUvZ2VtUnBBV1UxY1l1cm1rMm40eXUzckFy?= =?utf-8?B?aHZtRzR1eldjQXlkOU9DR2o5emR4U0Q4aHQxbk1RYlhPUlJaUk94L2NCMU00?= =?utf-8?B?cTMxZ3llOTZ2SE1veE5LNTc4c1VkRVhhREhGbW1vdVRNbVVBOTRNU1prYXp4?= =?utf-8?B?UUJ0UjR4TkNsZEpaS3lsUlgwMXZqZ2RWaWc2ZTVRcDRVb01lS0JXeE9SSlFN?= =?utf-8?B?T1paOEdEZVhlZ2J3bFcxVmg4OHYwVGRLTEdOTnVnNmQvblRtbVRicmY4bnly?= =?utf-8?B?UGpSYzQyMzVxTzZubkIrWXV1KzFCOUtob3R2MXpQU3JHNVc2dTVlSkhEd1Zn?= =?utf-8?B?Z2FuWEdCd3J5TkdzbWJhUUd4b2FMWG8rTWluQlVIaFhqdnNVTDBWYXZkMzNP?= =?utf-8?B?UGVzay9SMW95SlVoTHBpZjJ2cUtWY1lkRUZHUEJidzkwd2ZubDY2SnQrVTFT?= =?utf-8?B?a1VZNm5tZDk5ZTUzMEdFREhOTWdmeE9VcUdxTFQ2RjZLYU4zcFp0eDZqR0Ny?= =?utf-8?B?YzNrT2NLYXNtSFRWNHFhQlA4bE1OcGJQRkc3Umk4MTdwUzNxeHBlOUNxSDUx?= =?utf-8?B?bWZ6Qk9zVE9tN0ltQ3dYSXFob0ViZjV3enpHY3hLYWFoOERlTm4rK1E4Y2lK?= =?utf-8?B?VlRsMHVXbHB3b2dsSDdURjFheXhKKzQ3eVc0dlFEeDRRYnhYZU1HbHZ1SWZx?= =?utf-8?B?SGVQOVJ3U2w3aXpNUzFCMzUvejNHY1A1RTlHaGMzV1hsdWRxS3JSOHFRbFd4?= =?utf-8?B?SXRuUmppbEZmeFpsaDBTeHVSM1I5QVZ0b2luVzNKdEhyNWdVRGI4c3pOc0t4?= =?utf-8?B?aHpOZC9HVTJlcW9RVjlhTjc5ellzdEhhY3VvV1pYMUlOUk5oZTFaZ0JyQTlL?= =?utf-8?B?M1NPeG41bUtZTExoRStoOW82QUF6aHRScVIxMFI2cUM5WkpOaFZFYjRleFVQ?= =?utf-8?B?a1R2eC9jWCtGMlVyZllDdlcxYjdkUTNrMWhyd0xoUEZPbVpqNXFNVy9Cb2Nn?= =?utf-8?B?TUIrR2MyTWhsNHZ1RCtpUHRCM3pYMWRzY09IWGZKQkRFY1g4Rlp5by9XdmJY?= =?utf-8?B?ZFZEUG5UdS9wTEQxb2JHQT09?= 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)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YytYWTJ4d1ZISlV1ZFRtcHV1NjduLzhrMkFQa09YQ1NzY0pTSlZKOHJUdmVu?= =?utf-8?B?Z3FQdzROWk5jejJmVFNGSGJuOWhmTjFUQk1BQ1pIekVpVmE5MUxNbEUrd2t0?= =?utf-8?B?SWY1OW9IbXhZWWZkTnVWbXhjc1E4Z2M0dnhOem8xNWIzcVV3S0lqZ0tScGRk?= =?utf-8?B?emdPSGxmeVNjcWlIUUw0OGNDdW9LdmtoVUVTMDk1ZkJmcVZVQ2s0NjBxbC9B?= =?utf-8?B?QktXdWtlczgzbnoraFo4ZTN5aUpyN05vRDBzaFUzbmw0dVBCUi96VFIxV3Ja?= =?utf-8?B?WFQySDVRcXpSTXJqRThIVFk2bC9PU3JWeVBOU2EyeG41S0oxbHFwVWJLT0hI?= =?utf-8?B?Q2twMlFINHNrazZpWCtOV2ZJNWJiS0k3eXRDaHo5S0VPd0VmVnMweGlTaU5z?= =?utf-8?B?QlFNaktlQThRMlhCOStPSzNxeVd3NTlBT1QrZWRONzFDbkp5OUVwQmVOaE1T?= =?utf-8?B?WHJqbEN4azdVVVU3eEtmS1VHbG5hbDUycG9mb1VVT3Zkd1BLNCtReWlvbUN1?= =?utf-8?B?bnppOEVoU0dhSTBWWCtheTMrZDVBUFVTek5iQlRxTE8ySWE1R2VZSGMvcTU0?= =?utf-8?B?WnVrdldiWGRsZXhvVUlacm0raVNkM0JSZ0dxYStBWTcvejN5NnJKNmZ0QWV1?= =?utf-8?B?Q1lUMXdhWFZXSXl4THV4SDg5cmY1anlVUW1vTHdmUDN3TEtiUTRFaXRqdzUv?= =?utf-8?B?Q2RIQ2QyOVRpVHIwQ1pCVEhXWG1zY2NLUmFTckJybC9kSXBJb1JyNThiRFBj?= =?utf-8?B?WEQ5NEwvUmU0eVlwVnhIaGVHSTJLWDk2Uy9QYjFtQlZjQ0dQejdwUHI4Zysv?= =?utf-8?B?M1FBRVFhTDk3V2hwUW1DMFV5S28vMGhVRldrT2NUazAvSmwvb0RnRVZWaG8v?= =?utf-8?B?OFVPbHdmWmpPaURvZUV0QWxIaVdVNTY5NGljTEhlREZCZkRmRHExTUJHSWJ1?= =?utf-8?B?a056Q1A3bUx0SnpxbVJVeFdoRVY3Q216dkF6TnM1MEdFenBOSk10NE9wcDlv?= =?utf-8?B?M2dVeDZOUTQ2SVpXTjZvUDZLK1hQYVNvNDJNN3FOUUhEOEhmQTBvRDJwN2Jn?= =?utf-8?B?VU82ckd6enNRc0JkVVUrWGZWdEcxV29Zd0VxRnQxUE5hakJFOCtRRVI0dXE3?= =?utf-8?B?RjA5cXZ5QnVua0NBdmgyVTlaaGZVczFJNTdRU1hZUnBSUFVNQ044NzhtV2Ny?= =?utf-8?B?Zzg4SURDVFFhbjZQcU5iMVN5VG1HNytFdktzdER6aXorUitvNzZzV1hMQWR5?= =?utf-8?B?Vko1MnlMWkZPZ0tZRWwxNkhXbWRxOSsrVVhiVW1UVCs2M1UxbHJxemVKTnBr?= =?utf-8?B?eG51WnBPb0RNV3JzZWsxRnNMcy90bW1SMHZCTnN2YmVFWjF1UEJDY2cxeWly?= =?utf-8?B?cHg3bnZKekppMS9aSFVkeWhSaWdrTHliYm1nL1dsUFMxQ0dpR0RYNyt0TWdV?= =?utf-8?B?M2NhenNoY1BydHE0WDRyekVidDNMY2MwOUYvRFVVN28wVDk5NlRyTFR4ZVNI?= =?utf-8?B?cGQ0TlZJcVB2blNPQ25RRlNUbjByL3duTkRNeTFtR0xITEVPWDVPOWZ5WWgx?= =?utf-8?B?aGZTbHFSK0djMEpaYXhDY3drME01S01PQnc2NHQzWVZ5cDJ6RnYyOExLUGVM?= =?utf-8?B?eHhTSWdyU2g0WkUwYkZ3ZTc3TktzNm5kN0pTZmV4dk1WcVFTRUV1dFZXbUt0?= =?utf-8?B?cVRDNnE5VXZlV2NRVjN0T1AyWTJBN2Fuc05IU09tdjBNbGIzUXE1MXhjWGF3?= =?utf-8?B?NVZGYmFTMWVLS2l0bGdYZDh1b0lpbEsrRk13bXdKNEwzZEErUUdJWVZnMUJG?= =?utf-8?B?SUJNQnNYZVc2WWlCZzVxMnYwZkZoOVVST2lCU1E4Q0JrSnpsUU5kWDV4d0pk?= =?utf-8?B?SHZ2RTU2cWFpaGFRR2Zkc3Q4R3gwT3p0STB3MlpFQWJnWVcvK1FJb295YlVk?= =?utf-8?B?SnZ4d3dVODdpc3M4NVNJN0U3b21mWm9Pa3plam5USytWRzllQ3ZTU1QyUUJI?= =?utf-8?B?YnlsZUVQTnhhUjdYREtvckEzT1FNeUlQcFNUN1RjdHhoVWpYWXR1S3RMVGtG?= =?utf-8?B?OENpVkwzU21UV3FRdkFLdS9PYVR0N0hYWFAvT2RVUEZtVmY2b3NJZkRKZzlS?= =?utf-8?B?K2N1TjNXRXlTL2g2WFgybDN2eTBuSWplMWYxSTkrTHI4emxmc0tkWkVSZWNP?= =?utf-8?Q?twsRzW8iXEYqzheuA3FLDjc=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: MGF2WIZ96AUGvandd/CuxE/iThrwLL/3x0pLHNyKGvX9XeTiJcxgIRBfflKZ/MeD6BvrQbiSRmZOBuSG6W2BhHGaJG9gzJTVAlFJOCSjL1OtMpRrqPEk+gxYlYw+cqutxnx/kkMaToa4EDcDgh6z5hPrK3T8vAYKRb5UZPKtBHEybQJUlnWBonlYrLEKf/l3ro3KVD9PHTf8Nuv6Gi8BZ5U82cOgUDbG5a5vytQZHYc8pzp4rNhA1iEt+n9vbQqfPc23b9A4Z4p9RQI5PgHEw7q25B39R4ViXaB90apgGGPR4Zeu26kBNIAl82klWKiInsKmNvTqi5Hf4quNgcWA6CXqGyyDy193gSMr+ZF/3k2+r49qA6YR3kShe0yRl5q4rCUMx112i6r1WaJrfzfR+ncRITsTSB+vXysAi/3XoIF3jwgpRmqWYpkwm/YDUm/ZfakU2nGtH8+rgcCVFAyqi0iU+/nO8id1pI2TmnzguE2M0lvbHPzWkt1UQZX2CSWug37HRrvQR87OOklJbLvEiHftmlxCUC2OYCLJiw3tPpq36CzMuZPyDg2deZYc4p4VCJ8MkIqoxpqztN5HQvNL+kWBkbFePRXKWxwgjs/SPQE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4ee02dbd-3ddf-4d19-2cbc-08dca16ca8e0 X-MS-Exchange-CrossTenant-AuthSource: BN6PR1001MB2180.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jul 2024 05:45:24.2260 (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: iDBygK7InAbIDf6os/yT3H8OoJO/w2RI54oICl8rIwEnKuXwAx/xncTImPgNH4IgPz0k3yPZMEzj5FGiskJWdg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR10MB6913 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-11_02,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=999 bulkscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407110037 X-Proofpoint-ORIG-GUID: -gc03TAHjGc-YFLPedng38OkkEu-qayG X-Proofpoint-GUID: -gc03TAHjGc-YFLPedng38OkkEu-qayG X-Spam-Status: No, score=-13.1 required=5.0 tests=BAYES_00,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/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 ? >> + CORE_INSN ("ldrb", 0x39400000, 0xffc00000, ldst_pos, OP_LDRB_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_W8, F_LDST_LOAD), >> + CORE_INSN ("ldrsb", 0x39800000, 0xff800000, ldst_pos, OP_LDRSB_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_R8, F_LDST_LOAD | F_LDS_SIZE), >> + CORE_INSN ("str", 0x3d000000, 0x3f400000, ldst_pos, OP_STRF_POS, OP2 (Ft, ADDR_UIMM12), QL_LDST_FP, F_LDST_STORE), >> + CORE_INSN ("ldr", 0x3d400000, 0x3f400000, ldst_pos, OP_LDRF_POS, OP2 (Ft, ADDR_UIMM12), QL_LDST_FP, F_LDST_LOAD), >> + CORE_INSN ("strh", 0x79000000, 0xffc00000, ldst_pos, OP_STRH_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_W16, F_LDST_STORE), >> + CORE_INSN ("ldrh", 0x79400000, 0xffc00000, ldst_pos, OP_LDRH_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_W16, F_LDST_LOAD), >> + CORE_INSN ("ldrsh", 0x79800000, 0xff800000, ldst_pos, OP_LDRSH_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_R16, F_LDST_LOAD | F_LDS_SIZE), >> + CORE_INSN ("str", 0xb9000000, 0xbfc00000, ldst_pos, OP_STR_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_R, F_GPRSIZE_IN_Q | F_LDST_STORE), >> + CORE_INSN ("ldr", 0xb9400000, 0xbfc00000, ldst_pos, OP_LDR_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_R, F_GPRSIZE_IN_Q | F_LDST_LOAD), >> + CORE_INSN ("ldrsw", 0xb9800000, 0xffc00000, ldst_pos, OP_LDRSW_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_X32, F_LDST_LOAD), >> + CORE_INSN ("prfm", 0xf9800000, 0xffc00000, ldst_pos, OP_PRFM_POS, OP2 (PRFOP, ADDR_UIMM12), QL_LDST_PRFM, F_LDST_LOAD), > > I think PRFM should be marked "other" as well. > Done. >> /* Load/store register (register offset). */ >> CORE_INSN ("strb", 0x38200800, 0xffe00c00, ldst_regoff, 0, OP2 (Rt, ADDR_REGOFF), QL_LDST_W8, 0), >> CORE_INSN ("ldrb", 0x38600800, 0xffe00c00, ldst_regoff, 0, OP2 (Rt, ADDR_REGOFF), QL_LDST_W8, 0), >> @@ -4238,19 +4238,19 @@ const struct aarch64_opcode aarch64_opcode_table[] = >> CORE_INSN ("stnp", 0x2c000000, 0x3fc00000, ldstnapair_offs, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, 0), >> CORE_INSN ("ldnp", 0x2c400000, 0x3fc00000, ldstnapair_offs, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, 0), >> /* Load/store register pair (offset). */ >> - CORE_INSN ("stp", 0x29000000, 0x7ec00000, ldstpair_off, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_SF), >> - CORE_INSN ("ldp", 0x29400000, 0x7ec00000, ldstpair_off, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_SF), >> - CORE_INSN ("stp", 0x2d000000, 0x3fc00000, ldstpair_off, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, 0), >> - CORE_INSN ("ldp", 0x2d400000, 0x3fc00000, ldstpair_off, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, 0), >> - {"ldpsw", 0x69400000, 0xffc00000, ldstpair_off, 0, CORE, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_X32, 0, 0, 0, VERIFIER (ldpsw)}, >> - MEMTAG_INSN ("stgp", 0x69000000, 0xffc00000, ldstpair_off, OP3 (Rt, Rt2, ADDR_SIMM11), QL_STGP, 0), >> + CORE_INSN ("stp", 0x29000000, 0x7ec00000, ldstpair_off, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_LDST_STORE | F_SF), >> + CORE_INSN ("ldp", 0x29400000, 0x7ec00000, ldstpair_off, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_LDST_LOAD | F_SF), >> + CORE_INSN ("stp", 0x2d000000, 0x3fc00000, ldstpair_off, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, F_LDST_STORE | 0), >> + CORE_INSN ("ldp", 0x2d400000, 0x3fc00000, ldstpair_off, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, F_LDST_LOAD), >> + {"ldpsw", 0x69400000, 0xffc00000, ldstpair_off, 0, CORE, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_X32, F_LDST_LOAD, 0, 0, VERIFIER (ldpsw)}, > > The last one is also "other". > >> + MEMTAG_INSN ("stgp", 0x69000000, 0xffc00000, ldstpair_off, OP3 (Rt, Rt2, ADDR_SIMM11), QL_STGP, F_LDST_STORE), >> /* Load/store register pair (indexed). */ >> - CORE_INSN ("stp", 0x28800000, 0x7ec00000, ldstpair_indexed, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_SF), >> - CORE_INSN ("ldp", 0x28c00000, 0x7ec00000, ldstpair_indexed, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_SF), >> - CORE_INSN ("stp", 0x2c800000, 0x3ec00000, ldstpair_indexed, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, 0), >> - CORE_INSN ("ldp", 0x2cc00000, 0x3ec00000, ldstpair_indexed, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, 0), >> - {"ldpsw", 0x68c00000, 0xfec00000, ldstpair_indexed, 0, CORE, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_X32, 0, 0, 0, VERIFIER (ldpsw)}, >> - MEMTAG_INSN ("stgp", 0x68800000, 0xfec00000, ldstpair_indexed, OP3 (Rt, Rt2, ADDR_SIMM11), QL_STGP, 0), >> + CORE_INSN ("stp", 0x28800000, 0x7ec00000, ldstpair_indexed, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_LDST_STORE | F_SF), >> + CORE_INSN ("ldp", 0x28c00000, 0x7ec00000, ldstpair_indexed, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_LDST_LOAD | F_SF), >> + CORE_INSN ("stp", 0x2c800000, 0x3ec00000, ldstpair_indexed, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, F_LDST_STORE), >> + CORE_INSN ("ldp", 0x2cc00000, 0x3ec00000, ldstpair_indexed, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, F_LDST_LOAD), >> + {"ldpsw", 0x68c00000, 0xfec00000, ldstpair_indexed, 0, CORE, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_X32, F_LDST_LOAD, 0, 0, VERIFIER (ldpsw)}, > > Same here. > > Thanks, > Richard > >> + MEMTAG_INSN ("stgp", 0x68800000, 0xfec00000, ldstpair_indexed, OP3 (Rt, Rt2, ADDR_SIMM11), QL_STGP, F_LDST_STORE), >> /* Load register (literal). */ >> CORE_INSN ("ldr", 0x18000000, 0xbf000000, loadlit, OP_LDR_LIT, OP2 (Rt, ADDR_PCREL19), QL_R_PCREL, F_GPRSIZE_IN_Q), >> CORE_INSN ("ldr", 0x1c000000, 0x3f000000, loadlit, OP_LDRV_LIT, OP2 (Ft, ADDR_PCREL19), QL_FP_PCREL, 0),