From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id 5E53D3858412 for ; Wed, 24 Jan 2024 06:22:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5E53D3858412 Authentication-Results: sourceware.org; dmarc=pass (p=none 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 5E53D3858412 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1706077365; cv=pass; b=GsOHG1IlxgEyBWwfTFUxs0bnXZf27/wKy6KA1bLp+duKDrtAxL4BZH5pT8Fd4AbMbhRuE1ejbCxnk7LEBXvg15+9sBJ5alR1qmnnwNgegKzwCYvldqSBRNyB5YOrVvXy4CKsVVJfxhikKkLSd+wla1+5Y4cQ5ePrXd2mq82rDcE= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1706077365; c=relaxed/simple; bh=iX635et/MXzoV14u7rDlDLbifpS371/73CkPRlfOuSg=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:Subject:To:From: MIME-Version; b=Cb9mBNiqKxB92l292dCGrY6ICFRWUggk3TuBO50W2si0rL61rkNkywKWKeIksPeNKVgq/s4Ti1UMkmWvGvv++SH25zpu5PaInyj17YkHgH5I1A1zpnloLhWWZa8skLAZ5chYh+NNR8UmAWD1Tx+fd0muTB233sIxVItXSJk3SVo= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 40O30DdI017364; Wed, 24 Jan 2024 06:22:41 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2023-11-20; bh=7tF+9ZrGeOJ/hJdoPIWaK2s3XRilfmLQW89EapP7BFI=; b=Dl5KDFpyuXLCiCDGEWRhZwBh3JN1YWzyl3K619JKrK4AaHaNU/mjb2K2qQOJY+I2GRMq 4jrBD05tjdqS5fwp/eCYKTpXwtfokKDy1HTMVf5LD57tUqv6bss3arcjL9AF9JV0AFAR HtCesibhwklxx6RuBfIZ7G1PU95ao42jPsEs2u6CBLjvdg7eRY9Dhkl2rNhcg+hhEmmC JHeS9Z2Kl4pS5ct5y48R1jrigLjKTD/CO7z9zQwPZpOy+2HF8MaTxFF+XNVEy1E7P8UC 3IspmeiYM/mFd/TNJgX94ivwAjfIN9XVpUeZQKGM2Zq27NB77fBQKCMMOWoK4SEj/pIc Gw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3vr7n808p5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 24 Jan 2024 06:22:40 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 40O60SHO001604; Wed, 24 Jan 2024 06:22:40 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2100.outbound.protection.outlook.com [104.47.58.100]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3vs323f0d2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 24 Jan 2024 06:22:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=U5IPb1pKatZVdgO6umHyuptBylu1ohD1M0so6AoUfAg7B92W9Blpz9R/ofdrSUkFm1esJuRFgN1m5sCD/wyjf0fa+iub+TPYT4dHZSUiTX8Gf/OE91QoNXNiAM3g3dfCwEtrYCbMsEv3pLtwlUC6o71xAl8oh+aALTGi4u9T3C4Dtuh8IXQfGv3ZOn2CGsqilAKv/KFgb9cql8Gi3TMNIoezU++T8JMDmd7a6k/KpEbkgy8vqkCW7oiNwkXKAnaNuHaBZMV4n9ktPgWtR7NteHkAbaLCNaIX15pbawUs14HLpzQ1maGoOlD5QMWmgCuNWllH18MuAVoi+G558oLk2Q== 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=7tF+9ZrGeOJ/hJdoPIWaK2s3XRilfmLQW89EapP7BFI=; b=kBlMRwgR36woFyL3I+3J/PnqzvMVEoPZ4GH7y98g1k5RCvsMJ2ZEEAMhm0Y25Lk8M/rz9YAuCZnCkvNBAE0/J0/BYNm5NSV9Ys+eO5s0Swy6P6EY2i5AQN1TWu/vLPU3cIDjrm/rgYvWu9GWTqVKJ4xUIEGuZWVbEQoAZ8TbXFuh9dZlO6iWdK1wYn0axsLstc3L640bO/RDOiSSPWtGn3m7YlMJ3NGbhOx0YKDEt2xSK0l03bjg5qQwUuyi2fcpNxTwor7R02Q+PkWEFiJZqusOJPfrzlbwUCtW7s62kc2ZH20VGIum3RrC3xywZnamZ8e45jNKd2UyuxyZIMnNuQ== 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=7tF+9ZrGeOJ/hJdoPIWaK2s3XRilfmLQW89EapP7BFI=; b=y1dq3LPwWrjDeBJMMlE6ycQCoYJ3BYz1qHsY11A6EnZ3eTE2FzY5Ac9ntuySIcsZ8H67wcoGjt5OQ1DPFcTVX2/IlD3mNLvrkPND1DZSynnm7bhLekPus0LqILkzzfzNgX3En+uNICv+3Q5lc1NGnm1WAvY5rvqopzWDgCS8GMQ= Received: from MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) by DM6PR10MB4169.namprd10.prod.outlook.com (2603:10b6:5:21b::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7202.37; Wed, 24 Jan 2024 06:22:37 +0000 Received: from MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::fde7:fb92:8ea1:a5ac]) by MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::fde7:fb92:8ea1:a5ac%4]) with mapi id 15.20.7202.031; Wed, 24 Jan 2024 06:22:37 +0000 Message-ID: <7e65f7f3-f17a-4a3b-ab72-9bff59b39a82@oracle.com> Date: Tue, 23 Jan 2024 22:22:36 -0800 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] gas: x86: ginsn: adjust ginsns for certain lea ops Content-Language: en-US To: Jan Beulich Cc: binutils@sourceware.org References: <20240123093855.3617792-1-indu.bhagat@oracle.com> <0156c3fa-61a0-4e93-ac20-b3fcc8f4a279@suse.com> From: Indu Bhagat In-Reply-To: <0156c3fa-61a0-4e93-ac20-b3fcc8f4a279@suse.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: MW4PR04CA0280.namprd04.prod.outlook.com (2603:10b6:303:89::15) To MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR1001MB2158:EE_|DM6PR10MB4169:EE_ X-MS-Office365-Filtering-Correlation-Id: 6d0489ca-076c-4580-2c0b-08dc1ca4dc4a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: b3ht1gjrhbZQvIswACs56WDmyh58CYJQe1semZPmnMAfdWcA6h/iwairNyZwtnmJWF08VNrypvwYmfMNT6G18HP9jCbrP773Iu20TFd/kQvtLYWfRE/UePFsAavI+yAm9AVriI3HZFAcIK1rLTa/IPJ3eu0jFK5VJpGIrwADK86C3+P8Grj1NfzSeKjpTN6zaC6y525Eae8P7aFDkAkSJbZHgZ/kNbbrDULG1SstQnOlaijCeJA9SrS3RNn4Pv0QnBEbJnCnThX/2kt+c3mR50eTc4AcIRexTTNO/TU/VHFPMEREJv+d7J0jWHFB/4ez2eZMA/5swYobw2ghrG+t9SgFfse6/I1xG0qmor3Ju80WY+6WplGbUeeq3BTEv7iC9cmf5+fsJmBjfAxkSgHYMzIaUSz3uxUeXpSYIlshlBd8JvPBB+6lNTBacbrNgTDYYdDqj3PsDcVVbPZciIkXW0n8HOuPcBAnMkX7d0LiVluNTuJ7eYtgze6jI5J3pnkiV2pOMyDRzPUT0mhyXOr7U0qJa40LQmEPls2eFBpCXuLbPYKBgSW6hN0KAgOSJG/6zP+NbpCJXcqt8RDumwP+XQBQGUD2jyw0KW1jRaAWW/8lLteFKiY7nAxEJ11R89+bjvnBMw756y6gtY8ig2C0BQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR1001MB2158.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(396003)(136003)(366004)(376002)(39860400002)(230922051799003)(451199024)(186009)(64100799003)(1800799012)(66476007)(86362001)(31696002)(66556008)(6916009)(316002)(36756003)(2616005)(6512007)(66946007)(41300700001)(53546011)(4326008)(44832011)(6506007)(5660300002)(8676002)(8936002)(38100700002)(2906002)(478600001)(31686004)(6486002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WjhMQTUyTjRNd2hRdEhvVVlIQTV3M2xRckxVdGZIZmc4WkRwQ2VXNU42ZWR3?= =?utf-8?B?L3BzVXZzUVovOW9EWUxUc2dCMXg5cWQrVlJlRXVhTU52Zi9lTjVRUHZMNGxZ?= =?utf-8?B?WVIwZUpVVUZaYnRJR3FWdHI2ZmlrTG9OOE5EZFdMOENWdlprZFpEbmdjajYx?= =?utf-8?B?N25HRVY2WWtZT2RlUkZHM040d2FWR2t5dENva2lSQWZKSnNZOFN4c05lM2s4?= =?utf-8?B?R2NGSVYxRmdTcnRLWkZHZmhSeWF1WU1reGFTeGhhVUhROGo5VlZtd3pRcVlR?= =?utf-8?B?WjkxUTcxZlhaTDlCTjJDRUE4ZHNadFYyUUNQYzdaTHV1S2RTeU9qZDIwd0xk?= =?utf-8?B?L0svbWhlUDlWVDF0dWd2UFhpdzdNT21vOXkvWnpCVGVPV3NqSlBGd1E0T1NF?= =?utf-8?B?K3Q3V3FIdVFOL1kyVzFoNjVad3F4dlhTTTQwWTF3SkRaOEFiMThxV295SXc5?= =?utf-8?B?Ym95UzJMMkNodlNOVkphKzVZL0FhRUxWd1ZOT0RiV2RCcWtXVDB2alNtQ0da?= =?utf-8?B?MG5SbHp4UTFoekI0c3ZkUGo5OTBIcmphMHJyM0xVdnNKY1VqeVpaRUZYcEIz?= =?utf-8?B?S0c0NG1oRzVJREJxVWZaZTZyYXIxb0dqOXFRVFRLbWFrRzZ1MkhUdzRoZnNO?= =?utf-8?B?SUhrUlpRRko3TmdUUVU5cXJzdHZwb0hEMDhRSkU0d3FDV0p6ZmhrOVlHQ1ZU?= =?utf-8?B?cEJlQ2Fud1pYQ3pvZTN0THpsbitqR1lqdjY1ekdjOWVnV2ZXczY2bDJld3Bq?= =?utf-8?B?cXN6R3k5MnMwWmtpVC9wejdGVmVCT1F6UXFpTitnZlM5QVQxRnp0NVc5bjdL?= =?utf-8?B?MlZTaGVhKzhGNTEyd0ZDdVQwVS92Z3dzSHJTM1lFa3FBWUUvSDRHaFo3TWll?= =?utf-8?B?Q3pNWmFKcEdNRml6QytJYjNaOFZiSjZNKzN5ZCtYY0I4ME9ZTVN6eW5NbENn?= =?utf-8?B?U1R3VWx2WmhBNndzL1kzdXRhOUdFc0N2TXNLSVZ5RnlQV3BFQTFodEdUdnBX?= =?utf-8?B?cGR2REVFVHdqaTJoblFZMHZSTDVmcGNPWmNOYTBuSzJmSDFqZjRWTkpMTEtG?= =?utf-8?B?YTZyNWNIaktYQmlSMTlpZlNSUzZQU2x6QzVIMDBwaXJZa2wrbm9mR1djWitx?= =?utf-8?B?d21YQXFmSWFCSkgrdmFIYjZmSy9waVNGOHcwbkhtemtUN2poRzlzbkdnQ2Fh?= =?utf-8?B?UVRKSGM0VXBqRW9Pb2tYR1ovdEorQUZJMDdwbmlJMXpPRW1nSll1aXEvczVD?= =?utf-8?B?bTEvZTczWFpMc1o1dEpjb0xLeG51NnVGOGcwKy93WVdPdU5oRG5OQUxmY1Rp?= =?utf-8?B?TDAwK29lSDRmRW5MVGxNcTJLYjRHaFIyTnc0Nm81WWFZeWZ2M3RwWWEwNHEx?= =?utf-8?B?Q29XTjl4N0xlN0xyQnJzZlRYazhuRXk2SC8xazVPYkZ2amNOME5LaEVldWZO?= =?utf-8?B?aFVKOWZwV3MyOVd3bE9GcUFRMUZveEJHNG15UUpsNUU5ejBxeUpJRTBHeFdu?= =?utf-8?B?cUFxdG9HQTJURCtqcjlBdi80NWdldm1IS1diaGQ0b0tJOUNHZG5RQW1oNHRV?= =?utf-8?B?RjcrOXMvMGtOejZCN3VOTzM1TksrZFJoTWhtdkh1ckVsRmZ5d2RWNzMyRzNX?= =?utf-8?B?SCtqNjJ0WjRuaWl5NEJ1SFNvMDZlelo5MUdWOWoxK2VlMmU0SWs0ZmpLN29P?= =?utf-8?B?WHNpTmh3MTBwTXdlS1RVY1NUZEZiZjFnbEIxUVpVck5BMVpDM2RaaE1TUFM2?= =?utf-8?B?NnpwSmduOEY4dnFsQ2N1M0VFenhIdUw3NXM2c0NQM24zTkhhZ1hwc2pkYi9C?= =?utf-8?B?SHZicjhOSGpnOE1ES2psSTJyZk10dENySTlyRUdzNW45aDYrQTZZZFNueWx3?= =?utf-8?B?U2p2NTBlMFZaRUFTTzRZQVo2SEdYNExrR2xTZ1hRaDZLdWJGWlJXa1owZ2pz?= =?utf-8?B?N0lQMFF1TkhiRitLUFFQMDlvbjhWWm44L2toV3lNTkpnR2VBQUVsWWtIbFI1?= =?utf-8?B?Umgwa0F4V3psVzN1bnJqWUV1NThyVHJKS3RuS1FOazFHbU9qYjNYcGRZWmdn?= =?utf-8?B?M2FUM1dYYlp3L3g1cXVFWVlTM0lRU2loUENPRjhpaXZEM3gwUS9IWG50L2cz?= =?utf-8?B?dHpMTlBaeUh3ZW5MY1lvQThSOFpYdHB2a0ZDRTY5aXZmalQzWlFsQ1J4Z1M5?= =?utf-8?Q?nHqRSqtiadix6y2lIVTM5wQ=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: WM3m1KGF8lfuE5UoymLldLJlDn3kVEjW8gzKkW2bl35MUvrTk2H5F129iy85cKFz0WlgJCW4aEe16VSEQ/lZjfLeBkmKTtO/x6mapZJB7dmB4vbzF0Tn0U5wwmYRdB9cSbjjJtRwJQ6yw3y+kMO8Fmtqv8lLWCuzN60dYVh/3Q/OY+h09rp3AtIR9sLu+jCYjI65/3GafLmekDwlI4BQNaGh0j1iBiJI13M5zXTkkNbUGBntWeHj0K6wlGZW9Z09bfh6gjwJf255WStItM6YriEulFnbnhZvH17BKMgpkFpGR2tMMQkBegeDxQbypXzvYTkvvKebfo9OraR5bWlhYz7GtLtC3rP3MeL5sDCDv9pcbbMAAj7joQ2kFFQEUsGSFvt+V34KLjHTvMJyM1940Jzr+i1HENQ/Hw3R7aR0nVx64cJX6clZOlJqbNNltAOU/ye8gm80Siw0SD2fzpcq0lcOWS6lHjS9GOEWfypmk4RzIDvLCL+i2qHTpjVBJfx8CuVoka14VfqjzTqsteVxQnBeEj56OUBqsO2HCgSGx3ng0lfIk94oZjZfnHmxQiISf89Gkjaqc8bppu7T6qjGZ38ovJjOkSiWNjAwCOA84lY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6d0489ca-076c-4580-2c0b-08dc1ca4dc4a X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jan 2024 06:22:37.8182 (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: Zt3hMLOEv9jPYSGetfgpEnZG0QHnPSP75AfP05RJXw3ACOQLS0HU67FDH4yQi37Z5UvjiKvHAI20nYHJ+LIEVg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB4169 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-01-24_02,2024-01-23_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 phishscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2401240045 X-Proofpoint-GUID: iwpkgGelCCZDMJdRt1sosB0y0dALtA9O X-Proofpoint-ORIG-GUID: iwpkgGelCCZDMJdRt1sosB0y0dALtA9O X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE 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 1/23/24 02:15, Jan Beulich wrote: > On 23.01.2024 10:38, Indu Bhagat wrote: >> @@ -5678,47 +5680,7 @@ x86_ginsn_lea (const symbolS *insn_end_sym) >> GINSN_SRC_IMM, 0xf /* arbitrary const. */, 0, >> GINSN_DST_REG, dst_reg, 0); >> } >> - else if (i.base_reg && !i.index_reg) >> - { >> - /* lea -0x2(%base),%dst. */ >> - base_reg = ginsn_dw2_regnum (i.base_reg); >> - dst_reg = ginsn_dw2_regnum (i.op[1].regs); >> - >> - if (i.disp_operands) >> - src_disp = i.op[0].disps->X_add_number; >> - >> - if (src_disp) >> - /* Generate an ADD ginsn. */ >> - ginsn = ginsn_new_add (insn_end_sym, true, >> - GINSN_SRC_REG, base_reg, 0, >> - GINSN_SRC_IMM, 0, src_disp, >> - GINSN_DST_REG, dst_reg, 0); >> - else >> - /* Generate a MOV ginsn. */ >> - ginsn = ginsn_new_mov (insn_end_sym, true, >> - GINSN_SRC_REG, base_reg, 0, >> - GINSN_DST_REG, dst_reg, 0); >> - } >> - else if (!i.base_reg && i.index_reg) >> - { >> - /* lea (,%index,imm), %dst. */ >> - /* TBD_GINSN_INFO_LOSS - There is no explicit ginsn multiply operation, >> - instead use GINSN_TYPE_OTHER. Also, note that info about displacement >> - is not carried forward either. But this is fine because >> - GINSN_TYPE_OTHER will cause SCFI pass to bail out any which way if >> - dest reg is interesting. */ >> - index_scale = i.log2_scale_factor; >> - index_reg = ginsn_dw2_regnum (i.index_reg); >> - dst_reg = ginsn_dw2_regnum (i.op[1].regs); >> - ginsn = ginsn_new_other (insn_end_sym, true, >> - GINSN_SRC_REG, index_reg, >> - GINSN_SRC_IMM, index_scale, >> - GINSN_DST_REG, dst_reg); >> - /* FIXME - It seems to make sense to represent a scale factor of 1 >> - correctly here (i.e. not as "other", but rather similar to the >> - base-without- index case above)? */ >> - } >> - else >> + else if (i.index_reg && i.base_reg) >> { >> /* lea disp(%base,%index,imm) %dst. */ >> /* TBD_GINSN_INFO_LOSS - Skip adding information about the disp and imm >> @@ -5732,6 +5694,50 @@ x86_ginsn_lea (const symbolS *insn_end_sym) >> GINSN_SRC_REG, index_reg, >> GINSN_DST_REG, dst_reg); >> } >> + else >> + { >> + /* lea disp(%base) %dst or lea disp(,%index,imm) %dst. */ >> + gas_assert ((i.base_reg && !i.index_reg) >> + || (!i.base_reg && i.index_reg)); >> + >> + index_scale = i.log2_scale_factor; >> + src1 = (i.base_reg) ? i.base_reg : i.index_reg; >> + src1_reg = ginsn_dw2_regnum (src1); >> + dst_reg = ginsn_dw2_regnum (i.op[1].regs); >> + /* It makes sense to represent a scale factor of 1 correctly here >> + (i.e., not using GINSN_TYPE_OTHER, but rather similar to the >> + base-without-index case). */ >> + if (!index_scale) >> + { >> + if (i.disp_operands) >> + src_disp = i.op[0].disps->X_add_number; >> + >> + if (src_disp) >> + /* Generate an ADD ginsn. */ >> + ginsn = ginsn_new_add (insn_end_sym, true, >> + GINSN_SRC_REG, src1_reg, 0, >> + GINSN_SRC_IMM, 0, src_disp, >> + GINSN_DST_REG, dst_reg, 0); >> + else >> + /* Generate a MOV ginsn. */ >> + ginsn = ginsn_new_mov (insn_end_sym, true, >> + GINSN_SRC_REG, src1_reg, 0, >> + GINSN_DST_REG, dst_reg, 0); > > You're still losing symbol information if "disp" involves one. Perhaps > worth a comment. > >> + } >> + /* TBD_GINSN_INFO_LOSS - There is no explicit ginsn multiply operation, >> + instead use GINSN_TYPE_OTHER. Also, note that info about displacement >> + is not carried forward either. But this is fine because >> + GINSN_TYPE_OTHER will cause SCFI pass to bail out any which way if >> + dest reg is interesting. */ > > This comment would better move ... > >> + else >> + { > > ... here. I also have to admit that I have trouble parsing the last sentence. > When trying to reword this, I realized that it is not correct to translate lea %symbol, %rN to a 'GINSN_TYPE_MOV fake_const %rN' (when the destination is REG_SP/REG_FP a fake_const may then appear in the synthesized CFI). Fixing that to generate GINSN_TYPE_OTHER then instead of GINSN_TYPE_MOV, led me to conclude that its time I take another of your review feedback: do not create ops now, only to say they are unnecessary later. I have now removed code paths creating GINSN_TYPE_OTHER from this function. We will let x86_ginsn_unhandled () code path create GINSN_TYPE_OTHER if necessary. Sending V2 shortly. Thanks >> + gas_assert (i.index_reg); >> + ginsn = ginsn_new_other (insn_end_sym, true, >> + GINSN_SRC_REG, src1_reg, >> + GINSN_SRC_IMM, index_scale, >> + GINSN_DST_REG, dst_reg); >> + } >> + } >> >> ginsn_set_where (ginsn); >> > > Since overall this is an improvement: Okay with the comment adjustments. >