Commit Graph

5 Commits

Author SHA1 Message Date
Aurelien Jarno
116ff9ad18 alpha: fix corner cases in ceil, floor, rint.
Partial revert of bebc49030c. Even with the revert, ceil and floor are
still faster than libcpml's equivalent.

Fixes bug 5350.

Signed-off-by: Matt Turner <mattst88@gmail.com>
2010-05-04 09:01:40 -07:00
Richard Henderson
bebc49030c * sysdeps/alpha/fpu/s_ceil.c: Rewrite without branches.
* sysdeps/alpha/fpu/s_ceilf.c: Likewise.
	* sysdeps/alpha/fpu/s_floor.c: Likewise.
	* sysdeps/alpha/fpu/s_floorf.c: Likewise.
	* sysdeps/alpha/fpu/s_rint.c: Likewise.
	* sysdeps/alpha/fpu/s_rintf.c: Likewise.

	* sysdeps/alpha/fpu/s_fmax.S: New file.
	* sysdeps/alpha/fpu/s_fmaxf.S: New file.
	* sysdeps/alpha/fpu/s_fmin.S: New file.
	* sysdeps/alpha/fpu/s_fminf.S: New file.
	* sysdeps/alpha/fpu/s_isnan.c: New file.
	* sysdeps/alpha/fpu/s_isnanf.c: New file.
	* sysdeps/alpha/fpu/s_llrint.c: New file.
	* sysdeps/alpha/fpu/s_llrintf.c: New file.
	* sysdeps/alpha/fpu/s_lrint.c: New file.
	* sysdeps/alpha/fpu/s_lrintf.c: New file.
	* sysdeps/alpha/fpu/s_nearbyint.c: New file.
	* sysdeps/alpha/fpu/s_nearbyintf.c: New file.

	* sysdeps/alpha/fpu/bits/mathinline.h (__floorf, __floor): Remove.
	(__fdimf, fdimf, __fdim, fdim): Remove.
	(__signbitf, __signbit, __signbitl): Use gcc builtin if available.
	(__isnanf, __isnan, __isnanl): New.
2007-03-14 17:44:14 +00:00
Andreas Jaeger
3214b89b32 Update to LGPL v2.1. 2001-07-06 04:56:23 +00:00
Richard Henderson
9dc874df52 * sysdeps/alpha/fpu/fraiseexcpt.c: Use get/set_fp_control instead
of arithmetic instructions.

        * sysdeps/alpha/fpu/s_ceil.c: Use round to -inf instead of playing
        with the fpcr.  Protect from INV exception.
        * sysdeps/alpha/fpu/s_ceilf.c: Likewise.
        * sysdeps/alpha/fpu/s_floor.c: Protect from INV exception.
        * sysdeps/alpha/fpu/s_floorf.c: Likewise.

        * sysdeps/alpha/fpu/s_copysign.c: New.
        * sysdeps/alpha/fpu/s_copysignf.c: New.
        * sysdeps/alpha/fpu/s_fabs.c: New.
        * sysdeps/alpha/fpu/s_fabsf.c: New.
        * sysdeps/alpha/fpu/s_rint.c: New.
        * sysdeps/alpha/fpu/s_rintf.c: New.
2000-03-20 20:32:11 +00:00
Richard Henderson
d7bb0de178 * sysdeps/alpha/fpu/bits/mathinline.h (__floorf, __floor):
Early out for -0.  Optimize for !_IEEE_FP_INEXACT.
        * sysdeps/alpha/fpu/s_floor.c: New.
        * sysdeps/alpha/fpu/s_floorf.c: New.
        * sysdeps/alpha/fpu/s_ceil.c: New.
        * sysdeps/alpha/fpu/s_ceilf.c: New.
1998-08-23 04:09:49 +00:00