* jit/jit-interp.c: alignment problem with "push_const_float32"
on 64-bit platforms.
+ * jit/jit-intrinsic.c: work around a SIGFPE for sqrt(-1) on Alpha;
+ it should return NaN instead.
+
2004-06-06 Miroslaw Dobrzanski-Neumann <mne@mosaic-ag.com>
* jit/jit-alloc.c (jit_flush_exec): flush cache lines properly
jit_float32 jit_float32_sqrt(jit_float32 value1)
{
+ /* Some platforms give a SIGFPE for negative arguments (e.g. Alpha) */
+ if(value1 < (jit_float32)0.0)
+ {
+ return jit_float32_nan;
+ }
#if defined(HAVE_SQRTF)
- return (jit_float32)(sqrtf(value1));
+ return (jit_float32)(sqrt(value1));
#elif defined(HAVE_SQRT)
return (jit_float32)(sqrt(value1));
#else
jit_float64 jit_float64_sqrt(jit_float64 value1)
{
+ /* Some platforms give a SIGFPE for negative arguments (e.g. Alpha) */
+ if(value1 < (jit_float64)0.0)
+ {
+ return jit_float64_nan;
+ }
#if defined(HAVE_SQRT)
return (jit_float64)(sqrt(value1));
#else
jit_nfloat jit_nfloat_sqrt(jit_nfloat value1)
{
+ /* Some platforms give a SIGFPE for negative arguments (e.g. Alpha) */
+ if(value1 < (jit_nfloat)0.0)
+ {
+ return jit_nfloat_nan;
+ }
#if defined(HAVE_SQRTL) && !defined(JIT_NFLOAT_IS_DOUBLE)
return (jit_nfloat)(sqrtl(value1));
#elif defined(HAVE_SQRT)