2 Orgin: Matt Thomas <matt@3am-software.com>
3 This used to cause GCC to write out an instruction for i386 when using a L64 host
4 which gas could not handle because GCC would write a full 64bit hex string out. */
9 typedef unsigned int __uint32_t
;
14 } ieee_float_shape_type
;
15 extern float __ieee754_expf (float);
16 extern float __ieee754_sinhf (float);
17 static const float one
= 1.0, shuge
= 1.0e37
;
19 __ieee754_sinhf(float x
)
23 do { ieee_float_shape_type gf_u
; gf_u
.value
= (x
); (jx
) = gf_u
.word
; } while (0);
25 if(ix
>=0x7f800000) return x
+x
;
28 if (ix
< 0x41b00000) {
30 if(shuge
+x
>one
) return x
;
32 if(ix
<0x3f800000) return h
*((float)2.0*t
-t
*t
/(t
+one
));
33 return h
*(t
+t
/(t
+one
));
35 if (ix
< 0x42b17180) return h
*__ieee754_expf(fabsf(x
));
37 w
= __ieee754_expf((float)0.5*fabsf(x
));