From patchwork Tue Sep 19 12:56:23 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Szabolcs Nagy X-Patchwork-Id: 22943 Received: (qmail 22793 invoked by alias); 19 Sep 2017 12:56:33 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 22784 invoked by uid 89); 19 Sep 2017 12:56:32 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: EUR03-DB5-obe.outbound.protection.outlook.com Message-ID: <59C113F7.1030404@arm.com> Date: Tue, 19 Sep 2017 13:56:23 +0100 From: Szabolcs Nagy User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0 MIME-Version: 1.0 To: GNU C Library CC: nd@arm.com Subject: [PATCH 3/9 v2] Do not wrap expf and exp2f References: <59C1123F.9080003@arm.com> In-Reply-To: <59C1123F.9080003@arm.com> X-ClientProxiedBy: DB6PR06CA0012.eurprd06.prod.outlook.com (2603:10a6:6:1::25) To VI1PR0802MB2494.eurprd08.prod.outlook.com (2603:10a6:800:b6::22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0ae05b96-c7f6-4185-86a9-08d4ff5dd6c9 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(48565401081)(49563074)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:VI1PR0802MB2494; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0802MB2494; 3:BN7pVsNQ2gIgTsIQmn/UUNk2zlRTzMC9+ygDKA8IeNffUjv4xlXgQ5XibcaxSz/2M6AZa6XaeTBJE9mex2PgFHPwUCN0WW7Yvfd0HXO65XxwGbexzZYFVlLuO1Csx3Dqmdzqi8sfpYjokewY6CAIZhyOBHgs+GpQ7WiVA+RUF+8NDWmhdKzvnz+6VgGgCoB+ipJyF9+G/YiqWn8lUOs2CZyNaXRw6hI/Lv0qZvu3fFA77tg87oGa74REd3Ez/avR; 25:V1a7F1MOofwvyWyN/ew35T8vjuALpuuDv5q+f4IpZwfslj05a7UmmtV49dZaOpXpruE5o683HfOXaBMacEhEBTOKcApFubhSwXSbV06YbuRNgo5cLUGmoZzWE1Lkd/sqtFfNs9nYicsBkw2eDrUjKxux17DLyy5yB6Hk29RGgTFD2ADVlaQQVwl+9x1hZg19jgVfr/njAXDx6EY5d3Tg2dBd0TST7hj4pPgYXbIXuk8CSyPyEt5tfM/fYT+LfH+UNc25MojQE5Cn37AlEUOCSkvU6NYAXa5bW5I/CNKoYuGM2l0S192UPPTd9XqaaRleQqw/U4F/u/ofbrRKSdOLrA==; 31:dOXohLNChHrLXG9+rJaW5vGX/o4sS9mcVVxa53PxJYHRjvTnoM2uYB40xCe800HSknu8RIbhk2d/0stn9xHST8/ijbMrcHrR4rwKYZz5HlEv14QoE52JMA0I9/hXPQT/cUsVumQdxVG6qxSOlUw8Q2LwTgr6GI+lSxDy4NLnk+vs6c5FSfipjzDyBCAH+QNT+/gW95ZlPosuXzQs48NiPq5GXDllYQoDMQXSBfLdYEs= X-MS-TrafficTypeDiagnostic: VI1PR0802MB2494: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs.Nagy@arm.com; NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1; VI1PR0802MB2494; 20:hxzQZSeMWpIJzEnNHsEW9yzsxmfjDsNcYB8MdfzK4z0h+Pm01Lvp3jgTYK6jhTuBT662BVUeaJu/A7c/yr59j3WM8cVgmge931hdvC26q2/a6Cmms0Cc7MMkrrKfVsYh8tr3RuGqAKF5pgUwMMaZAKftBIKFNCWpOz883Z1ufDY=; 4:J+HjONEtwNaC0Mdi2XIfeMkfZRRNwf6/hFwtfgbrM8MAYO068ouL8yLTiqXdm8H4WArOg9pD5SWAV4UpLRO7YjPsrMbfWLwZh71APCBVqRGNsmI5ax4B4wWMT1fObw2GNWxkuKOHDklj44zUNtkA8H5AjbZvdo0J2azVu96FTyIn6FkC2UG5kdZ0qhu26fc83OIpEXTtLysU04BijGOYgg37ESC0oJ6ck1w4Wl0+GewiXXlDPVBRqde+ZEa6qbbVVo/bxpwv229Q0Ei++GIhU/MET4XWR/GQsEWkF3uZ5HM= X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(102415395)(6040450)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(10201501046)(100000703101)(100105400095)(6055026)(6041248)(20161123564025)(20161123555025)(20161123558100)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:VI1PR0802MB2494; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:VI1PR0802MB2494; X-Forefront-PRVS: 04359FAD81 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6009001)(6049001)(376002)(39860400002)(346002)(377424004)(199003)(189002)(72206003)(5660300001)(5890100001)(8676002)(68736007)(86362001)(21490400003)(77096006)(59896002)(106356001)(6486002)(6666003)(36756003)(80316001)(189998001)(7350300001)(87266999)(76176999)(65816999)(54356999)(81166006)(81156014)(50986999)(3846002)(101416001)(6116002)(53936002)(16586007)(305945005)(105586002)(16576012)(7736002)(2476003)(25786009)(2906002)(478600001)(84326002)(16526017)(83506001)(4610100001)(6916009)(316002)(568964002)(2950100002)(270700001)(64126003)(33656002)(66066001)(97736004)(58126008)(65956001)(65806001)(4326008); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0802MB2494; H:[10.2.206.69]; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0802MB2494; 23:sxR6wV3dFjyIxyI+D2tV21ki5oc+J7GR7bbK+wl?= =?us-ascii?Q?WX5khsIhhIQpyFPxjfiKTwiIbymkB3cgBhml8d9wcFLhq5HgqqzsABMnAiDr?= =?us-ascii?Q?+mbODzmY/+06Cxhpp/rrGrzuhUImVTI20YXuHW1qn12jima6LE4f9BrpUrKF?= =?us-ascii?Q?EspBouyhSzgejfnjfBxcCYmBLK5R4pefbCYJqmFAb+AoikcNu43zN/YOO1ko?= =?us-ascii?Q?+iL/NaP3+OJVI2j1SjpF9PIXvQPrBJ5GkKFd4sFQ2J9jfS+ghIaaIbxuhiwh?= =?us-ascii?Q?421KapC7Cwu2pgBEc2SNCRR0LMq213LNKVrjMH20kZqWXe4nkswPIKoflhni?= =?us-ascii?Q?5CH0a0Or7YnXFww686ImjXeG8lV2SZXVdEpNZg9yzbCyYSodrViLjP3DrSTM?= =?us-ascii?Q?zcRi6lUm3gfWsUuHqHWfoih2WkdK1+4NgJQrjWArFFvCz9eSgiDpeve/PvcZ?= =?us-ascii?Q?l+NPQWrfIfHer+pU69bVk0uOSQPg8sv0EulXqfJkJ5yhkMfQKHMHP3r/A9lu?= =?us-ascii?Q?JzAsTO9uqGOQbawXkIvMJjhh/Y/jxGPEgVWn1gXzUBWBFUjg8g4US6+RhGFI?= =?us-ascii?Q?zhNebzZ091hhCxDWq72gBdrANsMUpH5yE+7Amkm0kdQSqfx3rBKZosCT1PZp?= =?us-ascii?Q?kPytj8h180EVsRU/46oxGHkdHQLT53SgGDInjDFOgv5ZDRBScnb7fyrvvQ0Y?= =?us-ascii?Q?0X0A3AR1kbaNJs80+kA2DyKqBHvHl7JHLETYw57ZPP2/YoXVNolZfN2KHxf1?= =?us-ascii?Q?HFRbScVm4qULcDgvG9qnhRj6U3MijVKLcEDyd1WpXS/Wl8YRokdOyo3BHWBk?= =?us-ascii?Q?b9jpYzsajHmWH6JDBndPTEQ1BJiCybvBpnPFL0/cDEt6fePa7ydcIzm9Quc0?= =?us-ascii?Q?yc8JswcNulQP/QVgqckE7G1IuI30gfh6TJu6RIWDbF0nDUHlSzlXFPBny4+C?= =?us-ascii?Q?lSEREobo/vEF5D6mQbypQyP9EJaMW5JnoRKOR9cpGwV5QRx6rf3H+L79kv1V?= =?us-ascii?Q?Dn4a8Sni17J8goPeVFK6SiQ0tTZY6wrTDWY+fbdCoqYfoAuoTI7wr2TguGXY?= =?us-ascii?Q?5Yg3EV0Xppqb/4DNX4bDbTnZAPiiPb4GTg95MzkDnDSNCGNYX3iXR/3Gc87X?= =?us-ascii?Q?C0B4s8yascTdIGVzATwPXdSooBSUsvfYV7yWUun9HYkAPEtXxBRjlnefCBWA?= =?us-ascii?Q?EQZAMIwmqo7nHTsIjbilFbkxuIrgqWCSrBCn5WzSzXceBdmIjf//irMs4M+W?= =?us-ascii?Q?Uu0IXWgaLVVaPjG9vnDNzMAHLnlyuIh1qHY1uMtfkjaSmKAueFxqh8r2y/jP?= =?us-ascii?Q?Zi8cjeDuCUT6ldYL9OvNtxFlEQxSWVd1SFMbhUxoaVVTkyj+pQYoqFWgxY7V?= =?us-ascii?Q?/e2OqkahzZZwJThgO3E2kJtsqZDAOAhAogQHiuYio12XCk/ZHv/gEeq3twH5?= =?us-ascii?Q?/5WTnWavI8zNgH0S54tS4owStbhKlTSVVwf+K7hvR8iskF9wBDtcjsym1hmk?= =?us-ascii?Q?d3Ig/IZd4aTaL8g=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0802MB2494; 6:7DskRqcHDxca1BAfQ/qxUFH103yiKvMl3emdP+SmnpKxj0Fg1PdCS9KuO/mEZ8sEguBgWUUlRNIfgeIqMZQKaKhDNpYVIIwYshIpPjOVCIbZGwzaQdlX1BGSHobzjfghZaZYJ320G5YD/E5Epjf9MZ3K2UxUdsvVjJA8pirTjo1UW4JWzH2uvro0p1fU+HjPk8h1tevVjr8ZAv6aCtNNHkWrVe7+slo7Zh0qMhnqJumCIKVtUePhP1fCACXcnxAaNXj9jT12dkrJ+QBW09ZX4FmwquvvlI3GsSOyNiuKGowhklep48Ci6RaA6SITrfzxZpVJx9cPx3UzNWsVk+J6jA==; 5:w4ggKz6jIPAsEnFLE7rxfZ3n+eDWDgYkJz9sBm8Oz9pW8I8tnf4w1XNbBqOb0MUP1C6zGCWoWAyTNHDaNdH0B6bDS6NI581/93Uw1tkCjRJCMwuXBU8t4qGB7xM6rpFcMFLRtQI0FrtD5srEsL4Seg==; 24:h0faWY9f1cWK8Px7aU9aD/qiTVxx72kNciU981TPVV9nyYfmveDwwHynqvOGpwPbQEh6+R2fVXXwv985PNa9ZutdxWlgObM9JJWERyU9nII=; 7:2cdWs8mZkNbzg4imoRGHyxIpvA2ysIw4nMFhyVuTeYSb2LuYzTePlsN9H+RRvi00Rs5pQeXEopKu7L7q3f4Lc9/z1zUqubzcnvvusgDT0mrmA9nZO9g5kdvQdKTiEhOGguQGi3YSP7nBrIz2qmC5SjG54KR56OI0gopRX/W60UTWetir8qWOMzxC7bf9ue9spWM7OtXdESqHczY4Fl/msgO6txR5ih2qwCH2ORhbtTc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2017 12:56:26.2749 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2494 The new generic expf and exp2f code don't need wrappers any more, they set errno inline, so only use the wrappers on targets that need it. (The top level wrapper code is included into sysdeps dirs where the wrapper is needed and empty w_exp*f.c is used to suppress the wrapper). A powerpc64 expf implementation includes the expf c code directly which needed some changes. v2: - Fix sysdeps/powerpc64/fpu/multiarch/e_expf-ppc64.c - Use "sysdeps/../math/" hack in sysdeps/*/w_expf.c - Add sysdeps/m68k/m680x0/fpu/w_exp2f.c 2017-09-19 Szabolcs Nagy * sysdeps/ieee754/flt-32/e_exp2f.c (__exp2f): Define without wrapper. * sysdeps/ieee754/flt-32/e_expf.c (__expf): Likewise * sysdeps/ieee754/flt-32/w_exp2f.c: New file. * sysdeps/ieee754/flt-32/w_expf.c: New file. * sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-ppc64.c: Update for the new expf code. * sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c: New file. * sysdeps/m68k/m680x0/fpu/w_exp2f.c: New file. * sysdeps/m68k/m680x0/fpu/w_expf.c: New file. * sysdeps/i386/fpu/w_exp2f.c: New file. * sysdeps/i386/fpu/w_expf.c: New file. * sysdeps/i386/i686/fpu/multiarch/w_expf.c: New file. * sysdeps/x86_64/fpu/w_expf.c: New file. diff --git a/sysdeps/i386/fpu/w_exp2f.c b/sysdeps/i386/fpu/w_exp2f.c new file mode 100644 index 0000000000..583065d12a --- /dev/null +++ b/sysdeps/i386/fpu/w_exp2f.c @@ -0,0 +1 @@ +#include diff --git a/sysdeps/i386/fpu/w_expf.c b/sysdeps/i386/fpu/w_expf.c new file mode 100644 index 0000000000..b5fe164520 --- /dev/null +++ b/sysdeps/i386/fpu/w_expf.c @@ -0,0 +1 @@ +#include diff --git a/sysdeps/i386/i686/fpu/multiarch/w_expf.c b/sysdeps/i386/i686/fpu/multiarch/w_expf.c new file mode 100644 index 0000000000..b5fe164520 --- /dev/null +++ b/sysdeps/i386/i686/fpu/multiarch/w_expf.c @@ -0,0 +1 @@ +#include diff --git a/sysdeps/ieee754/flt-32/e_exp2f.c b/sysdeps/ieee754/flt-32/e_exp2f.c index be53e5c699..7a3c5fdcff 100644 --- a/sysdeps/ieee754/flt-32/e_exp2f.c +++ b/sysdeps/ieee754/flt-32/e_exp2f.c @@ -18,6 +18,7 @@ #include #include +#include #include "math_config.h" /* @@ -42,7 +43,7 @@ top12 (float x) } float -__ieee754_exp2f (float x) +__exp2f (float x) { uint32_t abstop; uint64_t ki, t; @@ -85,4 +86,6 @@ __ieee754_exp2f (float x) y = y * s; return (float) y; } -strong_alias (__ieee754_exp2f, __exp2f_finite) +strong_alias (__exp2f, __ieee754_exp2f) +strong_alias (__exp2f, __exp2f_finite) +versioned_symbol (libm, __exp2f, exp2f, GLIBC_2_27); diff --git a/sysdeps/ieee754/flt-32/e_expf.c b/sysdeps/ieee754/flt-32/e_expf.c index b8244a82cf..8a38c2a0c6 100644 --- a/sysdeps/ieee754/flt-32/e_expf.c +++ b/sysdeps/ieee754/flt-32/e_expf.c @@ -18,6 +18,7 @@ #include #include +#include #include "math_config.h" /* @@ -42,7 +43,7 @@ top12 (float x) } float -__ieee754_expf (float x) +__expf (float x) { uint32_t abstop; uint64_t ki, t; @@ -99,4 +100,7 @@ __ieee754_expf (float x) y = y * s; return (float) y; } -strong_alias (__ieee754_expf, __expf_finite) +hidden_def (__expf) +strong_alias (__expf, __ieee754_expf) +strong_alias (__expf, __expf_finite) +versioned_symbol (libm, __expf, expf, GLIBC_2_27); diff --git a/sysdeps/ieee754/flt-32/w_exp2f.c b/sysdeps/ieee754/flt-32/w_exp2f.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/ieee754/flt-32/w_exp2f.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ieee754/flt-32/w_expf.c b/sysdeps/ieee754/flt-32/w_expf.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/ieee754/flt-32/w_expf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/m68k/m680x0/fpu/w_exp2f.c b/sysdeps/m68k/m680x0/fpu/w_exp2f.c new file mode 100644 index 0000000000..583065d12a --- /dev/null +++ b/sysdeps/m68k/m680x0/fpu/w_exp2f.c @@ -0,0 +1 @@ +#include diff --git a/sysdeps/m68k/m680x0/fpu/w_expf.c b/sysdeps/m68k/m680x0/fpu/w_expf.c new file mode 100644 index 0000000000..b5fe164520 --- /dev/null +++ b/sysdeps/m68k/m680x0/fpu/w_expf.c @@ -0,0 +1 @@ +#include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-ppc64.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-ppc64.c index b236290ea2..ee5667c0d5 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-ppc64.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-ppc64.c @@ -16,9 +16,16 @@ License along with the GNU C Library; if not, see . */ +#include #undef strong_alias #define strong_alias(a, b) +#undef hidden_def +#define hidden_def(a) +#undef libm_hidden_proto +#define libm_hidden_proto(a) +#undef versioned_symbol +#define versioned_symbol(a, b, c, d) -#define __ieee754_expf __ieee754_expf_ppc64 +#define __expf __ieee754_expf_ppc64 #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c new file mode 100644 index 0000000000..b5fe164520 --- /dev/null +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c @@ -0,0 +1 @@ +#include diff --git a/sysdeps/x86_64/fpu/w_expf.c b/sysdeps/x86_64/fpu/w_expf.c new file mode 100644 index 0000000000..b5fe164520 --- /dev/null +++ b/sysdeps/x86_64/fpu/w_expf.c @@ -0,0 +1 @@ +#include