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);
+}
--- a/usr/src/lib/libc/port/mapfile-vers	Tue Jun 21 10:12:15 2011 -0700
+++ b/usr/src/lib/libc/port/mapfile-vers	Tue Jun 21 18:04:33 2011 -0700
@@ -2984,6 +2984,8 @@
 	__cmpdi2;
 	__floatdidf;
 	__floatdisf;
+	__floatundidf;
+	__floatundisf;
 	__lshrdi3;
 	__muldi3;
 	__ucmpdi2;
--- a/usr/src/lib/libc/sparc/Makefile.com	Tue Jun 21 10:12:15 2011 -0700
+++ b/usr/src/lib/libc/sparc/Makefile.com	Tue Jun 21 18:04:33 2011 -0700
@@ -372,6 +372,8 @@
 	divdi3.o		\
 	floatdidf.o		\
 	floatdisf.o		\
+	floatundidf.o		\
+	floatundisf.o		\
 	lshrdi3.o		\
 	moddi3.o		\
 	muldi3.o		\