This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix ilogb exception and errno (bug 6794)


On Wednesday 11 April 2012 15:30:13 Adhemerval Zanella wrote:
> Following Joseph comments about bug 6794, here is a proposed fix. It turned
> out to be a large fix mainly because I had to move some file along to
> follow libm files/names conventions.
> 
> Basically I have added wrappers (w_ilogb.c, w_ilogbf.c, w_ilogbl.c) that
> now calls the symbol '__ieee754_ilogb'. The wrappers checks for
> '__ieee754_ilogb' output and set the errno and raise exceptions as
> expected.
> 
> The '__ieee754_ilogb' is implemented in sysdeps. I have moved the
> 's_ilogb[f|l]' files to e_ilogb[f|l] and renamed the '__ilogb[f|l]' to
> '__ieee754_ilogb[f|l]'.
> 
> I also found out a bug in i386 and x86-64 assembly coded ilogb
> implementation where it raises a FE_DIVBYZERO when argument is '0.0'. I
> corrected this issue as well.
> 
> Finally I added the errno and FE_INVALID tests for 0.0, NaN and +-InF
> argument. Tested on i386, x86-64, ppc32 and ppc64.
> 
> ---
> 2012-04-11  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
> 
> 	[BZ #6794]
> 	* math/Makefile: Add e_ilogb and w_ilogb, remove s_logb.
> 	* math/libm-test.inc: Add ilogb errno and exception tests.
> 	* math/w_ilogb.c: New file: ilogb wrapper.
> 	* math/w_ilogbf.c: New file: ilogbf wrapper.
> 	* math/w_ilogbl.c: New file: ilogbl wrapper.
> 	* sysdeps/generic/math_private.h: Add __ieee754_ilogb[l|f] prototypes.
> 	* sysdeps/i386/fpu/s_ilogb.S: Moved to ...
> 	* sysdeps/i386/fpu/e_ilogb.S: ... here. Also fixed a FE_DIVBYZERO
> 	exception being thrown with 0.0 as argument.
> 	* sysdeps/i386/fpu/s_ilogbf.S: Moved to ...
> 	* sysdeps/i386/fpu/e_ilogbf.S: ... here. Also fixed a FE_DIVBYZERO
> 	exception being thrown with 0.0 as argument.
> 	* sysdeps/i386/fpu/s_ilogbl.S: Moved to ...
> 	* sysdeps/i386/fpu/e_ilogbl.S: ... here. Also fixed a FE_DIVBYZERO
> 	exception being thrown with 0.0 as argument.
> 	* sysdeps/x86_64/fpu/s_ilogbl.S: Moved to ...
> 	* sysdeps/x86_64/fpu/e_ilogbl.S: ... here. Also fixed a FE_DIVBYZERO
> 	exception being thrown with 0.0 as argument.
> 	* sysdeps/ieee754/dbl-64/s_ilogb.c: Moved to ...
> 	* sysdeps/ieee754/dbl-64/e_ilogb.c: ... here.
> 	* sysdeps/ieee754/flt-32/e_ilogbf.c: Moved to ...
> 	* sysdeps/ieee754/flt-32/e_ilogbf.c: ... here.
> 	* sysdeps/ieee754/ldbl-128ibm/s_ilogbl.c: Moved to ...
> 	* sysdeps/ieee754/ldbl-128ibm/e_ilogbl.c: ... here.
> 	* sysdeps/ieee754/ldbl-opt/s_ilogb.c: Moved to ...
> 	* sysdeps/ieee754/ldbl-opt/w_ilogb.c: ... here.
> 	* sysdeps/ieee754/ldbl-opt/w_ilogbl.c: New file: ilogbl wrapper.

i see a bunch of e_ilogbl.c files still in the tree.  did you miss some in 
renaming to e_ilogbl.c ?

sysdeps/ieee754/ldbl-128/s_ilogbl.c
sysdeps/ieee754/ldbl-64-128/s_ilogbl.c
sysdeps/ieee754/ldbl-96/s_ilogbl.c
sysdeps/sparc/sparc64/soft-fp/s_ilogbl.c
-mike

Attachment: signature.asc
Description: This is a digitally signed message part.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]