From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2058.outbound.protection.outlook.com [40.107.20.58]) by sourceware.org (Postfix) with ESMTPS id EF30C3858D1E for ; Mon, 11 Apr 2022 13:52:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EF30C3858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vWhXiV5M/oTqIq2YUSgjcwm6AfMVKDJs6/LkAHLyN2k=; b=uLIMqxG0zxLNTA2WpVbk4KYekhNwamt7wpqeNwhDjbbjTi8BkOApQNYOABk3P1PazVUT+r+q2nhdacWiRFi40Q9hWLsc3ZEvPPe5NhVb0f4gEUiuIvjeqJpy9u7dTL++xPq8lJ0XkxkE83IkFuhYTt8NKf/h93l0yAjZLceCZo0= Received: from AS9PR06CA0110.eurprd06.prod.outlook.com (2603:10a6:20b:465::29) by PAXPR08MB6878.eurprd08.prod.outlook.com (2603:10a6:102:139::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Mon, 11 Apr 2022 13:52:35 +0000 Received: from AM5EUR03FT032.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:465:cafe::ee) by AS9PR06CA0110.outlook.office365.com (2603:10a6:20b:465::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29 via Frontend Transport; Mon, 11 Apr 2022 13:52:35 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=timeout (key query timeout) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT032.mail.protection.outlook.com (10.152.16.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.21 via Frontend Transport; Mon, 11 Apr 2022 13:52:33 +0000 Received: ("Tessian outbound 78191104f1b7:v118"); Mon, 11 Apr 2022 13:52:33 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 4452d147bf31bc89 X-CR-MTA-TID: 64aa7808 Received: from a3641c22efbd.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 6168AA9A-392E-4FE6-AC95-796797209FDA.1; Mon, 11 Apr 2022 13:52:26 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id a3641c22efbd.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 11 Apr 2022 13:52:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Iy3M7HfXASvI6NI5b+qwhzFaZMBnlSTqzyGs2g5owDYZEM8LanpyKUeQFM9iLhnpF7uQ4yjDLKZGF56eKLHZ7ZkovYWUW+NzC+KgD3nlhYRvjoY4HJnUbKV/9naASSEwTsXYQmXa2GcPtAckmtyplmF0sWzic5F8azYeIiIXqLI/hEModUGPkXlKJKYOKmXSygr+6Uc1qHK2TSAAUeW8hIXjhBf/6f4I6SV3ENZYHnJsgfnwvbeuqV268k7tpMaV8yVbTatQ15iyT3Bhz4Xgg9Ya9fjl86uQfV5sRF12x+x4JrJbK+iRrJp0mk5shId9JdwbAS9cXzQboeL+5yG/dA== 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=vWhXiV5M/oTqIq2YUSgjcwm6AfMVKDJs6/LkAHLyN2k=; b=BspGTsjvT3Fi/+9s62jc2ZeNJ+JdkeX/9x0m7TmAxg5ch3CTJino5u122EKbPlIiNM2U+2tHU3c6iAZPUJmhTaYYZxp1WIjWIgGu6HkllzzVnPshrgA0hGRYfxXUoLChnJi9+uAMUneqrluiqNsPY0kbiw8QgR6LQWpQnFw9Vha+jviU/u8039bFejiLo9AO0l1zwcJSoB/XpG1EhKpUI103DZwAO2aZtjExJd23XRVp9QULVL9hsdF7JZ5fQyhSviGpT1pE58yQx4X9dDCvdi5OsaufxRHPp1xvIHrx2h65zJfy+Xm7CTKwoP2gGSYX1YcVm3CXtwkyQgAZeW5wGg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vWhXiV5M/oTqIq2YUSgjcwm6AfMVKDJs6/LkAHLyN2k=; b=uLIMqxG0zxLNTA2WpVbk4KYekhNwamt7wpqeNwhDjbbjTi8BkOApQNYOABk3P1PazVUT+r+q2nhdacWiRFi40Q9hWLsc3ZEvPPe5NhVb0f4gEUiuIvjeqJpy9u7dTL++xPq8lJ0XkxkE83IkFuhYTt8NKf/h93l0yAjZLceCZo0= Received: from AS9PR06CA0728.eurprd06.prod.outlook.com (2603:10a6:20b:487::32) by DB6PR0801MB1877.eurprd08.prod.outlook.com (2603:10a6:4:72::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Mon, 11 Apr 2022 13:52:22 +0000 Received: from VE1EUR03FT044.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:487:cafe::8a) by AS9PR06CA0728.outlook.office365.com (2603:10a6:20b:487::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29 via Frontend Transport; Mon, 11 Apr 2022 13:52:22 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; Received: from nebula.arm.com (40.67.248.234) by VE1EUR03FT044.mail.protection.outlook.com (10.152.19.106) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5144.21 via Frontend Transport; Mon, 11 Apr 2022 13:52:22 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Mon, 11 Apr 2022 13:52:29 +0000 Received: from e124257 (10.34.101.64) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Mon, 11 Apr 2022 13:52:28 +0000 From: Andrea Corallo To: Jeff Johnston CC: Richard Earnshaw , Torbjorn SVENSSON , "newlib@sourceware.org" Subject: [PATCH V3] Aarch32/64: Support __FLT_EVAL_METHOD__ values other than 0, 1, 2 References: <7d0a81fb-4553-a895-1353-97a6af61e6e3@foss.arm.com> Date: Mon, 11 Apr 2022 15:52:20 +0200 In-Reply-To: (Jeff Johnston's message of "Fri, 8 Apr 2022 17:22:48 -0400") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-EOPAttributedMessage: 1 X-MS-Office365-Filtering-Correlation-Id: 38e4e031-c8a1-4bbf-3a6f-08da1bc287ad X-MS-TrafficTypeDiagnostic: DB6PR0801MB1877:EE_|AM5EUR03FT032:EE_|PAXPR08MB6878:EE_ X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: C881lXS88p8/Ba6xLohnruiHNL0WDjw5VQMIw83+gR8f+xha5pUXo8vogCEWOEpkZXEmo/U9ulGSTArEXjVCRtt4Hdke7UVTsQ9wiVlCSykJ6uDAvbSrkjq8ghYb/ZWw27tL3k8ZrvgtLfJ8etKsTUdaR1Pbaj0hLsFMlOprknEkaZhPwZj3YMkpuAtGALjquvY8cDztZdlEbqGxIhxawhM6kcVItvxK2tqMaeXrC406IN38uhes556JBX3RsJx+Kr4DLZcnZn/1tmEVI/Cc7ccbSNnuyhaf4xWSEJF9o2BPujp1PJRLwaZWUxQQB932Do/y8jmUlbLe9hJPNZ7SWgUJlYHDFDJqY/iq/iR7aIjKIpWsBpxv6A+uhnOE1Jx9jjIFQYQ8HArMLaWFH+4tOzYFQdacJcvXux4SbpRE/qwtpP27ZHvi3ZquCcz+zLpT9V6++pMruOkza1+GMMA4w9yhaoTOddYJErZ9yVnu+MyOIHEfmgk9WjC7SueW6X4GRwCWG7A7mZ0iDiP1ekCjXal8rzPNF8bV516qyF9Hy/F2pJUmYoyo8Irc9QWrmaUXmaPBSwnokSqvMjNJNGldWhKl7IAQjSZpFr6QxMt94PZQ1sFfenhhZSIFU0ENIgNfywht7Sr2n2T6D/PP5I49Yf024/MRz8DdP7iPc7n74shdBw+rQeTdEfVAtEKA78akpvGy9v7EUReYSxPXrBNFKg== X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230001)(4636009)(46966006)(40470700004)(36840700001)(8676002)(6916009)(4326008)(82310400005)(356005)(6666004)(81166007)(316002)(2906002)(70586007)(26005)(186003)(336012)(54906003)(70206006)(40460700003)(2616005)(426003)(83380400001)(44832011)(47076005)(508600001)(5660300002)(86362001)(36860700001)(36756003)(235185007)(33964004)(8936002)(36900700001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1877 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT032.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 2e4e7303-fa2e-4f78-d28b-08da1bc280d1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CiruXoj/7qHmlGaSoX1aOejl1UniVVKTJrZuk5Tsf7TCQBardynd4UXp2bQchP+wrCvD9O83LN9hXHYc3pGOOjXoqjF03VistyypVRZEwzzVUwRQ5ArEivuyeisRIpZfDuIh9fF0GV+0Quj/6A/2ZwlGfunHS7ZOoZskcLQKqMy5x0nu07VC3F1NhlzIG33vQsgV8QDn5mBD0NYb5kpIkefProeWvB/NCVoiOcTYYDn39CVDgfCE7It7WtUZ6HJ27/4x/3nz1uVyCJZwh/lI+wdvWA4uK653+UkEZBzVmf4OtBuplS/C/d8voVLcE8wRB8V7UwhRILDhkYtwKFM73oWjlGGtX8iJYb+SczZp+k9O28v9zjoX0xQe6yPwBOizJ8d83ixoVM5tZEGy8z2dQPp9SvX827AZuCPl635gaWoV5nsodaa9p26ceZLwlLhDnOIKZBKn1WiYJQiD/j6eaXqK8Mj+uGBpGuQmf+Xu3zI0X3NGrcL5Il+HDobO85vsQ0zZhyl7yIgtTsARXejU7Nx13v8LXzFWC+L2IUXk2Wymv/ALD6waPudsTLa667EC+kCf4ioTc7RtaXTV0a1pPeyP8RceKEqGpZS/LUQBi0OmVZxCeZS2jqpAkZAw3oiE+Rm/yNXiDc8y4dDJYi4tfOvwrjKHanGIVv7zbpc/Y24d+yyMeq/9aqS90UQJZL+f X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230001)(4636009)(36840700001)(46966006)(40470700004)(8936002)(83380400001)(26005)(44832011)(235185007)(82310400005)(47076005)(186003)(5660300002)(36756003)(40460700003)(2906002)(36860700001)(426003)(336012)(508600001)(2616005)(4326008)(6862004)(8676002)(86362001)(316002)(70586007)(70206006)(54906003)(33964004)(6666004)(81166007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2022 13:52:33.9644 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 38e4e031-c8a1-4bbf-3a6f-08da1bc287ad X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT032.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6878 X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Apr 2022 13:52:41 -0000 --=-=-= Content-Type: text/plain Jeff Johnston writes: >> On Fri, Apr 8, 2022 at 6:09 AM Richard Earnshaw wrote: >> >> I think the hunks in machine/ieeefp.h warrant a comment as to why we >> can't rely on __FLT_EVAL_METHOD__. Other than that it LGTM, but you'll >> need Corinna or Jeff to approve. > > R. > Please add the comment as suggested by Richard and it will be pushed.-- Jeff J. Hi all, please find attached the updated version of the patch implementing Richard's suggestion. Best Regards Andrea PS I've no write access to newlib's repo so feel free to push it if okay. --=-=-= Content-Type: text/plain; charset="utf-8" Content-Disposition: attachment; filename="0001-PATH-Aarch32-64-Support-__FLT_EVAL_METHOD__-values-o.patch" >From a70d1a11c53d6d6797c5df859dea5b1e584fa9ac Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Wed, 30 Mar 2022 15:40:59 +0200 Subject: [PATCH] [PATH] Aarch32/64: Support __FLT_EVAL_METHOD__ values other than 0, 1, 2 2022-03-30 Andrea Corallo * libc/include/machine/ieeefp.h (__FLOAT_TYPE, __DOUBLE_TYPE): New macros. * libc/include/math.h: Uses __DOUBLE_TYPE __FLOAT_TYPE to define double_t float_t if possible. --- newlib/libc/include/machine/ieeefp.h | 14 ++++++++++++++ newlib/libc/include/math.h | 9 +++++++++ 2 files changed, 23 insertions(+) diff --git a/newlib/libc/include/machine/ieeefp.h b/newlib/libc/include/machine/ieeefp.h index 4dc13828c..1e0680432 100644 --- a/newlib/libc/include/machine/ieeefp.h +++ b/newlib/libc/include/machine/ieeefp.h @@ -90,6 +90,13 @@ #ifndef __SOFTFP__ # define _SUPPORTS_ERREXCEPT #endif +/* As per ISO/IEC TS 18661 '__FLT_EVAL_METHOD__' will be defined to 16 + (if compiling with +fp16 support) so it can't be used by math.h to + define float_t and double_t. For values of '__FLT_EVAL_METHOD__' + other than 0, 1, 2 the definition of float_t and double_t is + implementation-defined. */ +#define __DOUBLE_TYPE double +#define __FLOAT_TYPE float #endif #if defined (__aarch64__) @@ -102,6 +109,13 @@ #ifdef __ARM_FP # define _SUPPORTS_ERREXCEPT #endif +/* As per ISO/IEC TS 18661 '__FLT_EVAL_METHOD__' will be defined to 16 + (if compiling with +fp16 support) so it can't be used by math.h to + define float_t and double_t. For values of '__FLT_EVAL_METHOD__' + other than 0, 1, 2 the definition of float_t and double_t is + implementation-defined. */ +#define __DOUBLE_TYPE double +#define __FLOAT_TYPE float #endif #ifdef __epiphany__ diff --git a/newlib/libc/include/math.h b/newlib/libc/include/math.h index ba1a8a17e..af5b5e653 100644 --- a/newlib/libc/include/math.h +++ b/newlib/libc/include/math.h @@ -158,6 +158,15 @@ extern int isnan (double); #else /* Implementation-defined. Assume float_t and double_t have been * defined previously for this configuration (e.g. config.h). */ + + /* If __DOUBLE_TYPE is defined (__FLOAT_TYPE is then supposed to be + defined as well) float_t and double_t definition is suggested by + an arch specific header. */ + #ifdef __DOUBLE_TYPE + typedef __DOUBLE_TYPE double_t; + typedef __FLOAT_TYPE float_t; + #endif + /* Assume config.h has provided these types. */ #endif #else /* Assume basic definitions. */ -- 2.25.1 --=-=-=--