From 1010f17b925bdd26f313e64084bc82f57be9ab03 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Fri, 20 Sep 2002 21:39:29 +0000 Subject: * sysdeps/powerpc/elf/libc-start.c: Use long in place of int for argc load, so as to work on both 32-bit and 64-bit. Remove unnecessary casts. Align __libc_stack_end to 8 bytes. 2002-09-20 Roland McGrath * sysdeps/powerpc/fpu/s_lrint.c: Use strong_alias/weak_alias macros instead of asm for lrintf, __lrintf aliases. * sysdeps/powerpc/fpu/s_lrint.c (__lrint): Change union long array to int array for 32-/64-bit compatibility. From Steven Munroe . --- sysdeps/powerpc/fpu/s_lrint.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) (limited to 'sysdeps/powerpc/fpu') diff --git a/sysdeps/powerpc/fpu/s_lrint.c b/sysdeps/powerpc/fpu/s_lrint.c index 75d782ec73..c78fb035bd 100644 --- a/sysdeps/powerpc/fpu/s_lrint.c +++ b/sysdeps/powerpc/fpu/s_lrint.c @@ -1,5 +1,5 @@ /* Round floating-point to integer. PowerPC version. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -17,28 +17,35 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +/* Kludge to avoid decls that will confuse strong_alias below. */ +#define __lrintf XXX__lrintf +#define __lrintl XXX__lrintl +#define lrintf XXXlrintf +#define lrintl XXXlrintl + #include "math.h" +#undef __lrintf +#undef __lrintl +#undef lrintf +#undef lrintl + + long int __lrint (double x) { - union { + union + { double d; - long int ll[2]; + int ll[2]; } u; asm ("fctiw %0,%1" : "=f"(u.d) : "f"(x)); return u.ll[1]; } weak_alias (__lrint, lrint) -/* This code will also work for a 'float' argument. */ -asm ("\n\ - .globl __lrintf \n\ - .globl lrintf \n\ - .weak lrintf \n\ - .set __lrintf,__lrint \n\ - .set lrintf,__lrint \n\ -"); +strong_alias (__lrint, __lrintf) +weak_alias (__lrint, lrintf) #ifdef NO_LONG_DOUBLE strong_alias (__lrint, __lrintl) -- cgit v1.2.3