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 DA2ED38FC733 for ; Wed, 7 Dec 2022 19:52:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org DA2ED38FC733 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2B7GAsqU010146 for ; Wed, 7 Dec 2022 19:52:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2022-7-12; bh=L6s5/md7vipeZ0ldSSbjn+2v+Uui5S8EbxbrFgpzEu0=; b=1nJfFxQYE7m9JhBcGx2w9aQLUXyTqc6ilCvTekAoU1ujEHNayGSLZIxQTz2AuM4uVem9 zzsYlnJCLwbTGhelwEIak4AxnbxRH2jQViNGHRne5VADJGMPvzmSqlFJD0YsLxe5YrcZ 76/0C/i6FO8BRfLl/5MVDI9d3o3gTW+4qanfmY8r3yASrhiM1aGYnwgJRFG8NRDg4Is7 uwHUTUkIqzbwlDXqRRWQoYxj/7jEcpVlKPSpiFYvt/TX97zxlK5v9ko6My5mH/1wuEVp xSwrVZJXnCVz/vPckSIePWOUPjUp9F9kDoB2H4I/B0L4jkiZDzornngiU5qMN/oNLh8k ng== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3maujkh6e9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 07 Dec 2022 19:52:38 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2B7IwrUB033796 for ; Wed, 7 Dec 2022 19:52:37 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2102.outbound.protection.outlook.com [104.47.58.102]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3maa7x4y4n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 07 Dec 2022 19:52:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XFMOM11kAjGBPmPGf3RzvFHSTWAloXYqnfRaggd7iNhdsxytV3N59ly92hShJIgq8hYlp++n70j+BeQ6A1HAJbo5PNQEIEyLI6Fxz1nvgx3/T8cybHtu6IvvM29ijaoRlEsLwETeliUKSQldgkeh1zRZZzHPkUJzTg7FXEkXfYCkc4ArpANfYoez7c68L73V5dxa3nKNEVxP8gpjE1sYbsg5GLDv7ZJV3FwIqs/srppTGikeisg/6dm8G8NLvO5sIN87WsP0tr7fWBVzMiY7hp9U2Rswf+rXvSKhjrD7212MGcXnWWESuNsIVoQO3itKN88lLUc/d1xwZnkdSFqwJQ== 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=L6s5/md7vipeZ0ldSSbjn+2v+Uui5S8EbxbrFgpzEu0=; b=eBVC9UsP4j2UAhJUr3z17hAqOqnZ0Tw0Dk7PbnfZUA0b6E0L9FeOjYX9jB7pZovvziMHGP44Qw9Vr+o/LdTfg8vvwe9Zjfi5s9nuoaGST3WO6fPcz0ssQGMaVAb3MknAy9B7VpvveCuYgXszV0mEC+4+O5p+i12kJSp3f/XgQMV0mlH3tFQkXOslDkxk4s+zZqPQtc75zwGZVJv7LhharXOM0Cvbqv8pNT6B1hmKBs/wHZraxvDR+BY/sqxxS3WRE73aupslF2iKB8tdIO1h3XJYqHN7AQCFCjo8RFFByIfUwYZUVZTJbS/bvZnGAPuqd0VvUjBksmd7CnUQE4BmVw== 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=L6s5/md7vipeZ0ldSSbjn+2v+Uui5S8EbxbrFgpzEu0=; b=y6tFcWG5mBPPYjUf7wmrpeF/hmALQanPzVgf1GDjtqHeBI4Od/Ka3SZUQqHc4Fe1+YbFSraz3kUP6CVUQ0nMoJX+xXtNZmtx0owNTdw8A0lxKV5KKuSHCu9dN9IktYVVhv9GEScbYC17NYPGReDOgS2V41///bGcnoRbVB5Q8sY= Received: from MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) by BN0PR10MB5125.namprd10.prod.outlook.com (2603:10b6:408:12e::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.14; Wed, 7 Dec 2022 19:52:35 +0000 Received: from MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::ee70:1952:4416:1bdc]) by MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::ee70:1952:4416:1bdc%5]) with mapi id 15.20.5880.014; Wed, 7 Dec 2022 19:52:35 +0000 From: Indu Bhagat To: binutils@sourceware.org Cc: weimin.pan@oracle.com, Indu Bhagat Subject: [PATCH 3/6] sframe: gas: libsframe: define constants and remove magic numbers Date: Wed, 7 Dec 2022 11:52:19 -0800 Message-Id: <20221207195222.1182788-4-indu.bhagat@oracle.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221207195222.1182788-1-indu.bhagat@oracle.com> References: <20221207195222.1182788-1-indu.bhagat@oracle.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: MW2PR2101CA0001.namprd21.prod.outlook.com (2603:10b6:302:1::14) To MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR1001MB2158:EE_|BN0PR10MB5125:EE_ X-MS-Office365-Filtering-Correlation-Id: 1c75a280-464e-449e-8fb2-08dad88c962e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NIsZLoZkI6SHZJ/+5pXvW0MVTOAp+y6QTyGl9WqQFvecnkj3zzSYj/RUgCaXAaxLkkUSxzyht46hAcUS3+5VUZOzc+OTHP9F9WBQd/U+4Ql20kLCrceX/pG423QFUIsO6ChtO8/aNO3b6dh+YLGd0kn+jJLHtOY4Azq3XqF+4X59JbRaSHAz168pS5UecwjzXcm+hwNU6Y+QnPgDCQgtiOo2rso8RQ0ACCsf6YBmLmJFabu3V8ob43HB3/cjZV5cbDbzg3EGhnVc5JN9xQ22Rg9PZ9indxxi3imBU0RTfAfPs7KZ6aXLa+NxPAvX0U5UViW2tiFxGFgIlxwaQ4ObE0M4JaLNKV41aoJ7B92RSizAkac/KZn7j2kovKZmyKcI9h4pafTsdC2PAPiN9LrhcK3PLDinnGxgnjKGVG5/ivBbtHjE36tkx2/OLrp3gMOw+XgvmkgsPniRPY6Q3B4UDWqldpUWw9FT3WdG4c1N7Maf3dN2TtTs4o7wpLaHsGqswWVL8ieA/auFjw31pqZ0TwxNp6X0gllbIjinUg7QQ4dEY7AfMRSKTsB/yDmOC19zdHuG+D7O+N7SoFR7uw2Ap1R0U9ohF8LOO3VyeW//5ljuiHmWlgpMgepJwT2cEK5tuItzbw2zmtqnvO8cBeeGhA== 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:(13230022)(376002)(396003)(136003)(366004)(39860400002)(346002)(451199015)(83380400001)(38100700002)(8936002)(4326008)(66946007)(66476007)(6916009)(86362001)(41300700001)(44832011)(2906002)(66556008)(8676002)(478600001)(6666004)(5660300002)(6506007)(186003)(6512007)(107886003)(316002)(2616005)(6486002)(1076003)(36756003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?istoCqvYVhxJ7vtnpDnh4sLxjJ3tTKcxeT/fPNreG5ar5/gIjIHXDJMRRYt5?= =?us-ascii?Q?5p+PRnKiouqNWl6NsHk7MZFvugt5rGCAO9F2JDyxapXZ0Sx+zu2FQBOKWlcl?= =?us-ascii?Q?hCijfH9l0WUqGQkLg9hxYyMH5ROGupyzxFbfmiZF3cmC4h0zqBpZq61sLrwf?= =?us-ascii?Q?RHNtaGNB2/K86ygpgGJNH6j2rCPNfB5sy8eFt0u/ULxgVRcpDz1X5ZLqsOOW?= =?us-ascii?Q?ReMnE68mhn2OOsHbqgWCxPLWvyR2x8WcY4xW4Vx0xtZ73ktuC/wIfaZNbOyH?= =?us-ascii?Q?gRLPUxI19JtRM34uRc7OPaLIcYApKjh1KrOAR35ixPNjyd1KoS9QE41CCOG9?= =?us-ascii?Q?H0cbVFdjQd1vbIl1GLHYouiz51DUk19LQ2q2a5DnNgoycFOdc/6KL7Bv/VXk?= =?us-ascii?Q?mCyh0LQ+S+mlCrtr2gCnzmFUNjtLusItoFrlL6c8RqJv/G+wQV40KxdhIxgi?= =?us-ascii?Q?Jbfi6CMsoIVIBzO2z3UfU5D3NpoyXALRieuurFWoqXdlYSVp7GaYSHe0uNOO?= =?us-ascii?Q?CcDCIglhtqYyXsD2b7HwHxmdtT1Dz9lfpRUuUif21z585U9axhtfxtd2LhAM?= =?us-ascii?Q?/1nrKE2Z42Hxzix8CdCjuY7XXf6+ZjSDKf1K0LrdzI/XC7RsoEgPo5GQMQGY?= =?us-ascii?Q?aF4jnBgJWhWQY9DL1nEDsMKSNUbbpiGselEImj92tfDhIFfO42tglZF8E9Xu?= =?us-ascii?Q?k4OXoLtTmG7gMwTf/EixU7likxiVM6tJYJNL2+qSmsjtDOH6VL2htHguIHZn?= =?us-ascii?Q?X7AfsXWQgTeLnxfwyBTPQ1uknnUMWmL9w3XgpiOVbg7DYgAO5fmYbhWYXBXU?= =?us-ascii?Q?fBgsJkYPRY44kmjdzQdW+2Mx7b6plvu6qOTu2scx2SWPlx2AhZ7ZitruKZBB?= =?us-ascii?Q?Gcc3dHUDXLB1vMI8e0DwgtGdjFk4r3WYsRBUOK+HJmystLLlIRL9UejinM87?= =?us-ascii?Q?R0bUr3o/LlicUGZoN9l1llEhMfPNOsWjW64OpurnD/nvmAi8JUMVGQ9XIMCu?= =?us-ascii?Q?H7eDiOo55bNzC0Fu7G0NeBrSf/rKDrHhvmT8j9w107o/aZbTpw2c9CDd5YNv?= =?us-ascii?Q?9+dbFmoXv8rfM9uxNKoKEur9o1mcwOhnU9EcO9CgajtQj9oZHweCWcl5lB6z?= =?us-ascii?Q?rnCDVihvh1MYX6wJmsTfFbetietIvDPgkQZ1793mQZExuF0jUiS4HvWpt6ZP?= =?us-ascii?Q?x+YsH3I0bUJIzYRGKHtvBQ1LAP53RxetA5ut/1JyMmoMesHhNqCvzeuyYHWm?= =?us-ascii?Q?QuDTuDQYsLxUS+aPsS8ibASXlHaROliji959K0EJ6yy6ibQe89DKGINMLw7G?= =?us-ascii?Q?bbTNkLu6v5SwRPMQD9NN7ZSbSPaiTFOZMHH2xfSptHlysVJHrke0pa1R5IvU?= =?us-ascii?Q?Qe849odzWxvTDJ7AyU41lNNsqXqtCI14T5uueTaTjx6KrSSa0BxwS1q0RfTH?= =?us-ascii?Q?ph5DxPq4B9Zh0zy1nx/A8lgP3zR7jfyxjVFcnLLDSeIvQt9MCkYJXYhzCx/t?= =?us-ascii?Q?nOk3szdsAL60g5j2EwO2pRNg0nHSF9qA4u1Sk3Nkc6PLpnvEJo1S9ow/Eykm?= =?us-ascii?Q?ro4VW69kf+Ru2eOiSdabl1GnJtcJiQi1BGx8mXQJRZNxViYmHCFM2GS8CSwk?= =?us-ascii?Q?2+Qz8Ib1QSDFsAgMGSiV9Nw=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1c75a280-464e-449e-8fb2-08dad88c962e X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2022 19:52:35.4251 (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: FLH+nK4UYLg4+amAgzJJDBags2DnyOFzoUEJcaq0WMsosiNd++Do2MIihSL3c12yIVH7zrvOStKQo6dznuP2OA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR10MB5125 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-07_09,2022-12-07_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 spamscore=0 adultscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2212070167 X-Proofpoint-ORIG-GUID: qQsLZs3BSelgjzWdw_m04k5EBhCoOTe5 X-Proofpoint-GUID: qQsLZs3BSelgjzWdw_m04k5EBhCoOTe5 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_DNSWL_LOW,RCVD_IN_MSPIKE_H2,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: Define constants in sframe.h for the various limits associated with the range of offsets that can be encoded in the start address of an SFrame FRE. E.g., sframe_frame_row_entry_addr1 is used when start address offset can be encoded as 1-byte unsigned value. Update the code in gas to use these defined constants as it checks for these limits, and remove the usage of magic numbers. ChangeLog: * gas/sframe-opt.c (sframe_estimate_size_before_relax): (sframe_convert_frag): Do not use magic numbers. * libsframe/sframe.c (sframe_calc_fre_type): Likewise. include/ChangeLog: * sframe.h (SFRAME_FRE_TYPE_ADDR1_LIMIT): New constant. (SFRAME_FRE_TYPE_ADDR2_LIMIT): Likewise. (SFRAME_FRE_TYPE_ADDR4_LIMIT): Likewise. --- gas/sframe-opt.c | 12 ++++++------ include/sframe.h | 15 +++++++++++++++ libsframe/sframe.c | 6 +++--- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/gas/sframe-opt.c b/gas/sframe-opt.c index c17fd6b8332..6901aa82a77 100644 --- a/gas/sframe-opt.c +++ b/gas/sframe-opt.c @@ -53,9 +53,9 @@ sframe_estimate_size_before_relax (fragS *frag) widthS = exp->X_op_symbol; width = resolve_symbol_value (widthS); - if (width < 0x100) + if (width < SFRAME_FRE_TYPE_ADDR1_LIMIT) ret = 1; - else if (width < 0x10000) + else if (width < SFRAME_FRE_TYPE_ADDR2_LIMIT) ret = 2; else ret = 4; @@ -109,9 +109,9 @@ sframe_convert_frag (fragS *frag) { fsizeS = frag->fr_symbol; fsize = resolve_symbol_value (fsizeS); - if (fsize < 0x100) + if (fsize < SFRAME_FRE_TYPE_ADDR1_LIMIT) func_info = SFRAME_FRE_TYPE_ADDR1; - else if (fsize < 0x10000) + else if (fsize < SFRAME_FRE_TYPE_ADDR2_LIMIT) func_info = SFRAME_FRE_TYPE_ADDR2; else func_info = SFRAME_FRE_TYPE_ADDR4; @@ -133,11 +133,11 @@ sframe_convert_frag (fragS *frag) switch (frag->fr_subtype & 7) { case 1: - gas_assert (fsize < 0x100); + gas_assert (fsize < SFRAME_FRE_TYPE_ADDR1_LIMIT); frag->fr_literal[frag->fr_fix] = diff; break; case 2: - gas_assert (fsize < 0x10000); + gas_assert (fsize < SFRAME_FRE_TYPE_ADDR2_LIMIT); md_number_to_chars (frag->fr_literal + frag->fr_fix, diff, 2); break; case 4: diff --git a/include/sframe.h b/include/sframe.h index ba557b7bf7a..85d1e54520d 100644 --- a/include/sframe.h +++ b/include/sframe.h @@ -272,6 +272,7 @@ typedef struct sframe_fre_info fi */ +/* Used when SFRAME_FRE_TYPE_ADDR1 is specified as FRE type. */ typedef struct sframe_frame_row_entry_addr1 { /* Start address of the frame row entry. Encoded as an 1-byte unsigned @@ -280,6 +281,11 @@ typedef struct sframe_frame_row_entry_addr1 sframe_fre_info sfre_info; } ATTRIBUTE_PACKED sframe_frame_row_entry_addr1; +/* Upper limit of start address in sframe_frame_row_entry_addr1 + is 0x100 (not inclusive). */ +#define SFRAME_FRE_TYPE_ADDR1_LIMIT ((SFRAME_FRE_TYPE_ADDR1+1)*8) + +/* Used when SFRAME_FRE_TYPE_ADDR2 is specified as FRE type. */ typedef struct sframe_frame_row_entry_addr2 { /* Start address of the frame row entry. Encoded as an 2-byte unsigned @@ -288,6 +294,11 @@ typedef struct sframe_frame_row_entry_addr2 sframe_fre_info sfre_info; } ATTRIBUTE_PACKED sframe_frame_row_entry_addr2; +/* Upper limit of start address in sframe_frame_row_entry_addr2 + is 0x10000 (not inclusive). */ +#define SFRAME_FRE_TYPE_ADDR2_LIMIT ((SFRAME_FRE_TYPE_ADDR2*2)*8) + +/* Used when SFRAME_FRE_TYPE_ADDR4 is specified as FRE type. */ typedef struct sframe_frame_row_entry_addr4 { /* Start address of the frame row entry. Encoded as a 4-byte unsigned @@ -296,6 +307,10 @@ typedef struct sframe_frame_row_entry_addr4 sframe_fre_info sfre_info; } ATTRIBUTE_PACKED sframe_frame_row_entry_addr4; +/* Upper limit of start address in sframe_frame_row_entry_addr2 + is 0x100000000 (not inclusive). */ +#define SFRAME_FRE_TYPE_ADDR4_LIMIT ((SFRAME_FRE_TYPE_ADDR4*2)*8) + #ifdef __cplusplus } #endif diff --git a/libsframe/sframe.c b/libsframe/sframe.c index 6e0eb7b6511..64fa9078d62 100644 --- a/libsframe/sframe.c +++ b/libsframe/sframe.c @@ -572,11 +572,11 @@ unsigned int sframe_calc_fre_type (unsigned int func_size) { unsigned int fre_type = 0; - if (func_size <= 0xff) + if (func_size < SFRAME_FRE_TYPE_ADDR1_LIMIT) fre_type = SFRAME_FRE_TYPE_ADDR1; - else if (func_size <= 0xffff) + else if (func_size < SFRAME_FRE_TYPE_ADDR2_LIMIT) fre_type = SFRAME_FRE_TYPE_ADDR2; - else if (func_size <= 0xffffffff) + else if (func_size < SFRAME_FRE_TYPE_ADDR4_LIMIT) fre_type = SFRAME_FRE_TYPE_ADDR4; return fre_type; } -- 2.37.2