Mercurial > illumos > illumos-gate
changeset 13639:4c26102b6754
2409 libc needs more gcc 4 support on 32-bit SPARC
Reviewed by: Jason King <jason.brian.king@gmail.com>
Reviewed by: Richard Elling <richard.elling@richardelling.com>
Reviewed by: Igor Kozhukhov <ikozhukhov@gmail.com>
Reviewed by: Dan McDonald <danmcd@nexenta.com>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Approved by: Albert Lee <trisk@nexenta.com>
author | Richard Lowe <richlowe@richlowe.net> |
---|---|
date | Tue, 21 Jun 2011 18:04:33 -0700 |
parents | 8dacb0cc3292 |
children | 2cb107f54874 |
files | usr/src/lib/libc/port/fp/floatundidf.c usr/src/lib/libc/port/fp/floatundisf.c usr/src/lib/libc/port/mapfile-vers usr/src/lib/libc/sparc/Makefile.com |
diffstat | 4 files changed, 98 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/lib/libc/port/fp/floatundidf.c Tue Jun 21 18:04:33 2011 -0700 @@ -0,0 +1,47 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License, Version 1.0 only + * (the "License"). You may not use this file except in compliance + * with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#include "quadint.h" + +#pragma weak __floatundidf = ___floatundidf + +/* + * Convert an unsigned longlong_t to a double-precision floating point value. + */ +double +___floatundidf(u_longlong_t a) +{ + union uu aa; + double d; + + aa.uq = a; + d = aa.ul[H]; + d *= (1 << HALF_BITS); + d *= (1 << HALF_BITS); + d += aa.ul[L]; + + return (d); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/lib/libc/port/fp/floatundisf.c Tue Jun 21 18:04:33 2011 -0700 @@ -0,0 +1,47 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License, Version 1.0 only + * (the "License"). You may not use this file except in compliance + * with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#include "quadint.h" + +#pragma weak __floatundisf = ___floatundisf + +/* + * Convert an unsigned longlong_t to a single-precision floating point value. + */ +float +___floatundisf(u_longlong_t a) +{ + union uu aa; + double d; + + aa.uq = a; + d = aa.ul[H]; + d *= (1 << HALF_BITS); + d *= (1 << HALF_BITS); + d += aa.ul[L]; + + return ((float)d); +}