Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libm')
-rw-r--r--newlib/libm/machine/spu/Makefile.am41
-rw-r--r--newlib/libm/machine/spu/Makefile.in1251
-rw-r--r--newlib/libm/machine/spu/aclocal.m4992
-rw-r--r--newlib/libm/machine/spu/configure4695
-rw-r--r--newlib/libm/machine/spu/configure.in14
-rw-r--r--newlib/libm/machine/spu/fe_dfl_env.c5
-rw-r--r--newlib/libm/machine/spu/feclearexcept.c6
-rw-r--r--newlib/libm/machine/spu/fegetenv.c6
-rw-r--r--newlib/libm/machine/spu/fegetexceptflag.c6
-rw-r--r--newlib/libm/machine/spu/fegetround.c6
-rw-r--r--newlib/libm/machine/spu/feholdexcept.c6
-rw-r--r--newlib/libm/machine/spu/feraiseexcept.c6
-rw-r--r--newlib/libm/machine/spu/fesetenv.c6
-rw-r--r--newlib/libm/machine/spu/fesetexceptflag.c6
-rw-r--r--newlib/libm/machine/spu/fesetround.c6
-rw-r--r--newlib/libm/machine/spu/fetestexcept.c6
-rw-r--r--newlib/libm/machine/spu/feupdateenv.c6
-rw-r--r--newlib/libm/machine/spu/headers/acos.h18
-rw-r--r--newlib/libm/machine/spu/headers/acosd2.h164
-rw-r--r--newlib/libm/machine/spu/headers/acosf.h18
-rw-r--r--newlib/libm/machine/spu/headers/acosf4.h168
-rw-r--r--newlib/libm/machine/spu/headers/acosh.h16
-rw-r--r--newlib/libm/machine/spu/headers/acoshd2.h159
-rw-r--r--newlib/libm/machine/spu/headers/acoshf.h16
-rw-r--r--newlib/libm/machine/spu/headers/acoshf4.h160
-rw-r--r--newlib/libm/machine/spu/headers/asin.h18
-rw-r--r--newlib/libm/machine/spu/headers/asind2.h165
-rw-r--r--newlib/libm/machine/spu/headers/asinf.h18
-rw-r--r--newlib/libm/machine/spu/headers/asinf4.h144
-rw-r--r--newlib/libm/machine/spu/headers/asinh.h6
-rw-r--r--newlib/libm/machine/spu/headers/asinhd2.h163
-rw-r--r--newlib/libm/machine/spu/headers/asinhf.h6
-rw-r--r--newlib/libm/machine/spu/headers/asinhf4.h182
-rw-r--r--newlib/libm/machine/spu/headers/atan.h6
-rw-r--r--newlib/libm/machine/spu/headers/atan2.h6
-rw-r--r--newlib/libm/machine/spu/headers/atan2d2.h96
-rw-r--r--newlib/libm/machine/spu/headers/atan2f.h6
-rw-r--r--newlib/libm/machine/spu/headers/atan2f4.h94
-rw-r--r--newlib/libm/machine/spu/headers/atand2.h103
-rw-r--r--newlib/libm/machine/spu/headers/atanf.h112
-rw-r--r--newlib/libm/machine/spu/headers/atanf4.h124
-rw-r--r--newlib/libm/machine/spu/headers/atanh.h18
-rw-r--r--newlib/libm/machine/spu/headers/atanhd2.h154
-rw-r--r--newlib/libm/machine/spu/headers/atanhf.h18
-rw-r--r--newlib/libm/machine/spu/headers/atanhf4.h146
-rw-r--r--newlib/libm/machine/spu/headers/cbrt.h134
-rw-r--r--newlib/libm/machine/spu/headers/cbrtf.h130
-rw-r--r--newlib/libm/machine/spu/headers/ceil.h95
-rw-r--r--newlib/libm/machine/spu/headers/ceilf.h123
-rw-r--r--newlib/libm/machine/spu/headers/copysign.h48
-rw-r--r--newlib/libm/machine/spu/headers/copysignf.h48
-rw-r--r--newlib/libm/machine/spu/headers/cos.h6
-rw-r--r--newlib/libm/machine/spu/headers/cos_sin.h204
-rw-r--r--newlib/libm/machine/spu/headers/cosd2.h97
-rw-r--r--newlib/libm/machine/spu/headers/cosf.h6
-rw-r--r--newlib/libm/machine/spu/headers/cosf4.h99
-rw-r--r--newlib/libm/machine/spu/headers/cosh.h6
-rw-r--r--newlib/libm/machine/spu/headers/coshd2.h115
-rw-r--r--newlib/libm/machine/spu/headers/coshf.h6
-rw-r--r--newlib/libm/machine/spu/headers/coshf4.h100
-rw-r--r--newlib/libm/machine/spu/headers/divd2.h237
-rw-r--r--newlib/libm/machine/spu/headers/divf4.h160
-rw-r--r--newlib/libm/machine/spu/headers/dom_chkd_less_than.h59
-rw-r--r--newlib/libm/machine/spu/headers/dom_chkd_negone_one.h69
-rw-r--r--newlib/libm/machine/spu/headers/dom_chkf_less_than.h59
-rw-r--r--newlib/libm/machine/spu/headers/dom_chkf_negone_one.h69
-rw-r--r--newlib/libm/machine/spu/headers/erf.h6
-rw-r--r--newlib/libm/machine/spu/headers/erf_utils.h282
-rw-r--r--newlib/libm/machine/spu/headers/erfc.h6
-rw-r--r--newlib/libm/machine/spu/headers/erfcd2.h126
-rw-r--r--newlib/libm/machine/spu/headers/erfcf.h6
-rw-r--r--newlib/libm/machine/spu/headers/erfcf4.h439
-rw-r--r--newlib/libm/machine/spu/headers/erfd2.h123
-rw-r--r--newlib/libm/machine/spu/headers/erff.h6
-rw-r--r--newlib/libm/machine/spu/headers/erff4.h407
-rw-r--r--newlib/libm/machine/spu/headers/exp.h6
-rw-r--r--newlib/libm/machine/spu/headers/exp2.h6
-rw-r--r--newlib/libm/machine/spu/headers/exp2d2.h152
-rw-r--r--newlib/libm/machine/spu/headers/exp2f.h124
-rw-r--r--newlib/libm/machine/spu/headers/exp2f4.h134
-rw-r--r--newlib/libm/machine/spu/headers/expd2.h196
-rw-r--r--newlib/libm/machine/spu/headers/expf.h58
-rw-r--r--newlib/libm/machine/spu/headers/expf4.h112
-rw-r--r--newlib/libm/machine/spu/headers/expm1.h6
-rw-r--r--newlib/libm/machine/spu/headers/expm1d2.h135
-rw-r--r--newlib/libm/machine/spu/headers/expm1f.h6
-rw-r--r--newlib/libm/machine/spu/headers/expm1f4.h118
-rw-r--r--newlib/libm/machine/spu/headers/fabs.h58
-rw-r--r--newlib/libm/machine/spu/headers/fabsf.h60
-rw-r--r--newlib/libm/machine/spu/headers/fdim.h52
-rw-r--r--newlib/libm/machine/spu/headers/fdimf.h49
-rw-r--r--newlib/libm/machine/spu/headers/feclearexcept.h51
-rw-r--r--newlib/libm/machine/spu/headers/fefpscr.h79
-rw-r--r--newlib/libm/machine/spu/headers/fegetenv.h48
-rw-r--r--newlib/libm/machine/spu/headers/fegetexceptflag.h49
-rw-r--r--newlib/libm/machine/spu/headers/fegetround.h46
-rw-r--r--newlib/libm/machine/spu/headers/feholdexcept.h52
-rw-r--r--newlib/libm/machine/spu/headers/feraiseexcept.h51
-rw-r--r--newlib/libm/machine/spu/headers/fesetenv.h48
-rw-r--r--newlib/libm/machine/spu/headers/fesetexceptflag.h52
-rw-r--r--newlib/libm/machine/spu/headers/fesetround.h104
-rw-r--r--newlib/libm/machine/spu/headers/fetestexcept.h49
-rw-r--r--newlib/libm/machine/spu/headers/feupdateenv.h48
-rw-r--r--newlib/libm/machine/spu/headers/floor.h94
-rw-r--r--newlib/libm/machine/spu/headers/floord2.h110
-rw-r--r--newlib/libm/machine/spu/headers/floorf.h123
-rw-r--r--newlib/libm/machine/spu/headers/floorf4.h105
-rw-r--r--newlib/libm/machine/spu/headers/fma.h49
-rw-r--r--newlib/libm/machine/spu/headers/fmaf.h43
-rw-r--r--newlib/libm/machine/spu/headers/fmax.h75
-rw-r--r--newlib/libm/machine/spu/headers/fmaxf.h48
-rw-r--r--newlib/libm/machine/spu/headers/fmin.h75
-rw-r--r--newlib/libm/machine/spu/headers/fminf.h48
-rw-r--r--newlib/libm/machine/spu/headers/fmod.h166
-rw-r--r--newlib/libm/machine/spu/headers/fmodf.h170
-rw-r--r--newlib/libm/machine/spu/headers/frexp.h74
-rw-r--r--newlib/libm/machine/spu/headers/frexpf.h69
-rw-r--r--newlib/libm/machine/spu/headers/hypot.h6
-rw-r--r--newlib/libm/machine/spu/headers/hypotd2.h122
-rw-r--r--newlib/libm/machine/spu/headers/hypotf.h6
-rw-r--r--newlib/libm/machine/spu/headers/hypotf4.h127
-rw-r--r--newlib/libm/machine/spu/headers/ilogb.h86
-rw-r--r--newlib/libm/machine/spu/headers/ilogbf.h53
-rw-r--r--newlib/libm/machine/spu/headers/isnan.h6
-rw-r--r--newlib/libm/machine/spu/headers/isnand2.h102
-rw-r--r--newlib/libm/machine/spu/headers/isnanf.h6
-rw-r--r--newlib/libm/machine/spu/headers/isnanf4.h66
-rw-r--r--newlib/libm/machine/spu/headers/ldexp.h83
-rw-r--r--newlib/libm/machine/spu/headers/ldexpd2.h97
-rw-r--r--newlib/libm/machine/spu/headers/ldexpf.h77
-rw-r--r--newlib/libm/machine/spu/headers/ldexpf4.h72
-rw-r--r--newlib/libm/machine/spu/headers/lgamma.h6
-rw-r--r--newlib/libm/machine/spu/headers/lgammad2.h318
-rw-r--r--newlib/libm/machine/spu/headers/lgammaf.h6
-rw-r--r--newlib/libm/machine/spu/headers/lgammaf4.h517
-rw-r--r--newlib/libm/machine/spu/headers/llrint.h85
-rw-r--r--newlib/libm/machine/spu/headers/llrintf.h80
-rw-r--r--newlib/libm/machine/spu/headers/llround.h85
-rw-r--r--newlib/libm/machine/spu/headers/llroundf.h87
-rw-r--r--newlib/libm/machine/spu/headers/log.h16
-rw-r--r--newlib/libm/machine/spu/headers/log10.h16
-rw-r--r--newlib/libm/machine/spu/headers/log10d2.h67
-rw-r--r--newlib/libm/machine/spu/headers/log10f.h54
-rw-r--r--newlib/libm/machine/spu/headers/log1p.h16
-rw-r--r--newlib/libm/machine/spu/headers/log1pd2.h125
-rw-r--r--newlib/libm/machine/spu/headers/log1pf.h16
-rw-r--r--newlib/libm/machine/spu/headers/log1pf4.h112
-rw-r--r--newlib/libm/machine/spu/headers/log2.h16
-rw-r--r--newlib/libm/machine/spu/headers/log2d2.h133
-rw-r--r--newlib/libm/machine/spu/headers/log2f.h124
-rw-r--r--newlib/libm/machine/spu/headers/log2f4.h124
-rw-r--r--newlib/libm/machine/spu/headers/logbf.h6
-rw-r--r--newlib/libm/machine/spu/headers/logbf4.h98
-rw-r--r--newlib/libm/machine/spu/headers/logd2.h67
-rw-r--r--newlib/libm/machine/spu/headers/logf.h54
-rw-r--r--newlib/libm/machine/spu/headers/logf4.h64
-rw-r--r--newlib/libm/machine/spu/headers/lrint.h63
-rw-r--r--newlib/libm/machine/spu/headers/lrintf.h46
-rw-r--r--newlib/libm/machine/spu/headers/lround.h84
-rw-r--r--newlib/libm/machine/spu/headers/lroundf.h56
-rw-r--r--newlib/libm/machine/spu/headers/nearbyint.h64
-rw-r--r--newlib/libm/machine/spu/headers/nearbyintf.h6
-rw-r--r--newlib/libm/machine/spu/headers/nearbyintf4.h62
-rw-r--r--newlib/libm/machine/spu/headers/nextafter.h6
-rw-r--r--newlib/libm/machine/spu/headers/nextafterd2.h123
-rw-r--r--newlib/libm/machine/spu/headers/nextafterf.h6
-rw-r--r--newlib/libm/machine/spu/headers/nextafterf4.h108
-rw-r--r--newlib/libm/machine/spu/headers/pow.h6
-rw-r--r--newlib/libm/machine/spu/headers/powd2.h121
-rw-r--r--newlib/libm/machine/spu/headers/powf.h6
-rw-r--r--newlib/libm/machine/spu/headers/powf4.h120
-rw-r--r--newlib/libm/machine/spu/headers/recipd2.h168
-rw-r--r--newlib/libm/machine/spu/headers/recipf4.h142
-rw-r--r--newlib/libm/machine/spu/headers/remainder.h192
-rw-r--r--newlib/libm/machine/spu/headers/remainderf.h141
-rw-r--r--newlib/libm/machine/spu/headers/remquo.h239
-rw-r--r--newlib/libm/machine/spu/headers/remquof.h178
-rw-r--r--newlib/libm/machine/spu/headers/rint.h59
-rw-r--r--newlib/libm/machine/spu/headers/rintf.h6
-rw-r--r--newlib/libm/machine/spu/headers/rintf4.h62
-rw-r--r--newlib/libm/machine/spu/headers/round.h85
-rw-r--r--newlib/libm/machine/spu/headers/roundf.h72
-rw-r--r--newlib/libm/machine/spu/headers/scalbn.h82
-rw-r--r--newlib/libm/machine/spu/headers/scalbnf.h77
-rw-r--r--newlib/libm/machine/spu/headers/scalbnf4.h101
-rw-r--r--newlib/libm/machine/spu/headers/signbit.h6
-rw-r--r--newlib/libm/machine/spu/headers/signbitd2.h74
-rw-r--r--newlib/libm/machine/spu/headers/simdmath.h267
-rw-r--r--newlib/libm/machine/spu/headers/sin.h6
-rw-r--r--newlib/libm/machine/spu/headers/sincos.h10
-rw-r--r--newlib/libm/machine/spu/headers/sincosd2.h93
-rw-r--r--newlib/libm/machine/spu/headers/sincosf.h10
-rw-r--r--newlib/libm/machine/spu/headers/sincosf4.h88
-rw-r--r--newlib/libm/machine/spu/headers/sind2.h98
-rw-r--r--newlib/libm/machine/spu/headers/sinf.h6
-rw-r--r--newlib/libm/machine/spu/headers/sinf4.h95
-rw-r--r--newlib/libm/machine/spu/headers/sinh.h6
-rw-r--r--newlib/libm/machine/spu/headers/sinhd2.h121
-rw-r--r--newlib/libm/machine/spu/headers/sinhf.h6
-rw-r--r--newlib/libm/machine/spu/headers/sinhf4.h104
-rw-r--r--newlib/libm/machine/spu/headers/sqrt.h134
-rw-r--r--newlib/libm/machine/spu/headers/sqrtd2.h150
-rw-r--r--newlib/libm/machine/spu/headers/sqrtf.h16
-rw-r--r--newlib/libm/machine/spu/headers/sqrtf4.h116
-rw-r--r--newlib/libm/machine/spu/headers/tan.h6
-rw-r--r--newlib/libm/machine/spu/headers/tand2.h105
-rw-r--r--newlib/libm/machine/spu/headers/tanf.h6
-rw-r--r--newlib/libm/machine/spu/headers/tanf4.h100
-rw-r--r--newlib/libm/machine/spu/headers/tanh.h6
-rw-r--r--newlib/libm/machine/spu/headers/tanhd2.h161
-rw-r--r--newlib/libm/machine/spu/headers/tanhf.h6
-rw-r--r--newlib/libm/machine/spu/headers/tanhf4.h135
-rw-r--r--newlib/libm/machine/spu/headers/tgamma.h30
-rw-r--r--newlib/libm/machine/spu/headers/tgammad2.h289
-rw-r--r--newlib/libm/machine/spu/headers/tgammaf.h29
-rw-r--r--newlib/libm/machine/spu/headers/tgammaf4.h229
-rw-r--r--newlib/libm/machine/spu/headers/trunc.h70
-rw-r--r--newlib/libm/machine/spu/headers/truncd2.h86
-rw-r--r--newlib/libm/machine/spu/headers/truncf.h64
-rw-r--r--newlib/libm/machine/spu/headers/truncf4.h79
-rw-r--r--newlib/libm/machine/spu/headers/vec_literal.h93
-rw-r--r--newlib/libm/machine/spu/llrint.c7
-rw-r--r--newlib/libm/machine/spu/llrintf.c7
-rw-r--r--newlib/libm/machine/spu/llround.c7
-rw-r--r--newlib/libm/machine/spu/llroundf.c7
-rw-r--r--newlib/libm/machine/spu/log2.c8
-rw-r--r--newlib/libm/machine/spu/log2f.c8
-rw-r--r--newlib/libm/machine/spu/s_asinh.c7
-rw-r--r--newlib/libm/machine/spu/s_atan.c7
-rw-r--r--newlib/libm/machine/spu/s_cbrt.c7
-rw-r--r--newlib/libm/machine/spu/s_ceil.c7
-rw-r--r--newlib/libm/machine/spu/s_copysign.c7
-rw-r--r--newlib/libm/machine/spu/s_cos.c7
-rw-r--r--newlib/libm/machine/spu/s_erf.c18
-rw-r--r--newlib/libm/machine/spu/s_expm1.c7
-rw-r--r--newlib/libm/machine/spu/s_fabs.c7
-rw-r--r--newlib/libm/machine/spu/s_fdim.c7
-rw-r--r--newlib/libm/machine/spu/s_floor.c7
-rw-r--r--newlib/libm/machine/spu/s_fma.c7
-rw-r--r--newlib/libm/machine/spu/s_fmax.c7
-rw-r--r--newlib/libm/machine/spu/s_fmin.c7
-rw-r--r--newlib/libm/machine/spu/s_frexp.c7
-rw-r--r--newlib/libm/machine/spu/s_ilogb.c7
-rw-r--r--newlib/libm/machine/spu/s_isnan.c8
-rw-r--r--newlib/libm/machine/spu/s_ldexp.c7
-rw-r--r--newlib/libm/machine/spu/s_log1p.c7
-rw-r--r--newlib/libm/machine/spu/s_lrint.c7
-rw-r--r--newlib/libm/machine/spu/s_lround.c7
-rw-r--r--newlib/libm/machine/spu/s_nearbyint.c7
-rw-r--r--newlib/libm/machine/spu/s_nextafter.c7
-rw-r--r--newlib/libm/machine/spu/s_remquo.c7
-rw-r--r--newlib/libm/machine/spu/s_rint.c7
-rw-r--r--newlib/libm/machine/spu/s_round.c7
-rw-r--r--newlib/libm/machine/spu/s_scalbn.c7
-rw-r--r--newlib/libm/machine/spu/s_sin.c7
-rw-r--r--newlib/libm/machine/spu/s_tan.c7
-rw-r--r--newlib/libm/machine/spu/s_tanh.c7
-rw-r--r--newlib/libm/machine/spu/s_trunc.c7
-rw-r--r--newlib/libm/machine/spu/sf_asinh.c7
-rw-r--r--newlib/libm/machine/spu/sf_atan.c7
-rw-r--r--newlib/libm/machine/spu/sf_cbrt.c7
-rw-r--r--newlib/libm/machine/spu/sf_ceil.c7
-rw-r--r--newlib/libm/machine/spu/sf_copysign.c7
-rw-r--r--newlib/libm/machine/spu/sf_cos.c7
-rw-r--r--newlib/libm/machine/spu/sf_erf.c18
-rw-r--r--newlib/libm/machine/spu/sf_expm1.c7
-rw-r--r--newlib/libm/machine/spu/sf_fabs.c7
-rw-r--r--newlib/libm/machine/spu/sf_fdim.c7
-rw-r--r--newlib/libm/machine/spu/sf_finite.c41
-rw-r--r--newlib/libm/machine/spu/sf_floor.c7
-rw-r--r--newlib/libm/machine/spu/sf_fma.c7
-rw-r--r--newlib/libm/machine/spu/sf_fmax.c7
-rw-r--r--newlib/libm/machine/spu/sf_fmin.c7
-rw-r--r--newlib/libm/machine/spu/sf_fpclassify.c24
-rw-r--r--newlib/libm/machine/spu/sf_frexp.c7
-rw-r--r--newlib/libm/machine/spu/sf_ilogb.c7
-rw-r--r--newlib/libm/machine/spu/sf_isinf.c43
-rw-r--r--newlib/libm/machine/spu/sf_isinff.c41
-rw-r--r--newlib/libm/machine/spu/sf_isnan.c41
-rw-r--r--newlib/libm/machine/spu/sf_isnanf.c41
-rw-r--r--newlib/libm/machine/spu/sf_ldexp.c7
-rw-r--r--newlib/libm/machine/spu/sf_log1p.c7
-rw-r--r--newlib/libm/machine/spu/sf_logb.c7
-rw-r--r--newlib/libm/machine/spu/sf_lrint.c7
-rw-r--r--newlib/libm/machine/spu/sf_lround.c7
-rw-r--r--newlib/libm/machine/spu/sf_nan.c42
-rw-r--r--newlib/libm/machine/spu/sf_nearbyint.c7
-rw-r--r--newlib/libm/machine/spu/sf_nextafter.c7
-rw-r--r--newlib/libm/machine/spu/sf_remquo.c7
-rw-r--r--newlib/libm/machine/spu/sf_rint.c7
-rw-r--r--newlib/libm/machine/spu/sf_round.c7
-rw-r--r--newlib/libm/machine/spu/sf_scalbn.c7
-rw-r--r--newlib/libm/machine/spu/sf_sin.c7
-rw-r--r--newlib/libm/machine/spu/sf_tan.c7
-rw-r--r--newlib/libm/machine/spu/sf_tanh.c7
-rw-r--r--newlib/libm/machine/spu/sf_trunc.c7
-rw-r--r--newlib/libm/machine/spu/w_acos.c7
-rw-r--r--newlib/libm/machine/spu/w_acosh.c7
-rw-r--r--newlib/libm/machine/spu/w_asin.c7
-rw-r--r--newlib/libm/machine/spu/w_atan2.c7
-rw-r--r--newlib/libm/machine/spu/w_atanh.c7
-rw-r--r--newlib/libm/machine/spu/w_cosh.c7
-rw-r--r--newlib/libm/machine/spu/w_exp.c7
-rw-r--r--newlib/libm/machine/spu/w_exp2.c7
-rw-r--r--newlib/libm/machine/spu/w_fmod.c7
-rw-r--r--newlib/libm/machine/spu/w_hypot.c7
-rw-r--r--newlib/libm/machine/spu/w_lgamma.c7
-rw-r--r--newlib/libm/machine/spu/w_log.c7
-rw-r--r--newlib/libm/machine/spu/w_log10.c7
-rw-r--r--newlib/libm/machine/spu/w_pow.c7
-rw-r--r--newlib/libm/machine/spu/w_remainder.c7
-rw-r--r--newlib/libm/machine/spu/w_sincos.c7
-rw-r--r--newlib/libm/machine/spu/w_sinh.c7
-rw-r--r--newlib/libm/machine/spu/w_sqrt.c7
-rw-r--r--newlib/libm/machine/spu/w_tgamma.c7
-rw-r--r--newlib/libm/machine/spu/wf_acos.c7
-rw-r--r--newlib/libm/machine/spu/wf_acosh.c7
-rw-r--r--newlib/libm/machine/spu/wf_asin.c7
-rw-r--r--newlib/libm/machine/spu/wf_atan2.c7
-rw-r--r--newlib/libm/machine/spu/wf_atanh.c7
-rw-r--r--newlib/libm/machine/spu/wf_cosh.c7
-rw-r--r--newlib/libm/machine/spu/wf_exp.c7
-rw-r--r--newlib/libm/machine/spu/wf_exp2.c7
-rw-r--r--newlib/libm/machine/spu/wf_fmod.c7
-rw-r--r--newlib/libm/machine/spu/wf_hypot.c7
-rw-r--r--newlib/libm/machine/spu/wf_lgamma.c7
-rw-r--r--newlib/libm/machine/spu/wf_log.c7
-rw-r--r--newlib/libm/machine/spu/wf_log10.c7
-rw-r--r--newlib/libm/machine/spu/wf_pow.c7
-rw-r--r--newlib/libm/machine/spu/wf_remainder.c7
-rw-r--r--newlib/libm/machine/spu/wf_sincos.c7
-rw-r--r--newlib/libm/machine/spu/wf_sinh.c7
-rw-r--r--newlib/libm/machine/spu/wf_sqrt.c7
-rw-r--r--newlib/libm/machine/spu/wf_tgamma.c7
334 files changed, 0 insertions, 25459 deletions
diff --git a/newlib/libm/machine/spu/Makefile.am b/newlib/libm/machine/spu/Makefile.am
deleted file mode 100644
index 2ca70a751..000000000
--- a/newlib/libm/machine/spu/Makefile.am
+++ /dev/null
@@ -1,41 +0,0 @@
-## Process this file with automake to generate Makefile.in
-
-AUTOMAKE_OPTIONS = cygnus
-
-INCLUDES = -I $(newlib_basedir)/../newlib/libm/common $(NEWLIB_CFLAGS) \
- $(CROSS_CFLAGS) $(TARGET_CFLAGS)
-
-LIB_SOURCES = \
- feclearexcept.c fe_dfl_env.c fegetenv.c fegetexceptflag.c \
- fegetround.c feholdexcept.c feraiseexcept.c fesetenv.c \
- fesetexceptflag.c fesetround.c fetestexcept.c feupdateenv.c \
- llrint.c llrintf.c llround.c llroundf.c log2.c log2f.c s_asinh.c \
- s_atan.c s_cbrt.c s_ceil.c s_copysign.c s_cos.c s_erf.c s_expm1.c \
- s_fabs.c sf_asinh.c sf_atan.c sf_cbrt.c sf_ceil.c sf_copysign.c \
- sf_cos.c s_fdim.c sf_erf.c sf_expm1.c sf_fabs.c sf_fdim.c \
- sf_finite.c sf_floor.c sf_fma.c sf_fmax.c sf_fmin.c \
- sf_fpclassify.c sf_frexp.c sf_ilogb.c sf_isinf.c sf_isinff.c \
- sf_isnan.c sf_isnanf.c sf_ldexp.c sf_log1p.c sf_logb.c s_floor.c \
- sf_lrint.c sf_lround.c s_fma.c s_fmax.c s_fmin.c sf_nan.c \
- sf_nearbyint.c sf_nextafter.c sf_remquo.c s_frexp.c sf_rint.c \
- sf_round.c sf_scalbn.c sf_sin.c sf_tan.c sf_tanh.c sf_trunc.c \
- s_ilogb.c s_isnan.c s_ldexp.c s_log1p.c s_lrint.c s_lround.c \
- s_nearbyint.c s_nextafter.c s_remquo.c s_rint.c s_round.c \
- s_scalbn.c s_sin.c s_tan.c s_tanh.c s_trunc.c w_acos.c w_acosh.c \
- w_asin.c w_atan2.c w_atanh.c w_cosh.c w_exp2.c w_exp.c wf_acos.c \
- wf_acosh.c wf_asin.c wf_atan2.c wf_atanh.c wf_cosh.c wf_exp2.c \
- wf_exp.c wf_fmod.c wf_hypot.c wf_lgamma.c wf_log10.c wf_log.c \
- w_fmod.c wf_pow.c wf_remainder.c wf_sincos.c wf_sinh.c wf_sqrt.c \
- wf_tgamma.c w_hypot.c w_lgamma.c w_log10.c w_log.c w_pow.c \
- w_remainder.c w_sincos.c w_sinh.c w_sqrt.c w_tgamma.c
-
-noinst_LIBRARIES = lib.a
-lib_a_SOURCES = $(LIB_SOURCES)
-lib_a_CFLAGS = $(AM_CFLAGS)
-lib_a_CCASFLAGS = $(AM_CCASFLAGS)
-noinst_DATA =
-
-include $(srcdir)/../../../Makefile.shared
-
-ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
-CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libm/machine/spu/Makefile.in b/newlib/libm/machine/spu/Makefile.in
deleted file mode 100644
index 2dd8c45a0..000000000
--- a/newlib/libm/machine/spu/Makefile.in
+++ /dev/null
@@ -1,1251 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-DIST_COMMON = $(srcdir)/../../../Makefile.shared $(srcdir)/Makefile.in \
- $(srcdir)/Makefile.am $(top_srcdir)/configure \
- $(am__configure_deps) $(srcdir)/../../../../mkinstalldirs
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../../../acinclude.m4 \
- $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-ARFLAGS = cru
-lib_a_AR = $(AR) $(ARFLAGS)
-lib_a_LIBADD =
-am__objects_1 = lib_a-feclearexcept.$(OBJEXT) \
- lib_a-fe_dfl_env.$(OBJEXT) lib_a-fegetenv.$(OBJEXT) \
- lib_a-fegetexceptflag.$(OBJEXT) lib_a-fegetround.$(OBJEXT) \
- lib_a-feholdexcept.$(OBJEXT) lib_a-feraiseexcept.$(OBJEXT) \
- lib_a-fesetenv.$(OBJEXT) lib_a-fesetexceptflag.$(OBJEXT) \
- lib_a-fesetround.$(OBJEXT) lib_a-fetestexcept.$(OBJEXT) \
- lib_a-feupdateenv.$(OBJEXT) lib_a-llrint.$(OBJEXT) \
- lib_a-llrintf.$(OBJEXT) lib_a-llround.$(OBJEXT) \
- lib_a-llroundf.$(OBJEXT) lib_a-log2.$(OBJEXT) \
- lib_a-log2f.$(OBJEXT) lib_a-s_asinh.$(OBJEXT) \
- lib_a-s_atan.$(OBJEXT) lib_a-s_cbrt.$(OBJEXT) \
- lib_a-s_ceil.$(OBJEXT) lib_a-s_copysign.$(OBJEXT) \
- lib_a-s_cos.$(OBJEXT) lib_a-s_erf.$(OBJEXT) \
- lib_a-s_expm1.$(OBJEXT) lib_a-s_fabs.$(OBJEXT) \
- lib_a-sf_asinh.$(OBJEXT) lib_a-sf_atan.$(OBJEXT) \
- lib_a-sf_cbrt.$(OBJEXT) lib_a-sf_ceil.$(OBJEXT) \
- lib_a-sf_copysign.$(OBJEXT) lib_a-sf_cos.$(OBJEXT) \
- lib_a-s_fdim.$(OBJEXT) lib_a-sf_erf.$(OBJEXT) \
- lib_a-sf_expm1.$(OBJEXT) lib_a-sf_fabs.$(OBJEXT) \
- lib_a-sf_fdim.$(OBJEXT) lib_a-sf_finite.$(OBJEXT) \
- lib_a-sf_floor.$(OBJEXT) lib_a-sf_fma.$(OBJEXT) \
- lib_a-sf_fmax.$(OBJEXT) lib_a-sf_fmin.$(OBJEXT) \
- lib_a-sf_fpclassify.$(OBJEXT) lib_a-sf_frexp.$(OBJEXT) \
- lib_a-sf_ilogb.$(OBJEXT) lib_a-sf_isinf.$(OBJEXT) \
- lib_a-sf_isinff.$(OBJEXT) lib_a-sf_isnan.$(OBJEXT) \
- lib_a-sf_isnanf.$(OBJEXT) lib_a-sf_ldexp.$(OBJEXT) \
- lib_a-sf_log1p.$(OBJEXT) lib_a-sf_logb.$(OBJEXT) \
- lib_a-s_floor.$(OBJEXT) lib_a-sf_lrint.$(OBJEXT) \
- lib_a-sf_lround.$(OBJEXT) lib_a-s_fma.$(OBJEXT) \
- lib_a-s_fmax.$(OBJEXT) lib_a-s_fmin.$(OBJEXT) \
- lib_a-sf_nan.$(OBJEXT) lib_a-sf_nearbyint.$(OBJEXT) \
- lib_a-sf_nextafter.$(OBJEXT) lib_a-sf_remquo.$(OBJEXT) \
- lib_a-s_frexp.$(OBJEXT) lib_a-sf_rint.$(OBJEXT) \
- lib_a-sf_round.$(OBJEXT) lib_a-sf_scalbn.$(OBJEXT) \
- lib_a-sf_sin.$(OBJEXT) lib_a-sf_tan.$(OBJEXT) \
- lib_a-sf_tanh.$(OBJEXT) lib_a-sf_trunc.$(OBJEXT) \
- lib_a-s_ilogb.$(OBJEXT) lib_a-s_isnan.$(OBJEXT) \
- lib_a-s_ldexp.$(OBJEXT) lib_a-s_log1p.$(OBJEXT) \
- lib_a-s_lrint.$(OBJEXT) lib_a-s_lround.$(OBJEXT) \
- lib_a-s_nearbyint.$(OBJEXT) lib_a-s_nextafter.$(OBJEXT) \
- lib_a-s_remquo.$(OBJEXT) lib_a-s_rint.$(OBJEXT) \
- lib_a-s_round.$(OBJEXT) lib_a-s_scalbn.$(OBJEXT) \
- lib_a-s_sin.$(OBJEXT) lib_a-s_tan.$(OBJEXT) \
- lib_a-s_tanh.$(OBJEXT) lib_a-s_trunc.$(OBJEXT) \
- lib_a-w_acos.$(OBJEXT) lib_a-w_acosh.$(OBJEXT) \
- lib_a-w_asin.$(OBJEXT) lib_a-w_atan2.$(OBJEXT) \
- lib_a-w_atanh.$(OBJEXT) lib_a-w_cosh.$(OBJEXT) \
- lib_a-w_exp2.$(OBJEXT) lib_a-w_exp.$(OBJEXT) \
- lib_a-wf_acos.$(OBJEXT) lib_a-wf_acosh.$(OBJEXT) \
- lib_a-wf_asin.$(OBJEXT) lib_a-wf_atan2.$(OBJEXT) \
- lib_a-wf_atanh.$(OBJEXT) lib_a-wf_cosh.$(OBJEXT) \
- lib_a-wf_exp2.$(OBJEXT) lib_a-wf_exp.$(OBJEXT) \
- lib_a-wf_fmod.$(OBJEXT) lib_a-wf_hypot.$(OBJEXT) \
- lib_a-wf_lgamma.$(OBJEXT) lib_a-wf_log10.$(OBJEXT) \
- lib_a-wf_log.$(OBJEXT) lib_a-w_fmod.$(OBJEXT) \
- lib_a-wf_pow.$(OBJEXT) lib_a-wf_remainder.$(OBJEXT) \
- lib_a-wf_sincos.$(OBJEXT) lib_a-wf_sinh.$(OBJEXT) \
- lib_a-wf_sqrt.$(OBJEXT) lib_a-wf_tgamma.$(OBJEXT) \
- lib_a-w_hypot.$(OBJEXT) lib_a-w_lgamma.$(OBJEXT) \
- lib_a-w_log10.$(OBJEXT) lib_a-w_log.$(OBJEXT) \
- lib_a-w_pow.$(OBJEXT) lib_a-w_remainder.$(OBJEXT) \
- lib_a-w_sincos.$(OBJEXT) lib_a-w_sinh.$(OBJEXT) \
- lib_a-w_sqrt.$(OBJEXT) lib_a-w_tgamma.$(OBJEXT)
-am_lib_a_OBJECTS = $(am__objects_1)
-lib_a_OBJECTS = $(am_lib_a_OBJECTS)
-DEFAULT_INCLUDES = -I.@am__isrc@
-depcomp =
-am__depfiles_maybe =
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(lib_a_SOURCES)
-DATA = $(noinst_DATA)
-ETAGS = etags
-CTAGS = ctags
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCAS = @CCAS@
-CCASFLAGS = @CCASFLAGS@
-CCDEPMODE = @CCDEPMODE@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NEWLIB_CFLAGS = @NEWLIB_CFLAGS@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-READELF = @READELF@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-aext = @aext@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-libm_machine_dir = @libm_machine_dir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lpfx = @lpfx@
-machine_dir = @machine_dir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-newlib_basedir = @newlib_basedir@
-oext = @oext@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sys_dir = @sys_dir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = cygnus
-INCLUDES = -I $(newlib_basedir)/../newlib/libm/common $(NEWLIB_CFLAGS) \
- $(CROSS_CFLAGS) $(TARGET_CFLAGS)
-
-LIB_SOURCES = \
- feclearexcept.c fe_dfl_env.c fegetenv.c fegetexceptflag.c \
- fegetround.c feholdexcept.c feraiseexcept.c fesetenv.c \
- fesetexceptflag.c fesetround.c fetestexcept.c feupdateenv.c \
- llrint.c llrintf.c llround.c llroundf.c log2.c log2f.c s_asinh.c \
- s_atan.c s_cbrt.c s_ceil.c s_copysign.c s_cos.c s_erf.c s_expm1.c \
- s_fabs.c sf_asinh.c sf_atan.c sf_cbrt.c sf_ceil.c sf_copysign.c \
- sf_cos.c s_fdim.c sf_erf.c sf_expm1.c sf_fabs.c sf_fdim.c \
- sf_finite.c sf_floor.c sf_fma.c sf_fmax.c sf_fmin.c \
- sf_fpclassify.c sf_frexp.c sf_ilogb.c sf_isinf.c sf_isinff.c \
- sf_isnan.c sf_isnanf.c sf_ldexp.c sf_log1p.c sf_logb.c s_floor.c \
- sf_lrint.c sf_lround.c s_fma.c s_fmax.c s_fmin.c sf_nan.c \
- sf_nearbyint.c sf_nextafter.c sf_remquo.c s_frexp.c sf_rint.c \
- sf_round.c sf_scalbn.c sf_sin.c sf_tan.c sf_tanh.c sf_trunc.c \
- s_ilogb.c s_isnan.c s_ldexp.c s_log1p.c s_lrint.c s_lround.c \
- s_nearbyint.c s_nextafter.c s_remquo.c s_rint.c s_round.c \
- s_scalbn.c s_sin.c s_tan.c s_tanh.c s_trunc.c w_acos.c w_acosh.c \
- w_asin.c w_atan2.c w_atanh.c w_cosh.c w_exp2.c w_exp.c wf_acos.c \
- wf_acosh.c wf_asin.c wf_atan2.c wf_atanh.c wf_cosh.c wf_exp2.c \
- wf_exp.c wf_fmod.c wf_hypot.c wf_lgamma.c wf_log10.c wf_log.c \
- w_fmod.c wf_pow.c wf_remainder.c wf_sincos.c wf_sinh.c wf_sqrt.c \
- wf_tgamma.c w_hypot.c w_lgamma.c w_log10.c w_log.c w_pow.c \
- w_remainder.c w_sincos.c w_sinh.c w_sqrt.c w_tgamma.c
-
-noinst_LIBRARIES = lib.a
-lib_a_SOURCES = $(LIB_SOURCES)
-lib_a_CFLAGS = $(AM_CFLAGS)
-lib_a_CCASFLAGS = $(AM_CCASFLAGS)
-noinst_DATA =
-ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
-CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-am--refresh:
- @:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../../Makefile.shared $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --cygnus'; \
- $(am__cd) $(srcdir) && $(AUTOMAKE) --cygnus \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --cygnus Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- echo ' $(SHELL) ./config.status'; \
- $(SHELL) ./config.status;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- $(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-$(am__aclocal_m4_deps):
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES)
- -rm -f lib.a
- $(lib_a_AR) lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD)
- $(RANLIB) lib.a
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-.c.o:
- $(COMPILE) -c $<
-
-.c.obj:
- $(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-lib_a-feclearexcept.o: feclearexcept.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feclearexcept.o `test -f 'feclearexcept.c' || echo '$(srcdir)/'`feclearexcept.c
-
-lib_a-feclearexcept.obj: feclearexcept.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feclearexcept.obj `if test -f 'feclearexcept.c'; then $(CYGPATH_W) 'feclearexcept.c'; else $(CYGPATH_W) '$(srcdir)/feclearexcept.c'; fi`
-
-lib_a-fe_dfl_env.o: fe_dfl_env.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fe_dfl_env.o `test -f 'fe_dfl_env.c' || echo '$(srcdir)/'`fe_dfl_env.c
-
-lib_a-fe_dfl_env.obj: fe_dfl_env.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fe_dfl_env.obj `if test -f 'fe_dfl_env.c'; then $(CYGPATH_W) 'fe_dfl_env.c'; else $(CYGPATH_W) '$(srcdir)/fe_dfl_env.c'; fi`
-
-lib_a-fegetenv.o: fegetenv.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fegetenv.o `test -f 'fegetenv.c' || echo '$(srcdir)/'`fegetenv.c
-
-lib_a-fegetenv.obj: fegetenv.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fegetenv.obj `if test -f 'fegetenv.c'; then $(CYGPATH_W) 'fegetenv.c'; else $(CYGPATH_W) '$(srcdir)/fegetenv.c'; fi`
-
-lib_a-fegetexceptflag.o: fegetexceptflag.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fegetexceptflag.o `test -f 'fegetexceptflag.c' || echo '$(srcdir)/'`fegetexceptflag.c
-
-lib_a-fegetexceptflag.obj: fegetexceptflag.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fegetexceptflag.obj `if test -f 'fegetexceptflag.c'; then $(CYGPATH_W) 'fegetexceptflag.c'; else $(CYGPATH_W) '$(srcdir)/fegetexceptflag.c'; fi`
-
-lib_a-fegetround.o: fegetround.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fegetround.o `test -f 'fegetround.c' || echo '$(srcdir)/'`fegetround.c
-
-lib_a-fegetround.obj: fegetround.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fegetround.obj `if test -f 'fegetround.c'; then $(CYGPATH_W) 'fegetround.c'; else $(CYGPATH_W) '$(srcdir)/fegetround.c'; fi`
-
-lib_a-feholdexcept.o: feholdexcept.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feholdexcept.o `test -f 'feholdexcept.c' || echo '$(srcdir)/'`feholdexcept.c
-
-lib_a-feholdexcept.obj: feholdexcept.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feholdexcept.obj `if test -f 'feholdexcept.c'; then $(CYGPATH_W) 'feholdexcept.c'; else $(CYGPATH_W) '$(srcdir)/feholdexcept.c'; fi`
-
-lib_a-feraiseexcept.o: feraiseexcept.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feraiseexcept.o `test -f 'feraiseexcept.c' || echo '$(srcdir)/'`feraiseexcept.c
-
-lib_a-feraiseexcept.obj: feraiseexcept.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feraiseexcept.obj `if test -f 'feraiseexcept.c'; then $(CYGPATH_W) 'feraiseexcept.c'; else $(CYGPATH_W) '$(srcdir)/feraiseexcept.c'; fi`
-
-lib_a-fesetenv.o: fesetenv.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fesetenv.o `test -f 'fesetenv.c' || echo '$(srcdir)/'`fesetenv.c
-
-lib_a-fesetenv.obj: fesetenv.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fesetenv.obj `if test -f 'fesetenv.c'; then $(CYGPATH_W) 'fesetenv.c'; else $(CYGPATH_W) '$(srcdir)/fesetenv.c'; fi`
-
-lib_a-fesetexceptflag.o: fesetexceptflag.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fesetexceptflag.o `test -f 'fesetexceptflag.c' || echo '$(srcdir)/'`fesetexceptflag.c
-
-lib_a-fesetexceptflag.obj: fesetexceptflag.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fesetexceptflag.obj `if test -f 'fesetexceptflag.c'; then $(CYGPATH_W) 'fesetexceptflag.c'; else $(CYGPATH_W) '$(srcdir)/fesetexceptflag.c'; fi`
-
-lib_a-fesetround.o: fesetround.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fesetround.o `test -f 'fesetround.c' || echo '$(srcdir)/'`fesetround.c
-
-lib_a-fesetround.obj: fesetround.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fesetround.obj `if test -f 'fesetround.c'; then $(CYGPATH_W) 'fesetround.c'; else $(CYGPATH_W) '$(srcdir)/fesetround.c'; fi`
-
-lib_a-fetestexcept.o: fetestexcept.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fetestexcept.o `test -f 'fetestexcept.c' || echo '$(srcdir)/'`fetestexcept.c
-
-lib_a-fetestexcept.obj: fetestexcept.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fetestexcept.obj `if test -f 'fetestexcept.c'; then $(CYGPATH_W) 'fetestexcept.c'; else $(CYGPATH_W) '$(srcdir)/fetestexcept.c'; fi`
-
-lib_a-feupdateenv.o: feupdateenv.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feupdateenv.o `test -f 'feupdateenv.c' || echo '$(srcdir)/'`feupdateenv.c
-
-lib_a-feupdateenv.obj: feupdateenv.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feupdateenv.obj `if test -f 'feupdateenv.c'; then $(CYGPATH_W) 'feupdateenv.c'; else $(CYGPATH_W) '$(srcdir)/feupdateenv.c'; fi`
-
-lib_a-llrint.o: llrint.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-llrint.o `test -f 'llrint.c' || echo '$(srcdir)/'`llrint.c
-
-lib_a-llrint.obj: llrint.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-llrint.obj `if test -f 'llrint.c'; then $(CYGPATH_W) 'llrint.c'; else $(CYGPATH_W) '$(srcdir)/llrint.c'; fi`
-
-lib_a-llrintf.o: llrintf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-llrintf.o `test -f 'llrintf.c' || echo '$(srcdir)/'`llrintf.c
-
-lib_a-llrintf.obj: llrintf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-llrintf.obj `if test -f 'llrintf.c'; then $(CYGPATH_W) 'llrintf.c'; else $(CYGPATH_W) '$(srcdir)/llrintf.c'; fi`
-
-lib_a-llround.o: llround.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-llround.o `test -f 'llround.c' || echo '$(srcdir)/'`llround.c
-
-lib_a-llround.obj: llround.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-llround.obj `if test -f 'llround.c'; then $(CYGPATH_W) 'llround.c'; else $(CYGPATH_W) '$(srcdir)/llround.c'; fi`
-
-lib_a-llroundf.o: llroundf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-llroundf.o `test -f 'llroundf.c' || echo '$(srcdir)/'`llroundf.c
-
-lib_a-llroundf.obj: llroundf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-llroundf.obj `if test -f 'llroundf.c'; then $(CYGPATH_W) 'llroundf.c'; else $(CYGPATH_W) '$(srcdir)/llroundf.c'; fi`
-
-lib_a-log2.o: log2.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-log2.o `test -f 'log2.c' || echo '$(srcdir)/'`log2.c
-
-lib_a-log2.obj: log2.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-log2.obj `if test -f 'log2.c'; then $(CYGPATH_W) 'log2.c'; else $(CYGPATH_W) '$(srcdir)/log2.c'; fi`
-
-lib_a-log2f.o: log2f.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-log2f.o `test -f 'log2f.c' || echo '$(srcdir)/'`log2f.c
-
-lib_a-log2f.obj: log2f.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-log2f.obj `if test -f 'log2f.c'; then $(CYGPATH_W) 'log2f.c'; else $(CYGPATH_W) '$(srcdir)/log2f.c'; fi`
-
-lib_a-s_asinh.o: s_asinh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_asinh.o `test -f 's_asinh.c' || echo '$(srcdir)/'`s_asinh.c
-
-lib_a-s_asinh.obj: s_asinh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_asinh.obj `if test -f 's_asinh.c'; then $(CYGPATH_W) 's_asinh.c'; else $(CYGPATH_W) '$(srcdir)/s_asinh.c'; fi`
-
-lib_a-s_atan.o: s_atan.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_atan.o `test -f 's_atan.c' || echo '$(srcdir)/'`s_atan.c
-
-lib_a-s_atan.obj: s_atan.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_atan.obj `if test -f 's_atan.c'; then $(CYGPATH_W) 's_atan.c'; else $(CYGPATH_W) '$(srcdir)/s_atan.c'; fi`
-
-lib_a-s_cbrt.o: s_cbrt.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cbrt.o `test -f 's_cbrt.c' || echo '$(srcdir)/'`s_cbrt.c
-
-lib_a-s_cbrt.obj: s_cbrt.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cbrt.obj `if test -f 's_cbrt.c'; then $(CYGPATH_W) 's_cbrt.c'; else $(CYGPATH_W) '$(srcdir)/s_cbrt.c'; fi`
-
-lib_a-s_ceil.o: s_ceil.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ceil.o `test -f 's_ceil.c' || echo '$(srcdir)/'`s_ceil.c
-
-lib_a-s_ceil.obj: s_ceil.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ceil.obj `if test -f 's_ceil.c'; then $(CYGPATH_W) 's_ceil.c'; else $(CYGPATH_W) '$(srcdir)/s_ceil.c'; fi`
-
-lib_a-s_copysign.o: s_copysign.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_copysign.o `test -f 's_copysign.c' || echo '$(srcdir)/'`s_copysign.c
-
-lib_a-s_copysign.obj: s_copysign.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_copysign.obj `if test -f 's_copysign.c'; then $(CYGPATH_W) 's_copysign.c'; else $(CYGPATH_W) '$(srcdir)/s_copysign.c'; fi`
-
-lib_a-s_cos.o: s_cos.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cos.o `test -f 's_cos.c' || echo '$(srcdir)/'`s_cos.c
-
-lib_a-s_cos.obj: s_cos.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cos.obj `if test -f 's_cos.c'; then $(CYGPATH_W) 's_cos.c'; else $(CYGPATH_W) '$(srcdir)/s_cos.c'; fi`
-
-lib_a-s_erf.o: s_erf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_erf.o `test -f 's_erf.c' || echo '$(srcdir)/'`s_erf.c
-
-lib_a-s_erf.obj: s_erf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_erf.obj `if test -f 's_erf.c'; then $(CYGPATH_W) 's_erf.c'; else $(CYGPATH_W) '$(srcdir)/s_erf.c'; fi`
-
-lib_a-s_expm1.o: s_expm1.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_expm1.o `test -f 's_expm1.c' || echo '$(srcdir)/'`s_expm1.c
-
-lib_a-s_expm1.obj: s_expm1.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_expm1.obj `if test -f 's_expm1.c'; then $(CYGPATH_W) 's_expm1.c'; else $(CYGPATH_W) '$(srcdir)/s_expm1.c'; fi`
-
-lib_a-s_fabs.o: s_fabs.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fabs.o `test -f 's_fabs.c' || echo '$(srcdir)/'`s_fabs.c
-
-lib_a-s_fabs.obj: s_fabs.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fabs.obj `if test -f 's_fabs.c'; then $(CYGPATH_W) 's_fabs.c'; else $(CYGPATH_W) '$(srcdir)/s_fabs.c'; fi`
-
-lib_a-sf_asinh.o: sf_asinh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_asinh.o `test -f 'sf_asinh.c' || echo '$(srcdir)/'`sf_asinh.c
-
-lib_a-sf_asinh.obj: sf_asinh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_asinh.obj `if test -f 'sf_asinh.c'; then $(CYGPATH_W) 'sf_asinh.c'; else $(CYGPATH_W) '$(srcdir)/sf_asinh.c'; fi`
-
-lib_a-sf_atan.o: sf_atan.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_atan.o `test -f 'sf_atan.c' || echo '$(srcdir)/'`sf_atan.c
-
-lib_a-sf_atan.obj: sf_atan.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_atan.obj `if test -f 'sf_atan.c'; then $(CYGPATH_W) 'sf_atan.c'; else $(CYGPATH_W) '$(srcdir)/sf_atan.c'; fi`
-
-lib_a-sf_cbrt.o: sf_cbrt.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_cbrt.o `test -f 'sf_cbrt.c' || echo '$(srcdir)/'`sf_cbrt.c
-
-lib_a-sf_cbrt.obj: sf_cbrt.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_cbrt.obj `if test -f 'sf_cbrt.c'; then $(CYGPATH_W) 'sf_cbrt.c'; else $(CYGPATH_W) '$(srcdir)/sf_cbrt.c'; fi`
-
-lib_a-sf_ceil.o: sf_ceil.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_ceil.o `test -f 'sf_ceil.c' || echo '$(srcdir)/'`sf_ceil.c
-
-lib_a-sf_ceil.obj: sf_ceil.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_ceil.obj `if test -f 'sf_ceil.c'; then $(CYGPATH_W) 'sf_ceil.c'; else $(CYGPATH_W) '$(srcdir)/sf_ceil.c'; fi`
-
-lib_a-sf_copysign.o: sf_copysign.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_copysign.o `test -f 'sf_copysign.c' || echo '$(srcdir)/'`sf_copysign.c
-
-lib_a-sf_copysign.obj: sf_copysign.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_copysign.obj `if test -f 'sf_copysign.c'; then $(CYGPATH_W) 'sf_copysign.c'; else $(CYGPATH_W) '$(srcdir)/sf_copysign.c'; fi`
-
-lib_a-sf_cos.o: sf_cos.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_cos.o `test -f 'sf_cos.c' || echo '$(srcdir)/'`sf_cos.c
-
-lib_a-sf_cos.obj: sf_cos.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_cos.obj `if test -f 'sf_cos.c'; then $(CYGPATH_W) 'sf_cos.c'; else $(CYGPATH_W) '$(srcdir)/sf_cos.c'; fi`
-
-lib_a-s_fdim.o: s_fdim.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fdim.o `test -f 's_fdim.c' || echo '$(srcdir)/'`s_fdim.c
-
-lib_a-s_fdim.obj: s_fdim.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fdim.obj `if test -f 's_fdim.c'; then $(CYGPATH_W) 's_fdim.c'; else $(CYGPATH_W) '$(srcdir)/s_fdim.c'; fi`
-
-lib_a-sf_erf.o: sf_erf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_erf.o `test -f 'sf_erf.c' || echo '$(srcdir)/'`sf_erf.c
-
-lib_a-sf_erf.obj: sf_erf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_erf.obj `if test -f 'sf_erf.c'; then $(CYGPATH_W) 'sf_erf.c'; else $(CYGPATH_W) '$(srcdir)/sf_erf.c'; fi`
-
-lib_a-sf_expm1.o: sf_expm1.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_expm1.o `test -f 'sf_expm1.c' || echo '$(srcdir)/'`sf_expm1.c
-
-lib_a-sf_expm1.obj: sf_expm1.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_expm1.obj `if test -f 'sf_expm1.c'; then $(CYGPATH_W) 'sf_expm1.c'; else $(CYGPATH_W) '$(srcdir)/sf_expm1.c'; fi`
-
-lib_a-sf_fabs.o: sf_fabs.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fabs.o `test -f 'sf_fabs.c' || echo '$(srcdir)/'`sf_fabs.c
-
-lib_a-sf_fabs.obj: sf_fabs.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fabs.obj `if test -f 'sf_fabs.c'; then $(CYGPATH_W) 'sf_fabs.c'; else $(CYGPATH_W) '$(srcdir)/sf_fabs.c'; fi`
-
-lib_a-sf_fdim.o: sf_fdim.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fdim.o `test -f 'sf_fdim.c' || echo '$(srcdir)/'`sf_fdim.c
-
-lib_a-sf_fdim.obj: sf_fdim.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fdim.obj `if test -f 'sf_fdim.c'; then $(CYGPATH_W) 'sf_fdim.c'; else $(CYGPATH_W) '$(srcdir)/sf_fdim.c'; fi`
-
-lib_a-sf_finite.o: sf_finite.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_finite.o `test -f 'sf_finite.c' || echo '$(srcdir)/'`sf_finite.c
-
-lib_a-sf_finite.obj: sf_finite.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_finite.obj `if test -f 'sf_finite.c'; then $(CYGPATH_W) 'sf_finite.c'; else $(CYGPATH_W) '$(srcdir)/sf_finite.c'; fi`
-
-lib_a-sf_floor.o: sf_floor.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_floor.o `test -f 'sf_floor.c' || echo '$(srcdir)/'`sf_floor.c
-
-lib_a-sf_floor.obj: sf_floor.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_floor.obj `if test -f 'sf_floor.c'; then $(CYGPATH_W) 'sf_floor.c'; else $(CYGPATH_W) '$(srcdir)/sf_floor.c'; fi`
-
-lib_a-sf_fma.o: sf_fma.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fma.o `test -f 'sf_fma.c' || echo '$(srcdir)/'`sf_fma.c
-
-lib_a-sf_fma.obj: sf_fma.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fma.obj `if test -f 'sf_fma.c'; then $(CYGPATH_W) 'sf_fma.c'; else $(CYGPATH_W) '$(srcdir)/sf_fma.c'; fi`
-
-lib_a-sf_fmax.o: sf_fmax.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fmax.o `test -f 'sf_fmax.c' || echo '$(srcdir)/'`sf_fmax.c
-
-lib_a-sf_fmax.obj: sf_fmax.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fmax.obj `if test -f 'sf_fmax.c'; then $(CYGPATH_W) 'sf_fmax.c'; else $(CYGPATH_W) '$(srcdir)/sf_fmax.c'; fi`
-
-lib_a-sf_fmin.o: sf_fmin.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fmin.o `test -f 'sf_fmin.c' || echo '$(srcdir)/'`sf_fmin.c
-
-lib_a-sf_fmin.obj: sf_fmin.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fmin.obj `if test -f 'sf_fmin.c'; then $(CYGPATH_W) 'sf_fmin.c'; else $(CYGPATH_W) '$(srcdir)/sf_fmin.c'; fi`
-
-lib_a-sf_fpclassify.o: sf_fpclassify.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fpclassify.o `test -f 'sf_fpclassify.c' || echo '$(srcdir)/'`sf_fpclassify.c
-
-lib_a-sf_fpclassify.obj: sf_fpclassify.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fpclassify.obj `if test -f 'sf_fpclassify.c'; then $(CYGPATH_W) 'sf_fpclassify.c'; else $(CYGPATH_W) '$(srcdir)/sf_fpclassify.c'; fi`
-
-lib_a-sf_frexp.o: sf_frexp.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_frexp.o `test -f 'sf_frexp.c' || echo '$(srcdir)/'`sf_frexp.c
-
-lib_a-sf_frexp.obj: sf_frexp.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_frexp.obj `if test -f 'sf_frexp.c'; then $(CYGPATH_W) 'sf_frexp.c'; else $(CYGPATH_W) '$(srcdir)/sf_frexp.c'; fi`
-
-lib_a-sf_ilogb.o: sf_ilogb.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_ilogb.o `test -f 'sf_ilogb.c' || echo '$(srcdir)/'`sf_ilogb.c
-
-lib_a-sf_ilogb.obj: sf_ilogb.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_ilogb.obj `if test -f 'sf_ilogb.c'; then $(CYGPATH_W) 'sf_ilogb.c'; else $(CYGPATH_W) '$(srcdir)/sf_ilogb.c'; fi`
-
-lib_a-sf_isinf.o: sf_isinf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_isinf.o `test -f 'sf_isinf.c' || echo '$(srcdir)/'`sf_isinf.c
-
-lib_a-sf_isinf.obj: sf_isinf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_isinf.obj `if test -f 'sf_isinf.c'; then $(CYGPATH_W) 'sf_isinf.c'; else $(CYGPATH_W) '$(srcdir)/sf_isinf.c'; fi`
-
-lib_a-sf_isinff.o: sf_isinff.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_isinff.o `test -f 'sf_isinff.c' || echo '$(srcdir)/'`sf_isinff.c
-
-lib_a-sf_isinff.obj: sf_isinff.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_isinff.obj `if test -f 'sf_isinff.c'; then $(CYGPATH_W) 'sf_isinff.c'; else $(CYGPATH_W) '$(srcdir)/sf_isinff.c'; fi`
-
-lib_a-sf_isnan.o: sf_isnan.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_isnan.o `test -f 'sf_isnan.c' || echo '$(srcdir)/'`sf_isnan.c
-
-lib_a-sf_isnan.obj: sf_isnan.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_isnan.obj `if test -f 'sf_isnan.c'; then $(CYGPATH_W) 'sf_isnan.c'; else $(CYGPATH_W) '$(srcdir)/sf_isnan.c'; fi`
-
-lib_a-sf_isnanf.o: sf_isnanf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_isnanf.o `test -f 'sf_isnanf.c' || echo '$(srcdir)/'`sf_isnanf.c
-
-lib_a-sf_isnanf.obj: sf_isnanf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_isnanf.obj `if test -f 'sf_isnanf.c'; then $(CYGPATH_W) 'sf_isnanf.c'; else $(CYGPATH_W) '$(srcdir)/sf_isnanf.c'; fi`
-
-lib_a-sf_ldexp.o: sf_ldexp.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_ldexp.o `test -f 'sf_ldexp.c' || echo '$(srcdir)/'`sf_ldexp.c
-
-lib_a-sf_ldexp.obj: sf_ldexp.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_ldexp.obj `if test -f 'sf_ldexp.c'; then $(CYGPATH_W) 'sf_ldexp.c'; else $(CYGPATH_W) '$(srcdir)/sf_ldexp.c'; fi`
-
-lib_a-sf_log1p.o: sf_log1p.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_log1p.o `test -f 'sf_log1p.c' || echo '$(srcdir)/'`sf_log1p.c
-
-lib_a-sf_log1p.obj: sf_log1p.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_log1p.obj `if test -f 'sf_log1p.c'; then $(CYGPATH_W) 'sf_log1p.c'; else $(CYGPATH_W) '$(srcdir)/sf_log1p.c'; fi`
-
-lib_a-sf_logb.o: sf_logb.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_logb.o `test -f 'sf_logb.c' || echo '$(srcdir)/'`sf_logb.c
-
-lib_a-sf_logb.obj: sf_logb.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_logb.obj `if test -f 'sf_logb.c'; then $(CYGPATH_W) 'sf_logb.c'; else $(CYGPATH_W) '$(srcdir)/sf_logb.c'; fi`
-
-lib_a-s_floor.o: s_floor.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_floor.o `test -f 's_floor.c' || echo '$(srcdir)/'`s_floor.c
-
-lib_a-s_floor.obj: s_floor.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_floor.obj `if test -f 's_floor.c'; then $(CYGPATH_W) 's_floor.c'; else $(CYGPATH_W) '$(srcdir)/s_floor.c'; fi`
-
-lib_a-sf_lrint.o: sf_lrint.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_lrint.o `test -f 'sf_lrint.c' || echo '$(srcdir)/'`sf_lrint.c
-
-lib_a-sf_lrint.obj: sf_lrint.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_lrint.obj `if test -f 'sf_lrint.c'; then $(CYGPATH_W) 'sf_lrint.c'; else $(CYGPATH_W) '$(srcdir)/sf_lrint.c'; fi`
-
-lib_a-sf_lround.o: sf_lround.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_lround.o `test -f 'sf_lround.c' || echo '$(srcdir)/'`sf_lround.c
-
-lib_a-sf_lround.obj: sf_lround.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_lround.obj `if test -f 'sf_lround.c'; then $(CYGPATH_W) 'sf_lround.c'; else $(CYGPATH_W) '$(srcdir)/sf_lround.c'; fi`
-
-lib_a-s_fma.o: s_fma.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fma.o `test -f 's_fma.c' || echo '$(srcdir)/'`s_fma.c
-
-lib_a-s_fma.obj: s_fma.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fma.obj `if test -f 's_fma.c'; then $(CYGPATH_W) 's_fma.c'; else $(CYGPATH_W) '$(srcdir)/s_fma.c'; fi`
-
-lib_a-s_fmax.o: s_fmax.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fmax.o `test -f 's_fmax.c' || echo '$(srcdir)/'`s_fmax.c
-
-lib_a-s_fmax.obj: s_fmax.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fmax.obj `if test -f 's_fmax.c'; then $(CYGPATH_W) 's_fmax.c'; else $(CYGPATH_W) '$(srcdir)/s_fmax.c'; fi`
-
-lib_a-s_fmin.o: s_fmin.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fmin.o `test -f 's_fmin.c' || echo '$(srcdir)/'`s_fmin.c
-
-lib_a-s_fmin.obj: s_fmin.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fmin.obj `if test -f 's_fmin.c'; then $(CYGPATH_W) 's_fmin.c'; else $(CYGPATH_W) '$(srcdir)/s_fmin.c'; fi`
-
-lib_a-sf_nan.o: sf_nan.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_nan.o `test -f 'sf_nan.c' || echo '$(srcdir)/'`sf_nan.c
-
-lib_a-sf_nan.obj: sf_nan.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_nan.obj `if test -f 'sf_nan.c'; then $(CYGPATH_W) 'sf_nan.c'; else $(CYGPATH_W) '$(srcdir)/sf_nan.c'; fi`
-
-lib_a-sf_nearbyint.o: sf_nearbyint.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_nearbyint.o `test -f 'sf_nearbyint.c' || echo '$(srcdir)/'`sf_nearbyint.c
-
-lib_a-sf_nearbyint.obj: sf_nearbyint.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_nearbyint.obj `if test -f 'sf_nearbyint.c'; then $(CYGPATH_W) 'sf_nearbyint.c'; else $(CYGPATH_W) '$(srcdir)/sf_nearbyint.c'; fi`
-
-lib_a-sf_nextafter.o: sf_nextafter.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_nextafter.o `test -f 'sf_nextafter.c' || echo '$(srcdir)/'`sf_nextafter.c
-
-lib_a-sf_nextafter.obj: sf_nextafter.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_nextafter.obj `if test -f 'sf_nextafter.c'; then $(CYGPATH_W) 'sf_nextafter.c'; else $(CYGPATH_W) '$(srcdir)/sf_nextafter.c'; fi`
-
-lib_a-sf_remquo.o: sf_remquo.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_remquo.o `test -f 'sf_remquo.c' || echo '$(srcdir)/'`sf_remquo.c
-
-lib_a-sf_remquo.obj: sf_remquo.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_remquo.obj `if test -f 'sf_remquo.c'; then $(CYGPATH_W) 'sf_remquo.c'; else $(CYGPATH_W) '$(srcdir)/sf_remquo.c'; fi`
-
-lib_a-s_frexp.o: s_frexp.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_frexp.o `test -f 's_frexp.c' || echo '$(srcdir)/'`s_frexp.c
-
-lib_a-s_frexp.obj: s_frexp.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_frexp.obj `if test -f 's_frexp.c'; then $(CYGPATH_W) 's_frexp.c'; else $(CYGPATH_W) '$(srcdir)/s_frexp.c'; fi`
-
-lib_a-sf_rint.o: sf_rint.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_rint.o `test -f 'sf_rint.c' || echo '$(srcdir)/'`sf_rint.c
-
-lib_a-sf_rint.obj: sf_rint.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_rint.obj `if test -f 'sf_rint.c'; then $(CYGPATH_W) 'sf_rint.c'; else $(CYGPATH_W) '$(srcdir)/sf_rint.c'; fi`
-
-lib_a-sf_round.o: sf_round.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_round.o `test -f 'sf_round.c' || echo '$(srcdir)/'`sf_round.c
-
-lib_a-sf_round.obj: sf_round.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_round.obj `if test -f 'sf_round.c'; then $(CYGPATH_W) 'sf_round.c'; else $(CYGPATH_W) '$(srcdir)/sf_round.c'; fi`
-
-lib_a-sf_scalbn.o: sf_scalbn.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_scalbn.o `test -f 'sf_scalbn.c' || echo '$(srcdir)/'`sf_scalbn.c
-
-lib_a-sf_scalbn.obj: sf_scalbn.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_scalbn.obj `if test -f 'sf_scalbn.c'; then $(CYGPATH_W) 'sf_scalbn.c'; else $(CYGPATH_W) '$(srcdir)/sf_scalbn.c'; fi`
-
-lib_a-sf_sin.o: sf_sin.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_sin.o `test -f 'sf_sin.c' || echo '$(srcdir)/'`sf_sin.c
-
-lib_a-sf_sin.obj: sf_sin.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_sin.obj `if test -f 'sf_sin.c'; then $(CYGPATH_W) 'sf_sin.c'; else $(CYGPATH_W) '$(srcdir)/sf_sin.c'; fi`
-
-lib_a-sf_tan.o: sf_tan.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_tan.o `test -f 'sf_tan.c' || echo '$(srcdir)/'`sf_tan.c
-
-lib_a-sf_tan.obj: sf_tan.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_tan.obj `if test -f 'sf_tan.c'; then $(CYGPATH_W) 'sf_tan.c'; else $(CYGPATH_W) '$(srcdir)/sf_tan.c'; fi`
-
-lib_a-sf_tanh.o: sf_tanh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_tanh.o `test -f 'sf_tanh.c' || echo '$(srcdir)/'`sf_tanh.c
-
-lib_a-sf_tanh.obj: sf_tanh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_tanh.obj `if test -f 'sf_tanh.c'; then $(CYGPATH_W) 'sf_tanh.c'; else $(CYGPATH_W) '$(srcdir)/sf_tanh.c'; fi`
-
-lib_a-sf_trunc.o: sf_trunc.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_trunc.o `test -f 'sf_trunc.c' || echo '$(srcdir)/'`sf_trunc.c
-
-lib_a-sf_trunc.obj: sf_trunc.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_trunc.obj `if test -f 'sf_trunc.c'; then $(CYGPATH_W) 'sf_trunc.c'; else $(CYGPATH_W) '$(srcdir)/sf_trunc.c'; fi`
-
-lib_a-s_ilogb.o: s_ilogb.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ilogb.o `test -f 's_ilogb.c' || echo '$(srcdir)/'`s_ilogb.c
-
-lib_a-s_ilogb.obj: s_ilogb.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ilogb.obj `if test -f 's_ilogb.c'; then $(CYGPATH_W) 's_ilogb.c'; else $(CYGPATH_W) '$(srcdir)/s_ilogb.c'; fi`
-
-lib_a-s_isnan.o: s_isnan.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_isnan.o `test -f 's_isnan.c' || echo '$(srcdir)/'`s_isnan.c
-
-lib_a-s_isnan.obj: s_isnan.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_isnan.obj `if test -f 's_isnan.c'; then $(CYGPATH_W) 's_isnan.c'; else $(CYGPATH_W) '$(srcdir)/s_isnan.c'; fi`
-
-lib_a-s_ldexp.o: s_ldexp.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ldexp.o `test -f 's_ldexp.c' || echo '$(srcdir)/'`s_ldexp.c
-
-lib_a-s_ldexp.obj: s_ldexp.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ldexp.obj `if test -f 's_ldexp.c'; then $(CYGPATH_W) 's_ldexp.c'; else $(CYGPATH_W) '$(srcdir)/s_ldexp.c'; fi`
-
-lib_a-s_log1p.o: s_log1p.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_log1p.o `test -f 's_log1p.c' || echo '$(srcdir)/'`s_log1p.c
-
-lib_a-s_log1p.obj: s_log1p.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_log1p.obj `if test -f 's_log1p.c'; then $(CYGPATH_W) 's_log1p.c'; else $(CYGPATH_W) '$(srcdir)/s_log1p.c'; fi`
-
-lib_a-s_lrint.o: s_lrint.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_lrint.o `test -f 's_lrint.c' || echo '$(srcdir)/'`s_lrint.c
-
-lib_a-s_lrint.obj: s_lrint.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_lrint.obj `if test -f 's_lrint.c'; then $(CYGPATH_W) 's_lrint.c'; else $(CYGPATH_W) '$(srcdir)/s_lrint.c'; fi`
-
-lib_a-s_lround.o: s_lround.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_lround.o `test -f 's_lround.c' || echo '$(srcdir)/'`s_lround.c
-
-lib_a-s_lround.obj: s_lround.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_lround.obj `if test -f 's_lround.c'; then $(CYGPATH_W) 's_lround.c'; else $(CYGPATH_W) '$(srcdir)/s_lround.c'; fi`
-
-lib_a-s_nearbyint.o: s_nearbyint.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_nearbyint.o `test -f 's_nearbyint.c' || echo '$(srcdir)/'`s_nearbyint.c
-
-lib_a-s_nearbyint.obj: s_nearbyint.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_nearbyint.obj `if test -f 's_nearbyint.c'; then $(CYGPATH_W) 's_nearbyint.c'; else $(CYGPATH_W) '$(srcdir)/s_nearbyint.c'; fi`
-
-lib_a-s_nextafter.o: s_nextafter.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_nextafter.o `test -f 's_nextafter.c' || echo '$(srcdir)/'`s_nextafter.c
-
-lib_a-s_nextafter.obj: s_nextafter.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_nextafter.obj `if test -f 's_nextafter.c'; then $(CYGPATH_W) 's_nextafter.c'; else $(CYGPATH_W) '$(srcdir)/s_nextafter.c'; fi`
-
-lib_a-s_remquo.o: s_remquo.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_remquo.o `test -f 's_remquo.c' || echo '$(srcdir)/'`s_remquo.c
-
-lib_a-s_remquo.obj: s_remquo.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_remquo.obj `if test -f 's_remquo.c'; then $(CYGPATH_W) 's_remquo.c'; else $(CYGPATH_W) '$(srcdir)/s_remquo.c'; fi`
-
-lib_a-s_rint.o: s_rint.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_rint.o `test -f 's_rint.c' || echo '$(srcdir)/'`s_rint.c
-
-lib_a-s_rint.obj: s_rint.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_rint.obj `if test -f 's_rint.c'; then $(CYGPATH_W) 's_rint.c'; else $(CYGPATH_W) '$(srcdir)/s_rint.c'; fi`
-
-lib_a-s_round.o: s_round.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_round.o `test -f 's_round.c' || echo '$(srcdir)/'`s_round.c
-
-lib_a-s_round.obj: s_round.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_round.obj `if test -f 's_round.c'; then $(CYGPATH_W) 's_round.c'; else $(CYGPATH_W) '$(srcdir)/s_round.c'; fi`
-
-lib_a-s_scalbn.o: s_scalbn.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_scalbn.o `test -f 's_scalbn.c' || echo '$(srcdir)/'`s_scalbn.c
-
-lib_a-s_scalbn.obj: s_scalbn.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_scalbn.obj `if test -f 's_scalbn.c'; then $(CYGPATH_W) 's_scalbn.c'; else $(CYGPATH_W) '$(srcdir)/s_scalbn.c'; fi`
-
-lib_a-s_sin.o: s_sin.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_sin.o `test -f 's_sin.c' || echo '$(srcdir)/'`s_sin.c
-
-lib_a-s_sin.obj: s_sin.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_sin.obj `if test -f 's_sin.c'; then $(CYGPATH_W) 's_sin.c'; else $(CYGPATH_W) '$(srcdir)/s_sin.c'; fi`
-
-lib_a-s_tan.o: s_tan.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_tan.o `test -f 's_tan.c' || echo '$(srcdir)/'`s_tan.c
-
-lib_a-s_tan.obj: s_tan.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_tan.obj `if test -f 's_tan.c'; then $(CYGPATH_W) 's_tan.c'; else $(CYGPATH_W) '$(srcdir)/s_tan.c'; fi`
-
-lib_a-s_tanh.o: s_tanh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_tanh.o `test -f 's_tanh.c' || echo '$(srcdir)/'`s_tanh.c
-
-lib_a-s_tanh.obj: s_tanh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_tanh.obj `if test -f 's_tanh.c'; then $(CYGPATH_W) 's_tanh.c'; else $(CYGPATH_W) '$(srcdir)/s_tanh.c'; fi`
-
-lib_a-s_trunc.o: s_trunc.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_trunc.o `test -f 's_trunc.c' || echo '$(srcdir)/'`s_trunc.c
-
-lib_a-s_trunc.obj: s_trunc.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_trunc.obj `if test -f 's_trunc.c'; then $(CYGPATH_W) 's_trunc.c'; else $(CYGPATH_W) '$(srcdir)/s_trunc.c'; fi`
-
-lib_a-w_acos.o: w_acos.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_acos.o `test -f 'w_acos.c' || echo '$(srcdir)/'`w_acos.c
-
-lib_a-w_acos.obj: w_acos.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_acos.obj `if test -f 'w_acos.c'; then $(CYGPATH_W) 'w_acos.c'; else $(CYGPATH_W) '$(srcdir)/w_acos.c'; fi`
-
-lib_a-w_acosh.o: w_acosh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_acosh.o `test -f 'w_acosh.c' || echo '$(srcdir)/'`w_acosh.c
-
-lib_a-w_acosh.obj: w_acosh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_acosh.obj `if test -f 'w_acosh.c'; then $(CYGPATH_W) 'w_acosh.c'; else $(CYGPATH_W) '$(srcdir)/w_acosh.c'; fi`
-
-lib_a-w_asin.o: w_asin.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_asin.o `test -f 'w_asin.c' || echo '$(srcdir)/'`w_asin.c
-
-lib_a-w_asin.obj: w_asin.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_asin.obj `if test -f 'w_asin.c'; then $(CYGPATH_W) 'w_asin.c'; else $(CYGPATH_W) '$(srcdir)/w_asin.c'; fi`
-
-lib_a-w_atan2.o: w_atan2.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_atan2.o `test -f 'w_atan2.c' || echo '$(srcdir)/'`w_atan2.c
-
-lib_a-w_atan2.obj: w_atan2.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_atan2.obj `if test -f 'w_atan2.c'; then $(CYGPATH_W) 'w_atan2.c'; else $(CYGPATH_W) '$(srcdir)/w_atan2.c'; fi`
-
-lib_a-w_atanh.o: w_atanh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_atanh.o `test -f 'w_atanh.c' || echo '$(srcdir)/'`w_atanh.c
-
-lib_a-w_atanh.obj: w_atanh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_atanh.obj `if test -f 'w_atanh.c'; then $(CYGPATH_W) 'w_atanh.c'; else $(CYGPATH_W) '$(srcdir)/w_atanh.c'; fi`
-
-lib_a-w_cosh.o: w_cosh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_cosh.o `test -f 'w_cosh.c' || echo '$(srcdir)/'`w_cosh.c
-
-lib_a-w_cosh.obj: w_cosh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_cosh.obj `if test -f 'w_cosh.c'; then $(CYGPATH_W) 'w_cosh.c'; else $(CYGPATH_W) '$(srcdir)/w_cosh.c'; fi`
-
-lib_a-w_exp2.o: w_exp2.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_exp2.o `test -f 'w_exp2.c' || echo '$(srcdir)/'`w_exp2.c
-
-lib_a-w_exp2.obj: w_exp2.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_exp2.obj `if test -f 'w_exp2.c'; then $(CYGPATH_W) 'w_exp2.c'; else $(CYGPATH_W) '$(srcdir)/w_exp2.c'; fi`
-
-lib_a-w_exp.o: w_exp.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_exp.o `test -f 'w_exp.c' || echo '$(srcdir)/'`w_exp.c
-
-lib_a-w_exp.obj: w_exp.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_exp.obj `if test -f 'w_exp.c'; then $(CYGPATH_W) 'w_exp.c'; else $(CYGPATH_W) '$(srcdir)/w_exp.c'; fi`
-
-lib_a-wf_acos.o: wf_acos.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_acos.o `test -f 'wf_acos.c' || echo '$(srcdir)/'`wf_acos.c
-
-lib_a-wf_acos.obj: wf_acos.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_acos.obj `if test -f 'wf_acos.c'; then $(CYGPATH_W) 'wf_acos.c'; else $(CYGPATH_W) '$(srcdir)/wf_acos.c'; fi`
-
-lib_a-wf_acosh.o: wf_acosh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_acosh.o `test -f 'wf_acosh.c' || echo '$(srcdir)/'`wf_acosh.c
-
-lib_a-wf_acosh.obj: wf_acosh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_acosh.obj `if test -f 'wf_acosh.c'; then $(CYGPATH_W) 'wf_acosh.c'; else $(CYGPATH_W) '$(srcdir)/wf_acosh.c'; fi`
-
-lib_a-wf_asin.o: wf_asin.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_asin.o `test -f 'wf_asin.c' || echo '$(srcdir)/'`wf_asin.c
-
-lib_a-wf_asin.obj: wf_asin.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_asin.obj `if test -f 'wf_asin.c'; then $(CYGPATH_W) 'wf_asin.c'; else $(CYGPATH_W) '$(srcdir)/wf_asin.c'; fi`
-
-lib_a-wf_atan2.o: wf_atan2.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_atan2.o `test -f 'wf_atan2.c' || echo '$(srcdir)/'`wf_atan2.c
-
-lib_a-wf_atan2.obj: wf_atan2.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_atan2.obj `if test -f 'wf_atan2.c'; then $(CYGPATH_W) 'wf_atan2.c'; else $(CYGPATH_W) '$(srcdir)/wf_atan2.c'; fi`
-
-lib_a-wf_atanh.o: wf_atanh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_atanh.o `test -f 'wf_atanh.c' || echo '$(srcdir)/'`wf_atanh.c
-
-lib_a-wf_atanh.obj: wf_atanh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_atanh.obj `if test -f 'wf_atanh.c'; then $(CYGPATH_W) 'wf_atanh.c'; else $(CYGPATH_W) '$(srcdir)/wf_atanh.c'; fi`
-
-lib_a-wf_cosh.o: wf_cosh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_cosh.o `test -f 'wf_cosh.c' || echo '$(srcdir)/'`wf_cosh.c
-
-lib_a-wf_cosh.obj: wf_cosh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_cosh.obj `if test -f 'wf_cosh.c'; then $(CYGPATH_W) 'wf_cosh.c'; else $(CYGPATH_W) '$(srcdir)/wf_cosh.c'; fi`
-
-lib_a-wf_exp2.o: wf_exp2.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_exp2.o `test -f 'wf_exp2.c' || echo '$(srcdir)/'`wf_exp2.c
-
-lib_a-wf_exp2.obj: wf_exp2.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_exp2.obj `if test -f 'wf_exp2.c'; then $(CYGPATH_W) 'wf_exp2.c'; else $(CYGPATH_W) '$(srcdir)/wf_exp2.c'; fi`
-
-lib_a-wf_exp.o: wf_exp.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_exp.o `test -f 'wf_exp.c' || echo '$(srcdir)/'`wf_exp.c
-
-lib_a-wf_exp.obj: wf_exp.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_exp.obj `if test -f 'wf_exp.c'; then $(CYGPATH_W) 'wf_exp.c'; else $(CYGPATH_W) '$(srcdir)/wf_exp.c'; fi`
-
-lib_a-wf_fmod.o: wf_fmod.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_fmod.o `test -f 'wf_fmod.c' || echo '$(srcdir)/'`wf_fmod.c
-
-lib_a-wf_fmod.obj: wf_fmod.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_fmod.obj `if test -f 'wf_fmod.c'; then $(CYGPATH_W) 'wf_fmod.c'; else $(CYGPATH_W) '$(srcdir)/wf_fmod.c'; fi`
-
-lib_a-wf_hypot.o: wf_hypot.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_hypot.o `test -f 'wf_hypot.c' || echo '$(srcdir)/'`wf_hypot.c
-
-lib_a-wf_hypot.obj: wf_hypot.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_hypot.obj `if test -f 'wf_hypot.c'; then $(CYGPATH_W) 'wf_hypot.c'; else $(CYGPATH_W) '$(srcdir)/wf_hypot.c'; fi`
-
-lib_a-wf_lgamma.o: wf_lgamma.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_lgamma.o `test -f 'wf_lgamma.c' || echo '$(srcdir)/'`wf_lgamma.c
-
-lib_a-wf_lgamma.obj: wf_lgamma.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_lgamma.obj `if test -f 'wf_lgamma.c'; then $(CYGPATH_W) 'wf_lgamma.c'; else $(CYGPATH_W) '$(srcdir)/wf_lgamma.c'; fi`
-
-lib_a-wf_log10.o: wf_log10.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_log10.o `test -f 'wf_log10.c' || echo '$(srcdir)/'`wf_log10.c
-
-lib_a-wf_log10.obj: wf_log10.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_log10.obj `if test -f 'wf_log10.c'; then $(CYGPATH_W) 'wf_log10.c'; else $(CYGPATH_W) '$(srcdir)/wf_log10.c'; fi`
-
-lib_a-wf_log.o: wf_log.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_log.o `test -f 'wf_log.c' || echo '$(srcdir)/'`wf_log.c
-
-lib_a-wf_log.obj: wf_log.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_log.obj `if test -f 'wf_log.c'; then $(CYGPATH_W) 'wf_log.c'; else $(CYGPATH_W) '$(srcdir)/wf_log.c'; fi`
-
-lib_a-w_fmod.o: w_fmod.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_fmod.o `test -f 'w_fmod.c' || echo '$(srcdir)/'`w_fmod.c
-
-lib_a-w_fmod.obj: w_fmod.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_fmod.obj `if test -f 'w_fmod.c'; then $(CYGPATH_W) 'w_fmod.c'; else $(CYGPATH_W) '$(srcdir)/w_fmod.c'; fi`
-
-lib_a-wf_pow.o: wf_pow.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_pow.o `test -f 'wf_pow.c' || echo '$(srcdir)/'`wf_pow.c
-
-lib_a-wf_pow.obj: wf_pow.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_pow.obj `if test -f 'wf_pow.c'; then $(CYGPATH_W) 'wf_pow.c'; else $(CYGPATH_W) '$(srcdir)/wf_pow.c'; fi`
-
-lib_a-wf_remainder.o: wf_remainder.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_remainder.o `test -f 'wf_remainder.c' || echo '$(srcdir)/'`wf_remainder.c
-
-lib_a-wf_remainder.obj: wf_remainder.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_remainder.obj `if test -f 'wf_remainder.c'; then $(CYGPATH_W) 'wf_remainder.c'; else $(CYGPATH_W) '$(srcdir)/wf_remainder.c'; fi`
-
-lib_a-wf_sincos.o: wf_sincos.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_sincos.o `test -f 'wf_sincos.c' || echo '$(srcdir)/'`wf_sincos.c
-
-lib_a-wf_sincos.obj: wf_sincos.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_sincos.obj `if test -f 'wf_sincos.c'; then $(CYGPATH_W) 'wf_sincos.c'; else $(CYGPATH_W) '$(srcdir)/wf_sincos.c'; fi`
-
-lib_a-wf_sinh.o: wf_sinh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_sinh.o `test -f 'wf_sinh.c' || echo '$(srcdir)/'`wf_sinh.c
-
-lib_a-wf_sinh.obj: wf_sinh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_sinh.obj `if test -f 'wf_sinh.c'; then $(CYGPATH_W) 'wf_sinh.c'; else $(CYGPATH_W) '$(srcdir)/wf_sinh.c'; fi`
-
-lib_a-wf_sqrt.o: wf_sqrt.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_sqrt.o `test -f 'wf_sqrt.c' || echo '$(srcdir)/'`wf_sqrt.c
-
-lib_a-wf_sqrt.obj: wf_sqrt.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_sqrt.obj `if test -f 'wf_sqrt.c'; then $(CYGPATH_W) 'wf_sqrt.c'; else $(CYGPATH_W) '$(srcdir)/wf_sqrt.c'; fi`
-
-lib_a-wf_tgamma.o: wf_tgamma.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_tgamma.o `test -f 'wf_tgamma.c' || echo '$(srcdir)/'`wf_tgamma.c
-
-lib_a-wf_tgamma.obj: wf_tgamma.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_tgamma.obj `if test -f 'wf_tgamma.c'; then $(CYGPATH_W) 'wf_tgamma.c'; else $(CYGPATH_W) '$(srcdir)/wf_tgamma.c'; fi`
-
-lib_a-w_hypot.o: w_hypot.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_hypot.o `test -f 'w_hypot.c' || echo '$(srcdir)/'`w_hypot.c
-
-lib_a-w_hypot.obj: w_hypot.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_hypot.obj `if test -f 'w_hypot.c'; then $(CYGPATH_W) 'w_hypot.c'; else $(CYGPATH_W) '$(srcdir)/w_hypot.c'; fi`
-
-lib_a-w_lgamma.o: w_lgamma.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_lgamma.o `test -f 'w_lgamma.c' || echo '$(srcdir)/'`w_lgamma.c
-
-lib_a-w_lgamma.obj: w_lgamma.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_lgamma.obj `if test -f 'w_lgamma.c'; then $(CYGPATH_W) 'w_lgamma.c'; else $(CYGPATH_W) '$(srcdir)/w_lgamma.c'; fi`
-
-lib_a-w_log10.o: w_log10.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_log10.o `test -f 'w_log10.c' || echo '$(srcdir)/'`w_log10.c
-
-lib_a-w_log10.obj: w_log10.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_log10.obj `if test -f 'w_log10.c'; then $(CYGPATH_W) 'w_log10.c'; else $(CYGPATH_W) '$(srcdir)/w_log10.c'; fi`
-
-lib_a-w_log.o: w_log.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_log.o `test -f 'w_log.c' || echo '$(srcdir)/'`w_log.c
-
-lib_a-w_log.obj: w_log.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_log.obj `if test -f 'w_log.c'; then $(CYGPATH_W) 'w_log.c'; else $(CYGPATH_W) '$(srcdir)/w_log.c'; fi`
-
-lib_a-w_pow.o: w_pow.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_pow.o `test -f 'w_pow.c' || echo '$(srcdir)/'`w_pow.c
-
-lib_a-w_pow.obj: w_pow.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_pow.obj `if test -f 'w_pow.c'; then $(CYGPATH_W) 'w_pow.c'; else $(CYGPATH_W) '$(srcdir)/w_pow.c'; fi`
-
-lib_a-w_remainder.o: w_remainder.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_remainder.o `test -f 'w_remainder.c' || echo '$(srcdir)/'`w_remainder.c
-
-lib_a-w_remainder.obj: w_remainder.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_remainder.obj `if test -f 'w_remainder.c'; then $(CYGPATH_W) 'w_remainder.c'; else $(CYGPATH_W) '$(srcdir)/w_remainder.c'; fi`
-
-lib_a-w_sincos.o: w_sincos.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_sincos.o `test -f 'w_sincos.c' || echo '$(srcdir)/'`w_sincos.c
-
-lib_a-w_sincos.obj: w_sincos.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_sincos.obj `if test -f 'w_sincos.c'; then $(CYGPATH_W) 'w_sincos.c'; else $(CYGPATH_W) '$(srcdir)/w_sincos.c'; fi`
-
-lib_a-w_sinh.o: w_sinh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_sinh.o `test -f 'w_sinh.c' || echo '$(srcdir)/'`w_sinh.c
-
-lib_a-w_sinh.obj: w_sinh.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_sinh.obj `if test -f 'w_sinh.c'; then $(CYGPATH_W) 'w_sinh.c'; else $(CYGPATH_W) '$(srcdir)/w_sinh.c'; fi`
-
-lib_a-w_sqrt.o: w_sqrt.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_sqrt.o `test -f 'w_sqrt.c' || echo '$(srcdir)/'`w_sqrt.c
-
-lib_a-w_sqrt.obj: w_sqrt.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_sqrt.obj `if test -f 'w_sqrt.c'; then $(CYGPATH_W) 'w_sqrt.c'; else $(CYGPATH_W) '$(srcdir)/w_sqrt.c'; fi`
-
-lib_a-w_tgamma.o: w_tgamma.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_tgamma.o `test -f 'w_tgamma.c' || echo '$(srcdir)/'`w_tgamma.c
-
-lib_a-w_tgamma.obj: w_tgamma.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_tgamma.obj `if test -f 'w_tgamma.c'; then $(CYGPATH_W) 'w_tgamma.c'; else $(CYGPATH_W) '$(srcdir)/w_tgamma.c'; fi`
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- set x; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-check-am:
-check: check-am
-all-am: Makefile $(LIBRARIES) $(DATA)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
-
-distclean: distclean-am
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf $(top_srcdir)/autom4te.cache
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
- clean-generic clean-noinstLIBRARIES ctags distclean \
- distclean-compile distclean-generic distclean-tags dvi dvi-am \
- html html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
- uninstall-am
-
-objectlist.awk.in: $(noinst_LTLIBRARIES)
- -rm -f objectlist.awk.in
- for i in `ls *.lo` ; \
- do \
- echo $$i `pwd`/$$i >> objectlist.awk.in ; \
- done
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/newlib/libm/machine/spu/aclocal.m4 b/newlib/libm/machine/spu/aclocal.m4
deleted file mode 100644
index efadba356..000000000
--- a/newlib/libm/machine/spu/aclocal.m4
+++ /dev/null
@@ -1,992 +0,0 @@
-# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
-[m4_warning([this file was generated for autoconf 2.65.
-You have another version of autoconf. It may work, but is not guaranteed to.
-If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically `autoreconf'.])])
-
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-# (This private macro should not be called outside this file.)
-AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.11'
-dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
-dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.11.1], [],
- [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
-])
-
-# _AM_AUTOCONF_VERSION(VERSION)
-# -----------------------------
-# aclocal traces this macro to find the Autoconf version.
-# This is a private macro too. Using m4_define simplifies
-# the logic in aclocal, which can simply ignore this definition.
-m4_define([_AM_AUTOCONF_VERSION], [])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.1])dnl
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-
-# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory. The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run. This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-# fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-# fails if $ac_aux_dir is absolute,
-# fails when called from a subdirectory in a VPATH build with
-# a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir. In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
-# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-# MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH. The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-])
-
-# AM_CONDITIONAL -*- Autoconf -*-
-
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 9
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
- ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])dnl
-AC_SUBST([$1_FALSE])dnl
-_AM_SUBST_NOTMAKE([$1_TRUE])dnl
-_AM_SUBST_NOTMAKE([$1_FALSE])dnl
-m4_define([_AM_COND_VALUE_$1], [$2])dnl
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 10
-
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery. Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
-
-# _AM_DEPENDENCIES(NAME)
-# ----------------------
-# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
-# We try a few techniques and use that to set a single cache variable.
-#
-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
-# dependency, and given that the user is not expected to run this macro,
-# just rely on AC_PROG_CC.
-AC_DEFUN([_AM_DEPENDENCIES],
-[AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-AC_REQUIRE([AM_DEP_TRACK])dnl
-
-ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
- [$1], CXX, [depcc="$CXX" am_compiler_list=],
- [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
- [$1], UPC, [depcc="$UPC" am_compiler_list=],
- [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
- [depcc="$$1" am_compiler_list=])
-
-AC_CACHE_CHECK([dependency style of $depcc],
- [am_cv_$1_dependencies_compiler_type],
-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_$1_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
- fi
- am__universal=false
- m4_case([$1], [CC],
- [case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac],
- [CXX],
- [case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac])
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvisualcpp | msvcmsys)
- # This compiler won't grok `-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_$1_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_$1_dependencies_compiler_type=none
-fi
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-AM_CONDITIONAL([am__fastdep$1], [
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-])
-
-
-# AM_SET_DEPDIR
-# -------------
-# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
-AC_DEFUN([AM_SET_DEPDIR],
-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-])
-
-
-# AM_DEP_TRACK
-# ------------
-AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[ --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors])
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
-fi
-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
-])
-
-# Generate code to set up dependency tracking. -*- Autoconf -*-
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-#serial 5
-
-# _AM_OUTPUT_DEPENDENCY_COMMANDS
-# ------------------------------
-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[{
- # Autoconf 2.62 quotes --file arguments for eval, but not when files
- # are listed without --file. Let's play safe and only enable the eval
- # if we detect the quoting.
- case $CONFIG_FILES in
- *\'*) eval set x "$CONFIG_FILES" ;;
- *) set x $CONFIG_FILES ;;
- esac
- shift
- for mf
- do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
- dirpart=`AS_DIRNAME("$mf")`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`AS_DIRNAME(["$file"])`
- AS_MKDIR_P([$dirpart/$fdir])
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
- done
-}
-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
-
-
-# AM_OUTPUT_DEPENDENCY_COMMANDS
-# -----------------------------
-# This macro should only be invoked once -- use via AC_REQUIRE.
-#
-# This code is only required when automatic dependency tracking
-# is enabled. FIXME. This creates each `.P' file that we will
-# need in order to bootstrap the dependency handling code.
-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
-[AC_CONFIG_COMMANDS([depfiles],
- [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
- [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
-
-# Do all the work for Automake. -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 16
-
-# This macro actually does too much. Some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.62])dnl
-dnl Autoconf wants to disallow AM_ names. We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
-dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
- [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
-AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
- [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES(CC)],
- [define([AC_PROG_CC],
- defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES(CXX)],
- [define([AC_PROG_CXX],
- defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJC],
- [_AM_DEPENDENCIES(OBJC)],
- [define([AC_PROG_OBJC],
- defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
-])
-_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
-dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
-dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
-AC_CONFIG_COMMANDS_PRE(dnl
-[m4_provide_if([_AM_COMPILER_EXEEXT],
- [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-])
-
-dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
-dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
-dnl mangled by Autoconf and run in a shell conditional statement.
-m4_define([_AC_COMPILER_EXEEXT],
-m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated. The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_arg=$1
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-
-# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-AC_SUBST(install_sh)])
-
-# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 2
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
-# From Jim Meyering
-
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 5
-
-# AM_MAINTAINER_MODE([DEFAULT-MODE])
-# ----------------------------------
-# Control maintainer-specific portions of Makefiles.
-# Default is to disable them, unless `enable' is passed literally.
-# For symmetry, `disable' may be passed as well. Anyway, the user
-# can override the default with the --enable/--disable switch.
-AC_DEFUN([AM_MAINTAINER_MODE],
-[m4_case(m4_default([$1], [disable]),
- [enable], [m4_define([am_maintainer_other], [disable])],
- [disable], [m4_define([am_maintainer_other], [enable])],
- [m4_define([am_maintainer_other], [enable])
- m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
-AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
- dnl maintainer-mode's default is 'disable' unless 'enable' is passed
- AC_ARG_ENABLE([maintainer-mode],
-[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful
- (and sometimes confusing) to the casual installer],
- [USE_MAINTAINER_MODE=$enableval],
- [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
- AC_MSG_RESULT([$USE_MAINTAINER_MODE])
- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
- MAINT=$MAINTAINER_MODE_TRUE
- AC_SUBST([MAINT])dnl
-]
-)
-
-AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
-
-# Check to see how 'make' treats includes. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 4
-
-# AM_MAKE_INCLUDE()
-# -----------------
-# Check to see how make treats includes.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
- am__include=include
- am__quote=
- _am_result=GNU
- ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- case `$am_make -s -f confmf 2> /dev/null` in #(
- *the\ am__doit\ target*)
- am__include=.include
- am__quote="\""
- _am_result=BSD
- ;;
- esac
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
-
-# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 6
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([missing])dnl
-if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- AC_MSG_WARN([`missing' script is too old or missing])
-fi
-])
-
-# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_MKDIR_P
-# ---------------
-# Check for `mkdir -p'.
-AC_DEFUN([AM_PROG_MKDIR_P],
-[AC_PREREQ([2.60])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
-dnl while keeping a definition of mkdir_p for backward compatibility.
-dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
-dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
-dnl Makefile.ins that do not define MKDIR_P, so we do our own
-dnl adjustment using top_builddir (which is defined more often than
-dnl MKDIR_P).
-AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
-case $mkdir_p in
- [[\\/$]]* | ?:[[\\/]]*) ;;
- */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-])
-
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 4
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# ------------------------------
-# Set option NAME. Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-# Check to make sure that the build environment is sane. -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 5
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[[\\\"\#\$\&\'\`$am_lf]]*)
- AC_MSG_ERROR([unsafe absolute working directory name]);;
-esac
-case $srcdir in
- *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
- AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
-esac
-
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- rm -f conftest.file
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-alias in your environment])
- fi
-
- test "$[2]" = conftest.file
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT(yes)])
-
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_STRIP
-# ---------------------
-# One issue with vendor `install' (even GNU) is that you can't
-# specify the program used to strip binaries. This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
-if test "$cross_compiling" != no; then
- AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 2
-
-# _AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
-# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
-# This macro is traced by Automake.
-AC_DEFUN([_AM_SUBST_NOTMAKE])
-
-# AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
-# Public sister of _AM_SUBST_NOTMAKE.
-AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
-
-# Check how to create a tarball. -*- Autoconf -*-
-
-# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 2
-
-# _AM_PROG_TAR(FORMAT)
-# --------------------
-# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
-#
-# Substitute a variable $(am__tar) that is a command
-# writing to stdout a FORMAT-tarball containing the directory
-# $tardir.
-# tardir=directory && $(am__tar) > result.tar
-#
-# Substitute a variable $(am__untar) that extract such
-# a tarball read from stdin.
-# $(am__untar) < result.tar
-AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.
-AM_MISSING_PROG([AMTAR], [tar])
-m4_if([$1], [v7],
- [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
- [m4_case([$1], [ustar],, [pax],,
- [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
- case $_am_tool in
- gnutar)
- for _am_tar in tar gnutar gtar;
- do
- AM_RUN_LOG([$_am_tar --version]) && break
- done
- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
- am__untar="$_am_tar -xf -"
- ;;
- plaintar)
- # Must skip GNU tar: if it does not support --format= it doesn't create
- # ustar tarball either.
- (tar --version) >/dev/null 2>&1 && continue
- am__tar='tar chf - "$$tardir"'
- am__tar_='tar chf - "$tardir"'
- am__untar='tar xf -'
- ;;
- pax)
- am__tar='pax -L -x $1 -w "$$tardir"'
- am__tar_='pax -L -x $1 -w "$tardir"'
- am__untar='pax -r'
- ;;
- cpio)
- am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
- am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
- am__untar='cpio -i -H $1 -d'
- ;;
- none)
- am__tar=false
- am__tar_=false
- am__untar=false
- ;;
- esac
-
- # If the value was cached, stop now. We just wanted to have am__tar
- # and am__untar set.
- test -n "${am_cv_prog_tar_$1}" && break
-
- # tar/untar a dummy directory, and stop if the command works
- rm -rf conftest.dir
- mkdir conftest.dir
- echo GrepMe > conftest.dir/file
- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
- rm -rf conftest.dir
- if test -s conftest.tar; then
- AM_RUN_LOG([$am__untar <conftest.tar])
- grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
- fi
-done
-rm -rf conftest.dir
-
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-]) # _AM_PROG_TAR
-
-m4_include([../../../acinclude.m4])
diff --git a/newlib/libm/machine/spu/configure b/newlib/libm/machine/spu/configure
deleted file mode 100644
index 29c09b70b..000000000
--- a/newlib/libm/machine/spu/configure
+++ /dev/null
@@ -1,4695 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.65 for newlib 1.19.0.
-#
-#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else
- case \`(set -o) 2>/dev/null\` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-"
- as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
- exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1"
- as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
- as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
- eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
- test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
- if (eval "$as_required") 2>/dev/null; then :
- as_have_required=yes
-else
- as_have_required=no
-fi
- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- as_found=:
- case $as_dir in #(
- /*)
- for as_base in sh bash ksh sh5; do
- # Try only shells that exist, to save several forks.
- as_shell=$as_dir/$as_base
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
- CONFIG_SHELL=$as_shell as_have_required=yes
- if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
- break 2
-fi
-fi
- done;;
- esac
- as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
- CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
- if test "x$CONFIG_SHELL" != x; then :
- # We cannot yet assume a decent shell, so we have to provide a
- # neutralization value for shells without unset; and this also
- # works around shells that cannot unset nonexistent variables.
- BASH_ENV=/dev/null
- ENV=/dev/null
- (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
- if test x$as_have_required = xno; then :
- $as_echo "$0: This script requires a shell more modern than all"
- $as_echo "$0: the shells that I found on your system."
- if test x${ZSH_VERSION+set} = xset ; then
- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- $as_echo "$0: be upgraded to zsh 4.3.4 or later."
- else
- $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
-$0: including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a shell if you do have one."
- fi
- exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-# as_fn_error ERROR [LINENO LOG_FD]
-# ---------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with status $?, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$?; test $as_status -eq 0 && as_status=1
- if test "$3"; then
- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
- fi
- $as_echo "$as_me: error: $1" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
- as_lineno_1=$LINENO as_lineno_1a=$LINENO
- as_lineno_2=$LINENO as_lineno_2a=$LINENO
- eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
- test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
- # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -p'
- fi
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME='newlib'
-PACKAGE_TARNAME='newlib'
-PACKAGE_VERSION='1.19.0'
-PACKAGE_STRING='newlib 1.19.0'
-PACKAGE_BUGREPORT=''
-PACKAGE_URL=''
-
-ac_unique_file="Makefile.am"
-ac_subst_vars='LTLIBOBJS
-LIBOBJS
-sys_dir
-machine_dir
-libm_machine_dir
-lpfx
-aext
-oext
-OBJEXT
-USE_LIBTOOL_FALSE
-USE_LIBTOOL_TRUE
-ELIX_LEVEL_4_FALSE
-ELIX_LEVEL_4_TRUE
-ELIX_LEVEL_3_FALSE
-ELIX_LEVEL_3_TRUE
-ELIX_LEVEL_2_FALSE
-ELIX_LEVEL_2_TRUE
-ELIX_LEVEL_1_FALSE
-ELIX_LEVEL_1_TRUE
-ELIX_LEVEL_0_FALSE
-ELIX_LEVEL_0_TRUE
-LDFLAGS
-NEWLIB_CFLAGS
-CCASFLAGS
-CCAS
-MAINT
-MAINTAINER_MODE_FALSE
-MAINTAINER_MODE_TRUE
-READELF
-RANLIB
-AR
-AS
-am__fastdepCC_FALSE
-am__fastdepCC_TRUE
-CCDEPMODE
-AMDEPBACKSLASH
-AMDEP_FALSE
-AMDEP_TRUE
-am__quote
-am__include
-DEPDIR
-CC
-am__untar
-am__tar
-AMTAR
-am__leading_dot
-SET_MAKE
-AWK
-mkdir_p
-MKDIR_P
-INSTALL_STRIP_PROGRAM
-STRIP
-install_sh
-MAKEINFO
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
-VERSION
-PACKAGE
-CYGPATH_W
-am__isrc
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-newlib_basedir
-MAY_SUPPLY_SYSCALLS_FALSE
-MAY_SUPPLY_SYSCALLS_TRUE
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_multilib
-enable_target_optspace
-enable_malloc_debugging
-enable_newlib_multithread
-enable_newlib_iconv
-enable_newlib_elix_level
-enable_newlib_io_float
-enable_newlib_supplied_syscalls
-enable_dependency_tracking
-enable_maintainer_mode
-'
- ac_precious_vars='build_alias
-host_alias
-target_alias
-CCAS
-CCASFLAGS'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval $ac_prev=\$ac_option
- ac_prev=
- continue
- fi
-
- case $ac_option in
- *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *) ac_optarg=yes ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_dashdash$ac_option in
- --)
- ac_dashdash=yes ;;
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
-
- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
- | --dataroo | --dataro | --datar)
- ac_prev=datarootdir ;;
- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
- datarootdir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=no ;;
-
- -docdir | --docdir | --docdi | --doc | --do)
- ac_prev=docdir ;;
- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
- docdir=$ac_optarg ;;
-
- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
- ac_prev=dvidir ;;
- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
- dvidir=$ac_optarg ;;
-
- -enable-* | --enable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=\$ac_optarg ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
- ac_prev=htmldir ;;
- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
- | --ht=*)
- htmldir=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localedir | --localedir | --localedi | --localed | --locale)
- ac_prev=localedir ;;
- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
- localedir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst | --locals)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
- ac_prev=pdfdir ;;
- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
- pdfdir=$ac_optarg ;;
-
- -psdir | --psdir | --psdi | --psd | --ps)
- ac_prev=psdir ;;
- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
- psdir=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=\$ac_optarg ;;
-
- -without-* | --without-*)
- ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=no ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) as_fn_error "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information."
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- case $ac_envvar in #(
- '' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error "invalid variable name: \`$ac_envvar'" ;;
- esac
- eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
- case $enable_option_checking in
- no) ;;
- fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
- esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
- datadir sysconfdir sharedstatedir localstatedir includedir \
- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
-do
- eval ac_val=\$$ac_var
- # Remove trailing slashes.
- case $ac_val in
- */ )
- ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
- eval $ac_var=\$ac_val;;
- esac
- # Be sure to have absolute directory names.
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) continue;;
- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
- as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used." >&2
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then the parent directory.
- ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_myself" : 'X\(//\)[^/]' \| \
- X"$as_myself" : 'X\(//\)$' \| \
- X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r "$srcdir/$ac_unique_file"; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
- pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
- srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
- eval ac_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_env_${ac_var}_value=\$${ac_var}
- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures newlib 1.19.0 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --infodir=DIR info documentation [DATAROOTDIR/info]
- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
- --mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/newlib]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-
-Program names:
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of newlib 1.19.0:";;
- esac
- cat <<\_ACEOF
-
-Optional Features:
- --disable-option-checking ignore unrecognized --enable/--with options
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-multilib build many library versions (default)
- --enable-target-optspace optimize for space
- --enable-malloc-debugging indicate malloc debugging requested
- --enable-newlib-multithread enable support for multiple threads
- --enable-newlib-iconv enable iconv library support
- --enable-newlib-elix-level supply desired elix library level (1-4)
- --disable-newlib-io-float disable printf/scanf family float support
- --disable-newlib-supplied-syscalls disable newlib from supplying syscalls
- --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors
- --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer
-
-Some influential environment variables:
- CCAS assembler compiler command (defaults to CC)
- CCASFLAGS assembler compiler flags (defaults to CFLAGS)
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to the package provider.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d "$ac_dir" ||
- { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
- continue
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
- cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
- if test -f "$ac_srcdir/configure.gnu"; then
- echo &&
- $SHELL "$ac_srcdir/configure.gnu" --help=recursive
- elif test -f "$ac_srcdir/configure"; then
- echo &&
- $SHELL "$ac_srcdir/configure" --help=recursive
- else
- $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi || ac_status=$?
- cd "$ac_pwd" || { ac_status=$?; break; }
- done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
- cat <<\_ACEOF
-newlib configure 1.19.0
-generated by GNU Autoconf 2.65
-
-Copyright (C) 2009 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by newlib $as_me 1.19.0, which was
-generated by GNU Autoconf 2.65. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
- done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
- 2)
- as_fn_append ac_configure_args1 " '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- as_fn_append ac_configure_args " '$ac_arg'"
- ;;
- esac
- done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-## ------------------- ##
-## File substitutions. ##
-## ------------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
- ac_site_file1=$CONFIG_SITE
-elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
-else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
- test "x$ac_site_file" = xNONE && continue
- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special files
- # actually), so we avoid doing that. DJGPP emulates it as a regular file.
- if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- # differences in whitespace do not lead to failure.
- ac_old_val_w=`echo x $ac_old_val`
- ac_new_val_w=`echo x $ac_new_val`
- if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- ac_cache_corrupted=:
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
- eval $ac_var=\$ac_old_val
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) as_fn_append ac_configure_args " '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-ac_aux_dir=
-for ac_dir in ../../../.. "$srcdir"/../../../..; do
- for ac_t in install-sh install.sh shtool; do
- if test -f "$ac_dir/$ac_t"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/$ac_t -c"
- break 2
- fi
- done
-done
-if test -z "$ac_aux_dir"; then
- as_fn_error "cannot find install-sh, install.sh, or shtool in ../../../.. \"$srcdir\"/../../../.." "$LINENO" 5
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
-
-
-
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
- ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
- as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$host_alias" = x; then
- ac_cv_host=$ac_cv_build
-else
- ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-am__api_version='1.11'
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
- ./ | .// | /[cC]/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- rm -rf conftest.one conftest.two conftest.dir
- echo one > conftest.one
- echo two > conftest.two
- mkdir conftest.dir
- if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
- test -s conftest.one && test -s conftest.two &&
- test -s conftest.dir/conftest.one &&
- test -s conftest.dir/conftest.two
- then
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- fi
- done
- done
- ;;
-esac
-
- done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[\\\"\#\$\&\'\`$am_lf]*)
- as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
-esac
-case $srcdir in
- *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
- as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
-esac
-
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- rm -f conftest.file
- if test "$*" != "X $srcdir/configure conftest.file" \
- && test "$*" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- as_fn_error "ls -t appears to fail. Make sure there is not a broken
-alias in your environment" "$LINENO" 5
- fi
-
- test "$2" = conftest.file
- )
-then
- # Ok.
- :
-else
- as_fn_error "newly created file is older than distributed files!
-Check your system clock" "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-test "$program_prefix" != NONE &&
- program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.
-# By default was `s,x,x', remove it if useless.
-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
-fi
-
-if test x"${install_sh}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
- if test "${ac_cv_path_mkdir+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in mkdir gmkdir; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
- 'mkdir (GNU coreutils) '* | \
- 'mkdir (coreutils) '* | \
- 'mkdir (fileutils) '4.1*)
- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
- break 3;;
- esac
- done
- done
- done
-IFS=$as_save_IFS
-
-fi
-
- test -d ./--version && rmdir ./--version
- if test "${ac_cv_path_mkdir+set}" = set; then
- MKDIR_P="$ac_cv_path_mkdir -p"
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for MKDIR_P within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- MKDIR_P="$ac_install_sh -d"
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
- [\\/$]* | ?:[\\/]*) ;;
- */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
-for ac_prog in gawk mawk nawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_AWK="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AWK" && break
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- SET_MAKE=
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-$as_echo_n "checking for style of include used by $am_make... " >&6; }
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
- am__include=include
- am__quote=
- _am_result=GNU
- ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- case `$am_make -s -f confmf 2> /dev/null` in #(
- *the\ am__doit\ target*)
- am__include=.include
- am__quote="\""
- _am_result=BSD
- ;;
- esac
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
-
-# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
- enableval=$enable_dependency_tracking;
-fi
-
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
-fi
- if test "x$enable_dependency_tracking" != xno; then
- AMDEP_TRUE=
- AMDEP_FALSE='#'
-else
- AMDEP_TRUE='#'
- AMDEP_FALSE=
-fi
-
-
-
-# Check whether --enable-multilib was given.
-if test "${enable_multilib+set}" = set; then :
- enableval=$enable_multilib; case "${enableval}" in
- yes) multilib=yes ;;
- no) multilib=no ;;
- *) as_fn_error "bad value ${enableval} for multilib option" "$LINENO" 5 ;;
- esac
-else
- multilib=yes
-fi
-
-# Check whether --enable-target-optspace was given.
-if test "${enable_target_optspace+set}" = set; then :
- enableval=$enable_target_optspace; case "${enableval}" in
- yes) target_optspace=yes ;;
- no) target_optspace=no ;;
- *) as_fn_error "bad value ${enableval} for target-optspace option" "$LINENO" 5 ;;
- esac
-else
- target_optspace=
-fi
-
-# Check whether --enable-malloc-debugging was given.
-if test "${enable_malloc_debugging+set}" = set; then :
- enableval=$enable_malloc_debugging; case "${enableval}" in
- yes) malloc_debugging=yes ;;
- no) malloc_debugging=no ;;
- *) as_fn_error "bad value ${enableval} for malloc-debugging option" "$LINENO" 5 ;;
- esac
-else
- malloc_debugging=
-fi
-
-# Check whether --enable-newlib-multithread was given.
-if test "${enable_newlib_multithread+set}" = set; then :
- enableval=$enable_newlib_multithread; case "${enableval}" in
- yes) newlib_multithread=yes ;;
- no) newlib_multithread=no ;;
- *) as_fn_error "bad value ${enableval} for newlib-multithread option" "$LINENO" 5 ;;
- esac
-else
- newlib_multithread=yes
-fi
-
-# Check whether --enable-newlib-iconv was given.
-if test "${enable_newlib_iconv+set}" = set; then :
- enableval=$enable_newlib_iconv; if test "${newlib_iconv+set}" != set; then
- case "${enableval}" in
- yes) newlib_iconv=yes ;;
- no) newlib_iconv=no ;;
- *) as_fn_error "bad value ${enableval} for newlib-iconv option" "$LINENO" 5 ;;
- esac
- fi
-else
- newlib_iconv=${newlib_iconv}
-fi
-
-# Check whether --enable-newlib-elix-level was given.
-if test "${enable_newlib_elix_level+set}" = set; then :
- enableval=$enable_newlib_elix_level; case "${enableval}" in
- 0) newlib_elix_level=0 ;;
- 1) newlib_elix_level=1 ;;
- 2) newlib_elix_level=2 ;;
- 3) newlib_elix_level=3 ;;
- 4) newlib_elix_level=4 ;;
- *) as_fn_error "bad value ${enableval} for newlib-elix-level option" "$LINENO" 5 ;;
- esac
-else
- newlib_elix_level=0
-fi
-
-# Check whether --enable-newlib-io-float was given.
-if test "${enable_newlib_io_float+set}" = set; then :
- enableval=$enable_newlib_io_float; case "${enableval}" in
- yes) newlib_io_float=yes ;;
- no) newlib_io_float=no ;;
- *) as_fn_error "bad value ${enableval} for newlib-io-float option" "$LINENO" 5 ;;
- esac
-else
- newlib_io_float=yes
-fi
-
-# Check whether --enable-newlib-supplied-syscalls was given.
-if test "${enable_newlib_supplied_syscalls+set}" = set; then :
- enableval=$enable_newlib_supplied_syscalls; case "${enableval}" in
- yes) newlib_may_supply_syscalls=yes ;;
- no) newlib_may_supply_syscalls=no ;;
- *) as_fn_error "bad value ${enableval} for newlib-supplied-syscalls option" "$LINENO" 5 ;;
- esac
-else
- newlib_may_supply_syscalls=yes
-fi
-
- if test x${newlib_may_supply_syscalls} = xyes; then
- MAY_SUPPLY_SYSCALLS_TRUE=
- MAY_SUPPLY_SYSCALLS_FALSE='#'
-else
- MAY_SUPPLY_SYSCALLS_TRUE='#'
- MAY_SUPPLY_SYSCALLS_FALSE=
-fi
-
-
-
-test -z "${with_target_subdir}" && with_target_subdir=.
-
-if test "${srcdir}" = "."; then
- if test "${with_target_subdir}" != "."; then
- newlib_basedir="${srcdir}/${with_multisrctop}../../../.."
- else
- newlib_basedir="${srcdir}/${with_multisrctop}../../.."
- fi
-else
- newlib_basedir="${srcdir}/../../.."
-fi
-
-
-
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- am__isrc=' -I$(srcdir)'
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE='newlib'
- VERSION='1.19.0'
-
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-# Always define AMTAR for backward compatibility.
-
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
-
-
-
-
-
-
-# FIXME: We temporarily define our own version of AC_PROG_CC. This is
-# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
-# are probably using a cross compiler, which will not be able to fully
-# link an executable. This should really be fixed in autoconf
-# itself.
-
-
-
-
-
-
-
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-depcc="$CC" am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- am__universal=false
- case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvisualcpp | msvcmsys)
- # This compiler won't grok `-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -z "$CC" && as_fn_error "no acceptable cc found in \$PATH" "$LINENO" 5
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using GNU C" >&5
-$as_echo_n "checking whether we are using GNU C... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- cat > conftest.c <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if { ac_try='${CC-cc} -E conftest.c'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; } | egrep yes >/dev/null 2>&1; then
- ac_cv_c_compiler_gnu=yes
-else
- ac_cv_c_compiler_gnu=no
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-
-if test $ac_cv_c_compiler_gnu = yes; then
- GCC=yes
- ac_test_CFLAGS="${CFLAGS+set}"
- ac_save_CFLAGS="$CFLAGS"
- ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
- if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
- elif test $ac_cv_prog_cc_g = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-O2"
- fi
-else
- GCC=
- test "${CFLAGS+set}" = set || CFLAGS="-g"
-fi
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
-set dummy ${ac_tool_prefix}as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AS+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AS"; then
- ac_cv_prog_AS="$AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_AS="${ac_tool_prefix}as"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AS=$ac_cv_prog_AS
-if test -n "$AS"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
-$as_echo "$AS" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AS"; then
- ac_ct_AS=$AS
- # Extract the first word of "as", so it can be a program name with args.
-set dummy as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AS+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_AS"; then
- ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_AS="as"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AS=$ac_cv_prog_ac_ct_AS
-if test -n "$ac_ct_AS"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
-$as_echo "$ac_ct_AS" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_AS" = x; then
- AS=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- AS=$ac_ct_AS
- fi
-else
- AS="$ac_cv_prog_AS"
-fi
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_AR="${ac_tool_prefix}ar"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AR"; then
- ac_ct_AR=$AR
- # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_AR"; then
- ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_AR="ar"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_AR" = x; then
- AR=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- AR=$ac_ct_AR
- fi
-else
- AR="$ac_cv_prog_AR"
-fi
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- RANLIB=$ac_ct_RANLIB
- fi
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}readelf", so it can be a program name with args.
-set dummy ${ac_tool_prefix}readelf; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_READELF+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$READELF"; then
- ac_cv_prog_READELF="$READELF" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_READELF="${ac_tool_prefix}readelf"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-READELF=$ac_cv_prog_READELF
-if test -n "$READELF"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5
-$as_echo "$READELF" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_READELF"; then
- ac_ct_READELF=$READELF
- # Extract the first word of "readelf", so it can be a program name with args.
-set dummy readelf; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_READELF+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_READELF"; then
- ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_READELF="readelf"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_READELF=$ac_cv_prog_ac_ct_READELF
-if test -n "$ac_ct_READELF"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_READELF" >&5
-$as_echo "$ac_ct_READELF" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_READELF" = x; then
- READELF=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- READELF=$ac_ct_READELF
- fi
-else
- READELF="$ac_cv_prog_READELF"
-fi
-
-
-
-
-# Hack to ensure that INSTALL won't be set to "../" with autoconf 2.13. */
-ac_given_INSTALL=$INSTALL
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
-$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
- # Check whether --enable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then :
- enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
-else
- USE_MAINTAINER_MODE=no
-fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
-$as_echo "$USE_MAINTAINER_MODE" >&6; }
- if test $USE_MAINTAINER_MODE = yes; then
- MAINTAINER_MODE_TRUE=
- MAINTAINER_MODE_FALSE='#'
-else
- MAINTAINER_MODE_TRUE='#'
- MAINTAINER_MODE_FALSE=
-fi
-
- MAINT=$MAINTAINER_MODE_TRUE
-
-
-# By default we simply use the C compiler to build assembly code.
-
-test "${CCAS+set}" = set || CCAS=$CC
-test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
-
-
-
-
-# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
-# at least currently, we never actually build a program, so we never
-# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
-# fails, because we are probably configuring with a cross compiler
-# which can't create executables. So we include AC_EXEEXT to keep
-# automake happy, but we don't execute it, since we don't care about
-# the result.
-if false; then
-
- dummy_var=1
-fi
-
-. ${newlib_basedir}/configure.host
-
-newlib_cflags="${newlib_cflags} -fno-builtin"
-
-NEWLIB_CFLAGS=${newlib_cflags}
-
-
-LDFLAGS=${ldflags}
-
-
- if test x${newlib_elix_level} = x0; then
- ELIX_LEVEL_0_TRUE=
- ELIX_LEVEL_0_FALSE='#'
-else
- ELIX_LEVEL_0_TRUE='#'
- ELIX_LEVEL_0_FALSE=
-fi
-
- if test x${newlib_elix_level} = x1; then
- ELIX_LEVEL_1_TRUE=
- ELIX_LEVEL_1_FALSE='#'
-else
- ELIX_LEVEL_1_TRUE='#'
- ELIX_LEVEL_1_FALSE=
-fi
-
- if test x${newlib_elix_level} = x2; then
- ELIX_LEVEL_2_TRUE=
- ELIX_LEVEL_2_FALSE='#'
-else
- ELIX_LEVEL_2_TRUE='#'
- ELIX_LEVEL_2_FALSE=
-fi
-
- if test x${newlib_elix_level} = x3; then
- ELIX_LEVEL_3_TRUE=
- ELIX_LEVEL_3_FALSE='#'
-else
- ELIX_LEVEL_3_TRUE='#'
- ELIX_LEVEL_3_FALSE=
-fi
-
- if test x${newlib_elix_level} = x4; then
- ELIX_LEVEL_4_TRUE=
- ELIX_LEVEL_4_FALSE='#'
-else
- ELIX_LEVEL_4_TRUE='#'
- ELIX_LEVEL_4_FALSE=
-fi
-
-
- if test x${use_libtool} = xyes; then
- USE_LIBTOOL_TRUE=
- USE_LIBTOOL_FALSE='#'
-else
- USE_LIBTOOL_TRUE='#'
- USE_LIBTOOL_FALSE=
-fi
-
-
-# Hard-code OBJEXT. Normally it is set by AC_OBJEXT, but we
-# use oext, which is set in configure.host based on the target platform.
-OBJEXT=${oext}
-
-
-
-
-
-
-
-
-
-
-
-ac_config_files="$ac_config_files Makefile"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
-
- (set) 2>&1 |
- case $as_nl`(ac_space=' '; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- # `set' does not quote correctly, so add quotes: double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \.
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;; #(
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-) |
- sed '
- /^ac_cv_env_/b end
- t clear
- :clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
- if test -w "$cache_file"; then
- test "x$cache_file" != "x/dev/null" &&
- { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
- cat confcache >$cache_file
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-#
-# If the first sed substitution is executed (which looks for macros that
-# take arguments), then branch to the quote section. Otherwise,
-# look for a macro that doesn't take arguments.
-ac_script='
-:mline
-/\\$/{
- N
- s,\\\n,,
- b mline
-}
-t clear
-:clear
-s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g
-t quote
-s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g
-t quote
-b any
-:quote
-s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g
-s/\[/\\&/g
-s/\]/\\&/g
-s/\$/$$/g
-H
-:any
-${
- g
- s/^\n//
- s/\n/ /g
- p
-}
-'
-DEFS=`sed -n "$ac_script" confdefs.h`
-
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
- # will be set to the directory where LIBOBJS objects are built.
- as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
- as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-if test -z "${MAY_SUPPLY_SYSCALLS_TRUE}" && test -z "${MAY_SUPPLY_SYSCALLS_FALSE}"; then
- as_fn_error "conditional \"MAY_SUPPLY_SYSCALLS\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- as_fn_error "conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- as_fn_error "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
- as_fn_error "conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${ELIX_LEVEL_0_TRUE}" && test -z "${ELIX_LEVEL_0_FALSE}"; then
- as_fn_error "conditional \"ELIX_LEVEL_0\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${ELIX_LEVEL_1_TRUE}" && test -z "${ELIX_LEVEL_1_FALSE}"; then
- as_fn_error "conditional \"ELIX_LEVEL_1\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${ELIX_LEVEL_2_TRUE}" && test -z "${ELIX_LEVEL_2_FALSE}"; then
- as_fn_error "conditional \"ELIX_LEVEL_2\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${ELIX_LEVEL_3_TRUE}" && test -z "${ELIX_LEVEL_3_FALSE}"; then
- as_fn_error "conditional \"ELIX_LEVEL_3\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${ELIX_LEVEL_4_TRUE}" && test -z "${ELIX_LEVEL_4_FALSE}"; then
- as_fn_error "conditional \"ELIX_LEVEL_4\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${USE_LIBTOOL_TRUE}" && test -z "${USE_LIBTOOL_FALSE}"; then
- as_fn_error "conditional \"USE_LIBTOOL\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
-: ${CONFIG_STATUS=./config.status}
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error ERROR [LINENO LOG_FD]
-# ---------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with status $?, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$?; test $as_status -eq 0 && as_status=1
- if test "$3"; then
- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
- fi
- $as_echo "$as_me: error: $1" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -p'
- fi
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by newlib $as_me 1.19.0, which was
-generated by GNU Autoconf 2.65. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration. Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
- -h, --help print this help, then exit
- -V, --version print version number and configuration settings, then exit
- --config print configuration, then exit
- -q, --quiet, --silent
- do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
-
-Configuration files:
-$config_files
-
-Configuration commands:
-$config_commands
-
-Report bugs to the package provider."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-newlib config.status 1.19.0
-configured by $0, generated by GNU Autoconf 2.65,
- with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2009 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-AWK='$AWK'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=*)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- *)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- $as_echo "$ac_cs_version"; exit ;;
- --config | --confi | --conf | --con | --co | --c )
- $as_echo "$ac_cs_config"; exit ;;
- --debug | --debu | --deb | --de | --d | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- as_fn_append CONFIG_FILES " '$ac_optarg'"
- ac_need_defaults=false;;
- --he | --h | --help | --hel | -h )
- $as_echo "$ac_cs_usage"; exit ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) as_fn_error "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
- *) as_fn_append ac_config_targets " $1"
- ac_need_defaults=false ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
- set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
- shift
- \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
- CONFIG_SHELL='$SHELL'
- export CONFIG_SHELL
- exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
- $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#
-# INIT-COMMANDS
-#
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
- case $ac_config_target in
- "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-
- *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
- esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
- tmp=
- trap 'exit_status=$?
- { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
-' 0
- trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
-} ||
-{
- tmp=./conf$$-$RANDOM
- (umask 077 && mkdir "$tmp")
-} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
- eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\r'
-else
- ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
-_ACEOF
-
-
-{
- echo "cat >conf$$subs.awk <<_ACEOF" &&
- echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
- echo "_ACEOF"
-} >conf$$subs.sh ||
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
- . ./conf$$subs.sh ||
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
-
- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
- if test $ac_delim_n = $ac_delim_num; then
- break
- elif $ac_last_try; then
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
- N
- s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
- for (key in S) S_is_set[key] = 1
- FS = ""
-
-}
-{
- line = $ 0
- nfields = split(line, field, "@")
- substed = 0
- len = length(field[1])
- for (i = 2; i < nfields; i++) {
- key = field[i]
- keylen = length(key)
- if (S_is_set[key]) {
- value = S[key]
- line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
- len += length(value) + length(field[++i])
- substed = 1
- } else
- len += 1 + keylen
- }
-
- print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
- sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
- cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
- || as_fn_error "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[ ]*\):*/\1/
-s/:*$//
-s/^[^=]*=[ ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-
-eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS"
-shift
-for ac_tag
-do
- case $ac_tag in
- :[FHLC]) ac_mode=$ac_tag; continue;;
- esac
- case $ac_mode$ac_tag in
- :[FHL]*:*);;
- :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
- :[FH]-) ac_tag=-:-;;
- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
- esac
- ac_save_IFS=$IFS
- IFS=:
- set x $ac_tag
- IFS=$ac_save_IFS
- shift
- ac_file=$1
- shift
-
- case $ac_mode in
- :L) ac_source=$1;;
- :[FH])
- ac_file_inputs=
- for ac_f
- do
- case $ac_f in
- -) ac_f="$tmp/stdin";;
- *) # Look for the file first in the build tree, then in the source tree
- # (if the path is not absolute). The absolute path cannot be DOS-style,
- # because $ac_f cannot contain `:'.
- test -f "$ac_f" ||
- case $ac_f in
- [\\/$]*) false;;
- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- esac ||
- as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
- esac
- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
- as_fn_append ac_file_inputs " '$ac_f'"
- done
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- configure_input='Generated from '`
- $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
- `' by configure.'
- if test x"$ac_file" != x-; then
- configure_input="$ac_file. $configure_input"
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
- fi
- # Neutralize special characters interpreted by sed in replacement strings.
- case $configure_input in #(
- *\&* | *\|* | *\\* )
- ac_sed_conf_input=`$as_echo "$configure_input" |
- sed 's/[\\\\&|]/\\\\&/g'`;; #(
- *) ac_sed_conf_input=$configure_input;;
- esac
-
- case $ac_tag in
- *:-:* | *:-) cat >"$tmp/stdin" \
- || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
- esac
- ;;
- esac
-
- ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir="$ac_dir"; as_fn_mkdir_p
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
- case $ac_mode in
- :F)
- #
- # CONFIG_FILE
- #
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
- esac
- ac_MKDIR_P=$MKDIR_P
- case $MKDIR_P in
- [\\/$]* | ?:[\\/]* ) ;;
- */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
- esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
- p
- q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- ac_datarootdir_hack='
- s&@datadir@&$datadir&g
- s&@docdir@&$docdir&g
- s&@infodir@&$infodir&g
- s&@localedir@&$localedir&g
- s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&2;}
-
- rm -f "$tmp/stdin"
- case $ac_file in
- -) cat "$tmp/out" && rm -f "$tmp/out";;
- *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
- esac \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
- ;;
-
-
- :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
- esac
-
-
- case $ac_file$ac_mode in
- "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
- # Autoconf 2.62 quotes --file arguments for eval, but not when files
- # are listed without --file. Let's play safe and only enable the eval
- # if we detect the quoting.
- case $CONFIG_FILES in
- *\'*) eval set x "$CONFIG_FILES" ;;
- *) set x $CONFIG_FILES ;;
- esac
- shift
- for mf
- do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
- dirpart=`$as_dirname -- "$mf" ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$mf" : 'X\(//\)[^/]' \| \
- X"$mf" : 'X\(//\)$' \| \
- X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`$as_dirname -- "$file" ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
- X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir=$dirpart/$fdir; as_fn_mkdir_p
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
- done
-}
- ;;
-
- esac
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
- as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit $?
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
diff --git a/newlib/libm/machine/spu/configure.in b/newlib/libm/machine/spu/configure.in
deleted file mode 100644
index cd8ac94d2..000000000
--- a/newlib/libm/machine/spu/configure.in
+++ /dev/null
@@ -1,14 +0,0 @@
-dnl This is the newlib/libc/machine/spu configure.in file.
-dnl Process this file with autoconf to produce a configure script.
-
-AC_PREREQ(2.59)
-AC_INIT([newlib],[NEWLIB_VERSION])
-AC_CONFIG_SRCDIR([Makefile.am])
-
-dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake.
-AC_CONFIG_AUX_DIR(../../../..)
-
-NEWLIB_CONFIGURE(../../..)
-
-AC_CONFIG_FILES([Makefile])
-AC_OUTPUT
diff --git a/newlib/libm/machine/spu/fe_dfl_env.c b/newlib/libm/machine/spu/fe_dfl_env.c
deleted file mode 100644
index 25b8a000f..000000000
--- a/newlib/libm/machine/spu/fe_dfl_env.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <fenv.h>
-/*
- * Define for FE_DFL_ENV macro, all bits zero.
- */
-const fenv_t __fe_dfl_env = { 0 };
diff --git a/newlib/libm/machine/spu/feclearexcept.c b/newlib/libm/machine/spu/feclearexcept.c
deleted file mode 100644
index fbec7addb..000000000
--- a/newlib/libm/machine/spu/feclearexcept.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/feclearexcept.h"
-
-void feclearexcept(int excepts)
-{
- _feclearexcept(excepts);
-}
diff --git a/newlib/libm/machine/spu/fegetenv.c b/newlib/libm/machine/spu/fegetenv.c
deleted file mode 100644
index 544877b7c..000000000
--- a/newlib/libm/machine/spu/fegetenv.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/fegetenv.h"
-
-void fegetenv(fenv_t *envp)
-{
- _fegetenv(envp);
-}
diff --git a/newlib/libm/machine/spu/fegetexceptflag.c b/newlib/libm/machine/spu/fegetexceptflag.c
deleted file mode 100644
index 0c98199f1..000000000
--- a/newlib/libm/machine/spu/fegetexceptflag.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/fegetexceptflag.h"
-
-void fegetexceptflag(fexcept_t *flagp, int excepts)
-{
- _fegetexceptflag(flagp, excepts);
-}
diff --git a/newlib/libm/machine/spu/fegetround.c b/newlib/libm/machine/spu/fegetround.c
deleted file mode 100644
index a810aeddf..000000000
--- a/newlib/libm/machine/spu/fegetround.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/fegetround.h"
-
-int fegetround()
-{
- return _fegetround();
-}
diff --git a/newlib/libm/machine/spu/feholdexcept.c b/newlib/libm/machine/spu/feholdexcept.c
deleted file mode 100644
index 57b57b11a..000000000
--- a/newlib/libm/machine/spu/feholdexcept.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/feholdexcept.h"
-
-int feholdexcept(fenv_t *envp)
-{
- return _feholdexcept(envp);
-}
diff --git a/newlib/libm/machine/spu/feraiseexcept.c b/newlib/libm/machine/spu/feraiseexcept.c
deleted file mode 100644
index 0a6946e0d..000000000
--- a/newlib/libm/machine/spu/feraiseexcept.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/feraiseexcept.h"
-
-void feraiseexcept(int excepts)
-{
- _feraiseexcept(excepts);
-}
diff --git a/newlib/libm/machine/spu/fesetenv.c b/newlib/libm/machine/spu/fesetenv.c
deleted file mode 100644
index 187511377..000000000
--- a/newlib/libm/machine/spu/fesetenv.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/fesetenv.h"
-
-void fesetenv(const fenv_t *envp)
-{
- _fesetenv(envp);
-}
diff --git a/newlib/libm/machine/spu/fesetexceptflag.c b/newlib/libm/machine/spu/fesetexceptflag.c
deleted file mode 100644
index 0312aed2c..000000000
--- a/newlib/libm/machine/spu/fesetexceptflag.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/fesetexceptflag.h"
-
-void fesetexceptflag(const fexcept_t *flagp, int excepts)
-{
- _fesetexceptflag(flagp, excepts);
-}
diff --git a/newlib/libm/machine/spu/fesetround.c b/newlib/libm/machine/spu/fesetround.c
deleted file mode 100644
index 8ad982286..000000000
--- a/newlib/libm/machine/spu/fesetround.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/fesetround.h"
-
-int fesetround(int rounding_mode)
-{
- return _fesetround(rounding_mode);
-}
diff --git a/newlib/libm/machine/spu/fetestexcept.c b/newlib/libm/machine/spu/fetestexcept.c
deleted file mode 100644
index 7e88f787e..000000000
--- a/newlib/libm/machine/spu/fetestexcept.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/fetestexcept.h"
-
-int fetestexcept(int excepts)
-{
- return _fetestexcept(excepts);
-}
diff --git a/newlib/libm/machine/spu/feupdateenv.c b/newlib/libm/machine/spu/feupdateenv.c
deleted file mode 100644
index 9198158ef..000000000
--- a/newlib/libm/machine/spu/feupdateenv.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/feupdateenv.h"
-
-void feupdateenv(const fenv_t *envp)
-{
- _feupdateenv(envp);
-}
diff --git a/newlib/libm/machine/spu/headers/acos.h b/newlib/libm/machine/spu/headers/acos.h
deleted file mode 100644
index feec8c329..000000000
--- a/newlib/libm/machine/spu/headers/acos.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "headers/acosd2.h"
-#include "headers/dom_chkd_negone_one.h"
-
-static __inline double _acos(double x)
-{
- double res;
- vector double vx;
-
- vx = spu_splats(x);
- res = spu_extract(_acosd2(vx), 0);
-#ifndef _IEEE_LIBM
- /*
- * Domain error if not in the interval [-1, +1]
- */
- dom_chkd_negone_one(vx);
-#endif
- return res;
-}
diff --git a/newlib/libm/machine/spu/headers/acosd2.h b/newlib/libm/machine/spu/headers/acosd2.h
deleted file mode 100644
index ec42b44e8..000000000
--- a/newlib/libm/machine/spu/headers/acosd2.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2006,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _ACOSD2_H_
-#define _ACOSD2_H_ 1
-
-#include "simdmath.h"
-#include <spu_intrinsics.h>
-#include "sqrtd2.h"
-#include "divd2.h"
-
-/*
- * FUNCTION
- * vector double _acosd2(vector double x)
- *
- * DESCRIPTION
- * Compute the arc cosine of the vector of double precision elements
- * specified by x, returning the resulting angles in radians. The input
- * elements are to be in the closed interval [-1, 1]. Values outside
- * this range result in a invalid operation execption being latched in
- * the FPSCR register and a NAN is returned.
- *
- * The basic algorithm computes the arc cosine using PI/2 - asind2(x).
- * However, as |x| approaches 1, there is a cancellation error in
- * subtracting asind2(x) from PI/2, so we simplify the evaluation
- * instead of layering acosd2 on top of asind2.
- *
- * This yields the basic algorithm of:
- *
- * absx = (x < 0.0) ? -x : x;
- *
- * if (absx > 0.5) {
- * if (x < 0) {
- * addend = SM_PI;
- * multiplier = -2.0;
- * } else {
- * addend = 0.0;
- * multiplier = 2.0;
- * }
- *
- * x = sqrt(-0.5 * absx + 0.5);
- * } else {
- * addend = SM_PI_2;
- * multiplier = -1.0;
- * }
- *
- * x2 = x * x;
- * x3 = x2 * x;
- *
- * p = ((((P5 * x2 + P4)*x2 + P3)*x2 + P2)*x2 + P1)*x2 + P0;
- *
- * q = ((((Q5 * x2 + Q4)*x2 + Q3)*x2 + Q2)*x2 + Q1)*x2 + Q0;;
- *
- * pq = p / q;
- *
- * result = (x3*pq + x)*multiplier - addend;
- *
- * Where P5-P0 and Q5-Q0 are the polynomial coeficients. See asind2
- * for additional details.
- */
-static __inline vector double _acosd2(vector double x)
-{
- vec_uint4 x_gt_half, x_eq_half;
- vec_double2 x_neg; // input x is negative
- vec_double2 x_abs; // absolute value of x
- vec_double2 x_trans; // transformed x when |x| > 0.5
- vec_double2 x2, x3; // x squared and x cubed, respectively.
- vec_double2 result;
- vec_double2 multiplier, addend;
- vec_double2 p, q, pq;
- vec_double2 half = spu_splats(0.5);
- vec_double2 sign = (vec_double2)spu_splats(0x8000000000000000ULL);
- vec_uchar16 splat_hi = ((vec_uchar16){0,1,2,3, 0,1,2,3, 8,9,10,11, 8,9,10,11});
-
- // Compute the absolute value of x
- x_abs = spu_andc(x, sign);
-
- // Perform transformation for the case where |x| > 0.5. We rely on
- // sqrtd2 producing a NAN is |x| > 1.0.
- x_trans = _sqrtd2(spu_nmsub(x_abs, half, half));
-
- // Determine the correct addend and multiplier.
- x_neg = (vec_double2)spu_rlmaska((vec_int4)spu_shuffle(x, x, splat_hi), -31);
-
- x_gt_half = spu_cmpgt((vec_uint4)x_abs, (vec_uint4)half);
- x_eq_half = spu_cmpeq((vec_uint4)x_abs, (vec_uint4)half);
- x_gt_half = spu_or(x_gt_half, spu_and(x_eq_half, spu_rlqwbyte(x_gt_half, 4)));
- x_gt_half = spu_shuffle(x_gt_half, x_gt_half, splat_hi);
-
- addend = spu_sel(spu_splats(SM_PI_2), spu_and(spu_splats(SM_PI), x_neg), (vec_ullong2)x_gt_half);
-
- multiplier = spu_sel(spu_splats(-1.0), spu_sel(spu_splats(2.0), x, (vec_ullong2)sign), (vec_ullong2)x_gt_half);
-
- // Select whether to use the x or the transformed x for the polygon evaluation.
- // if |x| > 0.5 use x_trans
- // else use x
-
- x = spu_sel(x, x_trans, (vec_ullong2)x_gt_half);
-
- // Compute the polynomials.
-
- x2 = spu_mul(x, x);
- x3 = spu_mul(x2, x);
-
- p = spu_madd(spu_splats(0.004253011369004428248960), x2, spu_splats(-0.6019598008014123785661));
- p = spu_madd(p, x2, spu_splats(5.444622390564711410273));
- p = spu_madd(p, x2, spu_splats(-16.26247967210700244449));
- p = spu_madd(p, x2, spu_splats(19.56261983317594739197));
- p = spu_madd(p, x2, spu_splats(-8.198089802484824371615));
-
- q = spu_add(x2, spu_splats(-14.74091372988853791896));
- q = spu_madd(q, x2, spu_splats(70.49610280856842141659));
- q = spu_madd(q, x2, spu_splats(-147.1791292232726029859));
- q = spu_madd(q, x2, spu_splats(139.5105614657485689735));
- q = spu_madd(q, x2, spu_splats(-49.18853881490881290097));
-
- // Compute the rational solution p/q and final multiplication and addend
- // correction.
- pq = _divd2(p, q);
-
- result = spu_madd(spu_madd(x3, pq, x), multiplier, addend);
-
- return (result);
-}
-
-#endif /* _ACOSD2_H_ */
-#endif /* __SPU__ */
-
diff --git a/newlib/libm/machine/spu/headers/acosf.h b/newlib/libm/machine/spu/headers/acosf.h
deleted file mode 100644
index 49ab628fc..000000000
--- a/newlib/libm/machine/spu/headers/acosf.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "headers/acosf4.h"
-#include "headers/dom_chkf_negone_one.h"
-
-static __inline float _acosf(float x)
-{
- float res;
- vector float vx;
-
- vx = spu_splats(x);
- res = spu_extract(_acosf4(vx), 0);
-#ifndef _IEEE_LIBM
- /*
- * Domain error if not in the interval [-1, +1]
- */
- dom_chkf_negone_one(vx);
-#endif
- return res;
-}
diff --git a/newlib/libm/machine/spu/headers/acosf4.h b/newlib/libm/machine/spu/headers/acosf4.h
deleted file mode 100644
index 4b76fda23..000000000
--- a/newlib/libm/machine/spu/headers/acosf4.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _ACOSF4_H_
-#define _ACOSF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "divf4.h"
-#include "sqrtf4.h"
-
-/*
- * FUNCTION
- * vector float _acosf4(vector float x)
- *
- * DESCRIPTION
- * The _acosf4 function computes the arc cosine for a vector of values x;
- * that is the values whose cosine is x. Results are undefined if x is
- * outside the range [-1, 1].
- *
- * RETURNS
- * The _acosf4 function returns the arc cosine in radians and the value is
- * mathematically defined to be in the range [0, pi].
- *
- */
-static __inline vector float _acosf4(vector float x)
-{
- vec_float4 zero = spu_splats(0.0f);
- vec_float4 half = spu_splats(0.5f);
- vec_float4 one = spu_splats(1.0f);
- vec_float4 two = spu_splats(2.0f);
- vec_float4 pi = spu_splats(3.1415925026e+00f);
- vec_float4 pio2_hi = spu_splats(1.5707962513e+00f);
- vec_float4 pio2_lo = spu_splats(7.5497894159e-08f);
-
- vec_float4 snan = (vec_float4)spu_splats((unsigned int)0x7FC00000);
- vec_uint4 denorm_threshold = spu_splats((unsigned int)0x23000000);
- vec_uint4 sign_mask = spu_splats((unsigned int)0x80000000);
-
-
- vec_float4 p0 = (vec_float4)spu_splats((unsigned int)0x3E2AAAAB);
- vec_float4 p1 = (vec_float4)spu_splats((unsigned int)0xBEA6B090);
- vec_float4 p2 = (vec_float4)spu_splats((unsigned int)0x3E4E0AA8);
- vec_float4 p3 = (vec_float4)spu_splats((unsigned int)0xBD241146);
- vec_float4 p4 = (vec_float4)spu_splats((unsigned int)0x3A4F7F04);
- vec_float4 p5 = (vec_float4)spu_splats((unsigned int)0x3811EF08);
-
- vec_float4 q1 = (vec_float4)spu_splats((unsigned int)0xC019D139);
- vec_float4 q2 = (vec_float4)spu_splats((unsigned int)0x4001572D);
- vec_float4 q3 = (vec_float4)spu_splats((unsigned int)0xBF303361);
- vec_float4 q4 = (vec_float4)spu_splats((unsigned int)0x3D9DC62E);
-
-
- vec_uint4 x_abs = spu_andc((vec_uint4)x,sign_mask);
- vec_uint4 x_pos = spu_cmpgt(sign_mask,(vec_uint4)x);
-
-
- vec_uint4 almost_half = spu_splats((unsigned int)0x3EFFFFFF);
- vec_uint4 sel0 = spu_nand(spu_splats((unsigned int)0xFFFFFFFF),spu_cmpgt(x_abs,almost_half));
- vec_uint4 sel1 = spu_andc(x_pos,sel0); // pos
-
- vec_float4 za = spu_sel(spu_sel(spu_add(one,x),spu_sub(one,x),sel1) ,x,sel0);
- vec_float4 zb = spu_sel(half,x,sel0);
-
- vec_float4 z = spu_mul(za,zb);
-
- vec_float4 p;
- p = spu_madd(z,p5,p4);
- p = spu_madd(p,z,p3);
- p = spu_madd(p,z,p2);
- p = spu_madd(p,z,p1);
- p = spu_madd(p,z,p0);
- p = spu_mul(p,z);
-
- vec_float4 q;
- q = spu_madd(z,q4,q3);
- q = spu_madd(q,z,q2);
- q = spu_madd(q,z,q1);
- q = spu_madd(q,z,one);
-
- // Only used by secondaries
- vec_float4 s = _sqrtf4(z);
-
- vec_float4 r = _divf4(p,q);
-
- vec_float4 w1 = spu_msub(r,s,pio2_lo);
-
-
- vec_float4 df = (vec_float4)spu_and((vec_uint4)s,0xFFFFF000);
- vec_float4 c = _divf4(spu_nmsub(df,df,z),spu_add(s,df));
- vec_float4 w2 = spu_madd(r,s,c);
-
- vec_float4 result0 = spu_sub(pio2_hi,spu_sub(x,spu_nmsub(x,r,pio2_lo)));
-
-
- vec_float4 result1 = spu_mul(two,spu_add(df,w2));
- vec_float4 result2 = spu_nmsub(two,spu_add(s,w1),pi);
-
-
- vec_float4 result;
-
- result = spu_sel(result2,result1,sel1);
- result = spu_sel(result,result0,sel0);
-
- // If |x|==1 then:
- // if x == 1, return 0
- // else return pi
-
- vec_uint4 abs_one = spu_cmpeq(x_abs,(vec_uint4)one);
- vec_uint4 out_of_bounds = spu_cmpgt(x_abs,(vec_uint4)one);
- vec_uint4 underflow = spu_cmpgt(denorm_threshold,x_abs);
-
-
-
- result = spu_sel(result,spu_sel(pi,zero,x_pos),abs_one);
-
- // If 1 < |x| then return sNaN
- result = spu_sel(result,snan,out_of_bounds);
-
- // If |x| < 2**-57, then return pi/2 (OFF BY 1 ULP)
- result = spu_sel(result,spu_add(pio2_hi,pio2_lo),underflow);
-
- return result;
-}
-
-#endif /* _ACOSF4_H_ */
-#endif /* __SPU__ */
-
-
diff --git a/newlib/libm/machine/spu/headers/acosh.h b/newlib/libm/machine/spu/headers/acosh.h
deleted file mode 100644
index d84708a30..000000000
--- a/newlib/libm/machine/spu/headers/acosh.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "headers/acoshd2.h"
-#include "headers/dom_chkd_less_than.h"
-
-static __inline double _acosh(double x)
-{
- double res;
- vector double vx;
- vector double vc = { 1.0, 1.0 };
-
- vx = spu_promote(x, 0);
- res = spu_extract(_acoshd2(vx), 0);
-#ifndef _IEEE_LIBM
- dom_chkd_less_than(vx, vc);
-#endif
- return res;
-}
diff --git a/newlib/libm/machine/spu/headers/acoshd2.h b/newlib/libm/machine/spu/headers/acoshd2.h
deleted file mode 100644
index a60eaccb6..000000000
--- a/newlib/libm/machine/spu/headers/acoshd2.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _ACOSHD2_H_
-#define _ACOSHD2_H_ 1
-
-#include <spu_intrinsics.h>
-#include "logd2.h"
-#include "sqrtd2.h"
-
-/*
- * FUNCTION
- * vector double _acoshd2(vector double x)
- *
- * DESCRIPTION
- * The acoshd2 function returns a vector containing the hyperbolic
- * arccosines of the corresponding elements of the input vector.
- *
- * We are using the formula:
- * acosh = ln(x + sqrt(x^2 - 1))
- *
- * For x near one, we use the Taylor series:
- *
- * infinity
- * ------
- * - '
- * - k
- * acosh x = - C (x - 1)
- * - k
- * - ,
- * ------
- * k = 0
- *
- *
- * Special Cases:
- * - acosh(1) = +0
- * - acosh(NaN) = NaN
- * - acosh(Infinity) = Infinity
- * - acosh(x < 1) = NaN
- *
- */
-
-/*
- * Taylor Series Coefficients
- * for x around 1.
- */
-#define SDM_ACOSHD2_TAY01 1.000000000000000000000000000000000E0 /* 1 / 1 */
-#define SDM_ACOSHD2_TAY02 -8.333333333333333333333333333333333E-2 /* 1 / 12 */
-#define SDM_ACOSHD2_TAY03 1.875000000000000000000000000000000E-2 /* 3 / 160 */
-#define SDM_ACOSHD2_TAY04 -5.580357142857142857142857142857142E-3 /* 5 / 896 */
-#define SDM_ACOSHD2_TAY05 1.898871527777777777777777777777777E-3 /* 35 / 18432 */
-#define SDM_ACOSHD2_TAY06 -6.991299715909090909090909090909090E-4 /* 63 / 90112 */
-#define SDM_ACOSHD2_TAY07 2.711369441105769230769230769230769E-4 /* 231 / 851968 */
-#define SDM_ACOSHD2_TAY08 -1.091003417968750000000000000000000E-4 /* 143 / 1310720 */
-#define SDM_ACOSHD2_TAY09 4.512422225054572610294117647058823E-5 /* 6435 / 142606336 */
-#define SDM_ACOSHD2_TAY10 -1.906564361170718544407894736842105E-5 /* 12155 / 637534208 */
-#define SDM_ACOSHD2_TAY11 8.193687314078921363467261904761904E-6 /* 46189 / 5637144576 */
-#define SDM_ACOSHD2_TAY12 -3.570569274218186088230298913043478E-6 /* 88179 / 24696061952 */
-#define SDM_ACOSHD2_TAY13 1.574025955051183700561523437500000E-6 /* 676039 / 429496729600 */
-#define SDM_ACOSHD2_TAY14 -7.006881922414457356488263165509259E-7 /* 1300075 / 1855425871872 */
-#define SDM_ACOSHD2_TAY15 3.145330616650332150788142763335129E-7 /* 5014575 / 15942918602752 */
-
-static __inline vector double _acoshd2(vector double x)
-{
- vec_uchar16 dup_even = ((vec_uchar16) { 0,1,2,3, 0,1,2,3, 8,9,10,11, 8,9,10,11 });
- vec_double2 minus_oned = spu_splats(-1.0);
- vec_double2 twod = spu_splats(2.0);
- /* Where we switch from taylor to formula */
- vec_float4 switch_approx = spu_splats(1.15f);
- vec_double2 result, fresult, mresult;;
-
-
- vec_double2 xminus1 = spu_add(x, minus_oned);
- vec_float4 xf = spu_roundtf(x);
- xf = spu_shuffle(xf, xf, dup_even);
-
- vec_ullong2 use_form = (vec_ullong2)spu_cmpgt(xf, switch_approx);
-
- vec_double2 sqrtargformula = spu_madd(x, x, minus_oned);
- vec_double2 sqrtargtaylor = spu_mul(xminus1, twod);
- vec_double2 sqrtarg = spu_sel(sqrtargtaylor, sqrtargformula, use_form);
-
- vec_double2 sqrtresult = _sqrtd2(sqrtarg);
-
- /*
- * Formula:
- * acosh = ln(x + sqrt(x^2 - 1))
- */
- fresult = spu_add(x, sqrtresult);
- fresult = _logd2(fresult);
-
- /*
- * Taylor Series
- */
- mresult = spu_splats(SDM_ACOSHD2_TAY15);
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHD2_TAY14));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHD2_TAY13));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHD2_TAY12));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHD2_TAY11));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHD2_TAY10));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHD2_TAY09));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHD2_TAY08));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHD2_TAY07));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHD2_TAY06));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHD2_TAY05));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHD2_TAY04));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHD2_TAY03));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHD2_TAY02));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHD2_TAY01));
-
-
- mresult = spu_mul(mresult, sqrtresult);
-
-
- /*
- * Select series or formula
- */
- result = spu_sel(mresult, fresult, use_form);
-
- return result;
-}
-
-#endif /* _ACOSHD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/acoshf.h b/newlib/libm/machine/spu/headers/acoshf.h
deleted file mode 100644
index 537706c8a..000000000
--- a/newlib/libm/machine/spu/headers/acoshf.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "headers/acoshf4.h"
-#include "headers/dom_chkf_less_than.h"
-
-static __inline float _acoshf(float x)
-{
- float res;
- vector float vx;
- vector float vc = { 1.0, 1.0, 1.0, 1.0 };
-
- vx = spu_promote(x, 0);
- res = spu_extract(_acoshf4(vx), 0);
-#ifndef _IEEE_LIBM
- dom_chkf_less_than(vx, vc);
-#endif
- return res;
-}
diff --git a/newlib/libm/machine/spu/headers/acoshf4.h b/newlib/libm/machine/spu/headers/acoshf4.h
deleted file mode 100644
index 4a364b640..000000000
--- a/newlib/libm/machine/spu/headers/acoshf4.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _ACOSHF4_H_
-#define _ACOSHF4_H_ 1
-
-#include <spu_intrinsics.h>
-#include "logf4.h"
-#include "sqrtf4.h"
-
-/*
- * FUNCTION
- * vector float _acoshf4(vector float x)
- *
- * DESCRIPTION
- * The acoshf4 function returns a vector containing the hyperbolic
- * arccosines of the corresponding elements of the input vector.
- *
- * We are using the formula:
- * acosh = ln(x + sqrt(x^2 - 1))
- *
- * For x near one, we use the Taylor series:
- *
- * infinity
- * ------
- * - '
- * - k
- * acosh x = - C (x - 1)
- * - k
- * - ,
- * ------
- * k = 0
- *
- *
- * Special Cases:
- * - acosh(1) = +0
- * - NaNs and Infinity aren't supported for single-precision on SPU.
- *
- */
-
-/*
- * Taylor Series Coefficients
- * for x around 1.
- */
-#define SDM_ACOSHF4_TAY01 1.00000000000000000000000000000000000E0f /* 1 / 1 */
-#define SDM_ACOSHF4_TAY02 -8.33333333333333333333333333333333333E-2f /* 1 / 12 */
-#define SDM_ACOSHF4_TAY03 1.87500000000000000000000000000000000E-2f /* 3 / 160 */
-#define SDM_ACOSHF4_TAY04 -5.58035714285714285714285714285714286E-3f /* 5 / 896 */
-#define SDM_ACOSHF4_TAY05 1.89887152777777777777777777777777778E-3f /* 35 / 18432 */
-#define SDM_ACOSHF4_TAY06 -6.99129971590909090909090909090909091E-4f /* 63 / 90112 */
-#define SDM_ACOSHF4_TAY07 2.71136944110576923076923076923076923E-4f /* 231 / 851968 */
-#define SDM_ACOSHF4_TAY08 -1.09100341796875000000000000000000000E-4f /* 143 / 1310720 */
-#define SDM_ACOSHF4_TAY09 4.51242222505457261029411764705882353E-5f /* 6435 / 142606336 */
-#define SDM_ACOSHF4_TAY10 -1.90656436117071854440789473684210526E-5f /* 12155 / 637534208 */
-#define SDM_ACOSHF4_TAY11 8.19368731407892136346726190476190476E-6f /* 46189 / 5637144576 */
-#define SDM_ACOSHF4_TAY12 -3.57056927421818608823029891304347826E-6f /* 88179 / 24696061952 */
-#define SDM_ACOSHF4_TAY13 1.57402595505118370056152343750000000E-6f /* 676039 / 429496729600 */
-#define SDM_ACOSHF4_TAY14 -7.00688192241445735648826316550925926E-7f /* 1300075 / 1855425871872 */
-#define SDM_ACOSHF4_TAY15 3.14533061665033215078814276333512931E-7f /* 5014575 / 15942918602752 */
-#if 0
-#define SDM_ACOSHF4_TAY16 -1.42216292935641362301764949675529234E-7f /* 9694845 / 68169720922112 */
-#define SDM_ACOSHF4_TAY17 6.47111067761133282064375552264126864E-8f /* 100180065 / 1548112371908608 */
-#define SDM_ACOSHF4_TAY18 -2.96094097811711825280716376645224435E-8f /* 116680311 / 3940649673949184 */
-#define SDM_ACOSHF4_TAY19 1.36154380562817937676005090612011987E-8f /* 2268783825 / 166633186212708352 */
-#endif
-
-
-
-static __inline vector float _acoshf4(vector float x)
-{
- vec_float4 minus_onef = spu_splats(-1.0f);
- vec_float4 twof = spu_splats(2.0f);
- vec_float4 largef = spu_splats(2.5e19f);
- vec_float4 xminus1;
- /* Where we switch from taylor to formula */
- vec_float4 switch_approx = spu_splats(2.0f);
- vec_uint4 use_form;
- vec_float4 result, fresult, mresult;;
-
-
- /*
- * Formula:
- * acosh = ln(x + sqrt(x^2 - 1))
- */
- fresult = _sqrtf4(spu_madd(x, x, minus_onef));
- fresult = spu_add(x, spu_sel(fresult, x, spu_cmpgt(x, largef)));
- fresult = _logf4(fresult);
- fresult = (vec_float4)spu_add((vec_uint4)fresult, spu_splats(2u));
-
- /*
- * Taylor Series
- */
- xminus1 = spu_add(x, minus_onef);
-
- mresult = spu_splats(SDM_ACOSHF4_TAY15);
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHF4_TAY14));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHF4_TAY13));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHF4_TAY12));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHF4_TAY11));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHF4_TAY10));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHF4_TAY09));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHF4_TAY08));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHF4_TAY07));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHF4_TAY06));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHF4_TAY05));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHF4_TAY04));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHF4_TAY03));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHF4_TAY02));
- mresult = spu_madd(xminus1, mresult, spu_splats(SDM_ACOSHF4_TAY01));
-
- mresult = spu_mul(mresult, _sqrtf4(spu_mul(xminus1, twof)));
- mresult = (vec_float4)spu_add((vec_uint4)mresult, spu_splats(1u));
-
- /*
- * Select series or formula
- */
- use_form = spu_cmpgt(x, switch_approx);
- result = spu_sel(mresult, fresult, use_form);
-
-
- return result;
-}
-
-#endif /* _ACOSHF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/asin.h b/newlib/libm/machine/spu/headers/asin.h
deleted file mode 100644
index 881e532bc..000000000
--- a/newlib/libm/machine/spu/headers/asin.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "headers/asind2.h"
-#include "headers/dom_chkd_negone_one.h"
-
-static __inline double _asin(double x)
-{
- double res;
- vector double vx;
-
- vx = spu_splats(x);
- res = spu_extract(_asind2(vx), 0);
-#ifndef _IEEE_LIBM
- /*
- * Domain error if not in the interval [-1, +1]
- */
- dom_chkd_negone_one(vx);
-#endif
- return res;
-}
diff --git a/newlib/libm/machine/spu/headers/asind2.h b/newlib/libm/machine/spu/headers/asind2.h
deleted file mode 100644
index 8f4564410..000000000
--- a/newlib/libm/machine/spu/headers/asind2.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2006,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-
-#ifdef __SPU__
-
-#ifndef _ASIND2_H_
-#define _ASIND2_H_ 1
-
-#include "simdmath.h"
-#include <spu_intrinsics.h>
-#include "sqrtd2.h"
-#include "divd2.h"
-
-
-
-/*
- * FUNCTION
- * vector double _asind2(vector double x)
- *
- * DESCRIPTION
- * Compute the arc sine of the vector of double precision elements
- * specified by x, returning the resulting angles in radians. The input
- * elements are to be in the closed interval [-1, 1]. Values outside
- * this range result in a invalid operation execption being latched in
- * the FPSCR register and a NAN is returned.
- *
- * The basic algorithm computes the arc sine using a rational polynomial
- * of the form x + x^3 * P(x^2) / Q(x^2) for inputs |x| in the interval
- * [0, 0.5]. Values outsize this range are transformed as by:
- *
- * asin(x) = PI/2 - 2*asin(sqrt((1-x)/2)) for x in the range (0.5, 1.0]
- *
- * asin(x) = -PI/2 + 2*asin(sqrt((1+x)/2)) for x in the range [-1.0, -0.5)
- *
- * This yields the basic algorithm of:
- *
- * absx = (x < 0.0) ? -x : x;
- *
- * if (absx > 0.5) {
- * if (x < 0) {
- * addend = -SM_PI_2;
- * multiplier = -2.0;
- * } else {
- * addend = SM_PI_2;
- * multiplier = 2.0;
- * }
- *
- * x = sqrt(-0.5 * absx + 0.5);
- * } else {
- * addend = 0.0;
- * multiplier = 1.0;
- * }
- *
- * x2 = x * x;
- * x3 = x2 * x;
- *
- * p = ((((P5 * x2 + P4)*x2 + P3)*x2 + P2)*x2 + P1)*x2 + P0;
- *
- * q = ((((Q5 * x2 + Q4)*x2 + Q3)*x2 + Q2)*x2 + Q1)*x2 + Q0;;
- *
- * pq = p / q;
- *
- * result = addend - (x3*pq + x)*multiplier;
- *
- * Where P5-P0 and Q5-Q0 are the polynomial coeficients.
- */
-static __inline vector double _asind2(vector double x)
-{
- vec_uint4 x_gt_half, x_eq_half;
- vec_double2 x_abs; // absolute value of x
- vec_double2 x_trans; // transformed x when |x| > 0.5
- vec_double2 x2, x3; // x squared and x cubed, respectively.
- vec_double2 result;
- vec_double2 multiplier, addend;
- vec_double2 p, q, pq;
- vec_double2 half = spu_splats(0.5);
- vec_double2 sign = (vec_double2)spu_splats(0x8000000000000000ULL);
- vec_uchar16 splat_hi = ((vec_uchar16){0,1,2,3, 0,1,2,3, 8,9,10,11, 8,9,10,11});
-
- // Compute the absolute value of x
- x_abs = spu_andc(x, sign);
-
- // Perform transformation for the case where |x| > 0.5. We rely on
- // sqrtd2 producing a NAN is |x| > 1.0.
- x_trans = _sqrtd2(spu_nmsub(x_abs, half, half));
-
- // Determine the correct addend and multiplier.
- x_gt_half = spu_cmpgt((vec_uint4)x_abs, (vec_uint4)half);
- x_eq_half = spu_cmpeq((vec_uint4)x_abs, (vec_uint4)half);
- x_gt_half = spu_or(x_gt_half, spu_and(x_eq_half, spu_rlqwbyte(x_gt_half, 4)));
- x_gt_half = spu_shuffle(x_gt_half, x_gt_half, splat_hi);
-
- addend = spu_and(spu_sel(spu_splats((double)SM_PI_2), x, (vec_ullong2)sign), (vec_double2)x_gt_half);
-
- multiplier = spu_sel(spu_splats(-1.0), spu_sel(spu_splats(2.0), x, (vec_ullong2)sign), (vec_ullong2)x_gt_half);
-
- // Select whether to use the x or the transformed x for the polygon evaluation.
- // if |x| > 0.5 use x_trans
- // else use x
-
- x = spu_sel(x, x_trans, (vec_ullong2)x_gt_half);
-
- // Compute the polynomials.
-
- x2 = spu_mul(x, x);
- x3 = spu_mul(x2, x);
-
- p = spu_madd(spu_splats(0.004253011369004428248960), x2, spu_splats(-0.6019598008014123785661));
- p = spu_madd(p, x2, spu_splats(5.444622390564711410273));
- p = spu_madd(p, x2, spu_splats(-16.26247967210700244449));
- p = spu_madd(p, x2, spu_splats(19.56261983317594739197));
- p = spu_madd(p, x2, spu_splats(-8.198089802484824371615));
-
- q = spu_add(x2, spu_splats(-14.74091372988853791896));
- q = spu_madd(q, x2, spu_splats(70.49610280856842141659));
- q = spu_madd(q, x2, spu_splats(-147.1791292232726029859));
- q = spu_madd(q, x2, spu_splats(139.5105614657485689735));
- q = spu_madd(q, x2, spu_splats(-49.18853881490881290097));
-
- // Compute the rational solution p/q and final multiplication and addend
- // correction.
- pq = _divd2(p, q);
-
- result = spu_nmsub(spu_madd(x3, pq, x), multiplier, addend);
-
- return (result);
-}
-
-#endif /* _ASIND2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/asinf.h b/newlib/libm/machine/spu/headers/asinf.h
deleted file mode 100644
index cb468ecec..000000000
--- a/newlib/libm/machine/spu/headers/asinf.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "headers/asinf4.h"
-#include "headers/dom_chkf_negone_one.h"
-
-static __inline float _asinf(float x)
-{
- float res;
- vector float vx;
-
- vx = spu_splats(x);
- res = spu_extract(_asinf4(vx), 0);
-#ifndef _IEEE_LIBM
- /*
- * Domain error if not in the interval [-1, +1]
- */
- dom_chkf_negone_one(vx);
-#endif
- return res;
-}
diff --git a/newlib/libm/machine/spu/headers/asinf4.h b/newlib/libm/machine/spu/headers/asinf4.h
deleted file mode 100644
index e9db1408b..000000000
--- a/newlib/libm/machine/spu/headers/asinf4.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _ASINF4_H_
-#define _ASINF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "divf4.h"
-#include "sqrtf4.h"
-
-/*
- * FUNCTION
- * vector float _asinf4(vector float x)
- *
- * DESCRIPTION
- * The _asinf4 function computes the arc sine for a vector of values x;
- * that is the values whose sine is x. Results are undefined if x is
- * outside the range [-1, 1].
- *
- */
-static __inline vector float _asinf4(vector float x)
-{
- /* The arcsin is computed using two different algorithms, depending
- * upon the absolute value of the input. For inputs in the range
- * [0, PI/4], it is computed as the ratio of two polynomials.
- *
- * asin(x) = p/q;
- *
- * where p = P11*x^11 + P09*x^9 + P07*x^7 + P05*x^5 + P03*x3 + x
- * q = Q08*x^8 + Q06*x^6 + Q04*x^4 + Q02*x^2 + Q00
- *
- * For the range of value [PI/4, 1], the arcsin is computed using:
- *
- * asin = PI/2 - sqrt(1 - x) * r;
- *
- * where r = C07*x^7 + C06*x^6 + C05*x^5 + C04*x^4 + C03*x^3 + C02*x^2
- * C01*x + C00;
- */
- vector float r, r1, r2, r_hi, r_lo;
- vector float xabs, x2, x4, x6;
- vector float p, p_hi, p_lo;
- vector float q, q_hi, q_lo;
- vector float pi_over_2 = spu_splats(1.5707963267949f);
- vector float pi_over_4 = spu_splats(0.7853981633974f);
- vector unsigned int msb = spu_splats(0x80000000);
-
-
- x2 = spu_mul(x, x);
- x4 = spu_mul(x2, x2);
- x6 = spu_mul(x4, x2);
-
- xabs = spu_andc(x, (vector float)msb);
-
- /* Compute arc-sin for values in the range [0, PI/4]
- */
- p_hi = spu_madd(spu_splats(0.0000347933107596021167570f), x2,
- spu_splats(0.000791534994289814532176f));
- p_hi = spu_madd(p_hi, x2, spu_splats(-0.0400555345006794114027f));
-
- p_lo = spu_madd(spu_splats(0.201212532134862925881f), x2,
- spu_splats(-0.325565818622400915405f));
- p_lo = spu_madd(p_lo, x2, spu_splats(0.166666666666666657415f));
-
- p = spu_madd(p_hi, x6, p_lo);
-
- q_hi = spu_madd(spu_splats(0.0770381505559019352791f), x2,
- spu_splats(-0.688283971605453293030f));
- q_hi = spu_madd(q_hi, x2, spu_splats(2.02094576023350569471f));
-
- q_lo = spu_madd(spu_splats(-2.40339491173441421878f), x2,
- spu_splats(1.0f));
-
- q = spu_madd(q_hi, x4, q_lo);
-
- r1 = spu_madd(_divf4(p, q), spu_mul(xabs, x2), xabs);
-
- /* Compute arc-sin for values in the range [PI/4, 1]
- */
- r_hi = spu_madd(spu_splats(-0.0012624911f), xabs,
- spu_splats(0.0066700901f));
- r_hi = spu_madd(r_hi, xabs, spu_splats(-0.0170881256f));
- r_hi = spu_madd(r_hi, xabs, spu_splats(0.0308918810f));
-
- r_lo = spu_madd(spu_splats(-0.0501743046f), xabs,
- spu_splats(0.0889789874f));
- r_lo = spu_madd(r_lo, xabs, spu_splats(-0.2145988016f));
- r_lo = spu_madd(r_lo, xabs, pi_over_2);
-
- r = spu_madd(r_hi, x4, r_lo);
-
- r2 = spu_nmsub(r, _sqrtf4(spu_sub(spu_splats(1.0f), xabs)),
- pi_over_2);
-
- /* Select the result depending upon the input value. Correct the
- * sign of the result.
- */
- return (spu_sel(spu_sel(r1, r2, spu_cmpgt(xabs, pi_over_4)),
- x, msb));
-}
-
-#endif /* _ASINF4_H_ */
-#endif /* __SPU__ */
-
-
diff --git a/newlib/libm/machine/spu/headers/asinh.h b/newlib/libm/machine/spu/headers/asinh.h
deleted file mode 100644
index b80a79a6a..000000000
--- a/newlib/libm/machine/spu/headers/asinh.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/asinhd2.h"
-
-static __inline double _asinh(double x)
-{
- return spu_extract(_asinhd2(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/asinhd2.h b/newlib/libm/machine/spu/headers/asinhd2.h
deleted file mode 100644
index 8a0b97c4d..000000000
--- a/newlib/libm/machine/spu/headers/asinhd2.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _ASINHD2_H_
-#define _ASINHD2_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "logd2.h"
-#include "sqrtd2.h"
-
-/*
- * FUNCTION
- * vector double _asinhd2(vector double x)
- *
- * DESCRIPTION
- * The asinhd2 function returns a vector containing the hyperbolic
- * arcsines of the corresponding elements of the input vector.
- *
- * We are using the formula:
- * asinh = ln(|x| + sqrt(x^2 + 1))
- * and the anti-symmetry of asinh.
- *
- * For x near zero, we use the Taylor series:
- *
- * infinity
- * ------
- * - ' P (0)
- * - k-1 k
- * asinh x = - ----- x
- * - k
- * - ,
- * ------
- * k = 1
- *
- * Special Cases:
- * asinh(+0) returns +0
- * asinh(-0) returns -0
- * asinh(+infinity) returns +infinity
- * asinh(-infinity) returns -infinity
- * asinh(NaN) returns NaN
- *
- */
-
-/*
- * Maclaurin Series Coefficients
- * for x near 0.
- */
-#define SDM_ASINHD2_MAC01 1.000000000000000000000000000000000000000000E0
-#define SDM_ASINHD2_MAC03 -1.666666666666666666666666666666666666666667E-1
-#define SDM_ASINHD2_MAC05 7.500000000000000000000000000000000000000000E-2
-#define SDM_ASINHD2_MAC07 -4.464285714285714285714285714285714285714286E-2
-#define SDM_ASINHD2_MAC09 3.038194444444444444444444444444444444444444E-2
-#define SDM_ASINHD2_MAC11 -2.237215909090909090909090909090909090909091E-2
-#define SDM_ASINHD2_MAC13 1.735276442307692307692307692307692307692308E-2
-#define SDM_ASINHD2_MAC15 -1.396484375000000000000000000000000000000000E-2
-#define SDM_ASINHD2_MAC17 1.155180089613970588235294117647058823529412E-2
-
-
-static __inline vector double _asinhd2(vector double x)
-{
- vec_double2 sign_mask = spu_splats(-0.0);
- vec_double2 oned = spu_splats(1.0);
- vec_uchar16 dup_even = ((vec_uchar16) { 0,1,2,3, 0,1,2,3, 8,9,10,11, 8,9,10,11 });
- vec_uint4 infminus1 = spu_splats(0x7FEFFFFFU);
- vec_uint4 isinfnan;
- vec_double2 xabs, xsqu;
- vec_uint4 xabshigh;
- vec_float4 switch_approx = spu_splats(0.165f); /* Where we switch from maclaurin to formula */
- vec_uint4 use_form;
- vec_float4 xf;
- vec_double2 result, fresult, mresult;
-
-
- xabs = spu_andc(x, sign_mask);
- xsqu = spu_mul(x, x);
-
- xf = spu_roundtf(xabs);
- xf = spu_shuffle(xf, xf, dup_even);
-
- /*
- * Formula:
- * asinh = ln(|x| + sqrt(x^2 + 1))
- */
- fresult = _sqrtd2(spu_add(xsqu, oned));
- fresult = spu_add(xabs, fresult);
- fresult = _logd2(fresult);
-
-
- /*
- * Maclaurin Series approximation
- */
-
- mresult = spu_splats(SDM_ASINHD2_MAC17);
- mresult = spu_madd(xsqu, mresult, spu_splats(SDM_ASINHD2_MAC15));
- mresult = spu_madd(xsqu, mresult, spu_splats(SDM_ASINHD2_MAC13));
- mresult = spu_madd(xsqu, mresult, spu_splats(SDM_ASINHD2_MAC11));
- mresult = spu_madd(xsqu, mresult, spu_splats(SDM_ASINHD2_MAC09));
- mresult = spu_madd(xsqu, mresult, spu_splats(SDM_ASINHD2_MAC07));
- mresult = spu_madd(xsqu, mresult, spu_splats(SDM_ASINHD2_MAC05));
- mresult = spu_madd(xsqu, mresult, spu_splats(SDM_ASINHD2_MAC03));
- mresult = spu_madd(xsqu, mresult, spu_splats(SDM_ASINHD2_MAC01));
- mresult = spu_mul(xabs, mresult);
-
-
- /*
- * Choose between series and formula
- */
- use_form = spu_cmpgt(xf, switch_approx);
- result = spu_sel(mresult, fresult, (vec_ullong2)use_form);
-
-
- /* Special Cases */
-
- /* Infinity and NaN */
- xabshigh = (vec_uint4)spu_shuffle(xabs, xabs, dup_even);
- isinfnan = spu_cmpgt(xabshigh, infminus1);
- result = spu_sel(result, x, (vec_ullong2)isinfnan);
-
-
- /* Restore sign - asinh is an anti-symmetric */
- result = spu_sel(result, x, (vec_ullong2)sign_mask);
-
- return result;
-}
-
-#endif /* _ASINHD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/asinhf.h b/newlib/libm/machine/spu/headers/asinhf.h
deleted file mode 100644
index 6abd16e2e..000000000
--- a/newlib/libm/machine/spu/headers/asinhf.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/asinhf4.h"
-
-static __inline float _asinhf(float x)
-{
- return spu_extract(_asinhf4(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/asinhf4.h b/newlib/libm/machine/spu/headers/asinhf4.h
deleted file mode 100644
index 95feb0fe2..000000000
--- a/newlib/libm/machine/spu/headers/asinhf4.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _ASINHF4_H_
-#define _ASINHF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "logf4.h"
-#include "sqrtf4.h"
-
-/*
- * FUNCTION
- * vector float _asinhf4(vector float x)
- *
- * DESCRIPTION
- * The asinhf4 function returns a vector containing the hyperbolic
- * arcsines of the corresponding elements of the input vector.
- *
- * We are using the formula:
- * asinh = ln(|x| + sqrt(x^2 + 1))
- * and the anti-symmetry of asinh.
- *
- * For x near zero, we use the Taylor series:
- *
- * infinity
- * ------
- * - ' P (0)
- * - k-1 k
- * asinh x = - ----- x
- * - k
- * - ,
- * ------
- * k = 1
- *
- * Special Cases:
- * - asinh(+0) returns +0
- * - asinh(-0) returns -0
- * - Normally, asinh(+/- infinity) returns +/- infinity,
- * but on the SPU, single-precision infinity is not supported,
- * so it is treated as a normal number here.
- *
- */
-
-/*
- * Maclaurin Series Coefficients
- * for x near 0.
- */
-#define ASINH_MAC01 1.0000000000000000000000000000000000000000000000000000000000000000000000E0
-#define ASINH_MAC03 -1.6666666666666666666666666666666666666666666666666666666666666666666667E-1
-#define ASINH_MAC05 7.5000000000000000000000000000000000000000000000000000000000000000000000E-2
-#define ASINH_MAC07 -4.4642857142857142857142857142857142857142857142857142857142857142857143E-2
-#define ASINH_MAC09 3.0381944444444444444444444444444444444444444444444444444444444444444444E-2
-#define ASINH_MAC11 -2.2372159090909090909090909090909090909090909090909090909090909090909091E-2
-#define ASINH_MAC13 1.7352764423076923076923076923076923076923076923076923076923076923076923E-2
-#define ASINH_MAC15 -1.3964843750000000000000000000000000000000000000000000000000000000000000E-2
-#define ASINH_MAC17 1.1551800896139705882352941176470588235294117647058823529411764705882353E-2
-#define ASINH_MAC19 -9.7616095291940789473684210526315789473684210526315789473684210526315789E-3
-#define ASINH_MAC21 8.3903358096168154761904761904761904761904761904761904761904761904761905E-3
-#define ASINH_MAC23 -7.3125258735988451086956521739130434782608695652173913043478260869565217E-3
-#define ASINH_MAC25 6.4472103118896484375000000000000000000000000000000000000000000000000000E-3
-#define ASINH_MAC27 -5.7400376708419234664351851851851851851851851851851851851851851851851852E-3
-#define ASINH_MAC29 5.1533096823199041958512931034482758620689655172413793103448275862068966E-3
-#define ASINH_MAC31 -4.6601434869150961599042338709677419354838709677419354838709677419354839E-3
-#if 0
-#define ASINH_MAC33 4.2409070936793630773370916193181818181818181818181818181818181818181818E-3
-#define ASINH_MAC35 -3.8809645588376692363194056919642857142857142857142857142857142857142857E-3
-#define ASINH_MAC37 3.5692053938259345454138678473395270270270270270270270270270270270270270E-3
-#define ASINH_MAC39 -3.2970595034734847453924325796274038461538461538461538461538461538461538E-3
-#define ASINH_MAC41 3.0578216492580306693548109473251714939024390243902439024390243902439024E-3
-#define ASINH_MAC43 -2.8461784011089421678767647854117460029069767441860465116279069767441860E-3
-#endif
-
-
-static __inline vector float _asinhf4(vector float x)
-{
- vec_float4 sign_mask = spu_splats(-0.0f);
- vec_float4 onef = spu_splats(1.0f);
- vec_uint4 oneu = spu_splats(1u);
- vec_uint4 twou = spu_splats(2u);
- vec_uint4 threeu = spu_splats(3u);
- vec_float4 ln2 = spu_splats(6.931471805599453094172321E-1f);
- vec_float4 largef = spu_splats(9.21e18f);
- vec_float4 result, fresult, mresult;
- vec_float4 xabs, xsqu;
- /* Where we switch from maclaurin to formula */
- vec_float4 switch_approx = spu_splats(0.74f);
- vec_float4 trunc_part2 = spu_splats(20.0f);
- vec_uint4 truncadd;
- vec_uint4 islarge;
- vec_uint4 use_form;
-
- xabs = spu_andc(x, sign_mask);
- xsqu = spu_mul(x, x);
- islarge = spu_cmpgt(xabs, largef);
-
- /*
- * Formula:
- * asinh = ln(|x| + sqrt(x^2 + 1))
- */
-
- vec_float4 logarg = spu_add(xabs, _sqrtf4(spu_madd(xabs, xabs, onef)));
- logarg = spu_sel(logarg, xabs, islarge);
- fresult = _logf4(logarg);
- fresult = spu_sel(fresult, spu_add(fresult, ln2), islarge);
-
- /*
- * Maclaurin Series
- */
- mresult = spu_madd(xsqu, spu_splats((float)ASINH_MAC31), spu_splats((float)ASINH_MAC29));
- mresult = spu_madd(xsqu, mresult, spu_splats((float)ASINH_MAC27));
- mresult = spu_madd(xsqu, mresult, spu_splats((float)ASINH_MAC25));
- mresult = spu_madd(xsqu, mresult, spu_splats((float)ASINH_MAC23));
- mresult = spu_madd(xsqu, mresult, spu_splats((float)ASINH_MAC21));
- mresult = spu_madd(xsqu, mresult, spu_splats((float)ASINH_MAC19));
- mresult = spu_madd(xsqu, mresult, spu_splats((float)ASINH_MAC17));
- mresult = spu_madd(xsqu, mresult, spu_splats((float)ASINH_MAC15));
- mresult = spu_madd(xsqu, mresult, spu_splats((float)ASINH_MAC13));
- mresult = spu_madd(xsqu, mresult, spu_splats((float)ASINH_MAC11));
- mresult = spu_madd(xsqu, mresult, spu_splats((float)ASINH_MAC09));
- mresult = spu_madd(xsqu, mresult, spu_splats((float)ASINH_MAC07));
- mresult = spu_madd(xsqu, mresult, spu_splats((float)ASINH_MAC05));
- mresult = spu_madd(xsqu, mresult, spu_splats((float)ASINH_MAC03));
- mresult = spu_madd(xsqu, mresult, spu_splats((float)ASINH_MAC01));
- mresult = spu_mul(xabs, mresult);
-
- /*
- * Choose between series and formula
- */
- use_form = spu_cmpgt(xabs, switch_approx);
- result = spu_sel(mresult, fresult, use_form);
-
- /*
- * Truncation correction on spu
- */
- truncadd = spu_sel(oneu, threeu, use_form);
- truncadd = spu_sel(truncadd, twou, spu_cmpgt(xabs, trunc_part2));
- result = (vec_float4)spu_add((vec_uint4)result, truncadd);
-
- /* Preserve sign - asinh is anti-symmetric */
- result = spu_sel(result, x, (vec_uint4)sign_mask);
-
- return result;
-}
-
-#endif /* _ASINHF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/atan.h b/newlib/libm/machine/spu/headers/atan.h
deleted file mode 100644
index 18ff615d8..000000000
--- a/newlib/libm/machine/spu/headers/atan.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/atand2.h"
-
-static __inline double _atan(double x)
-{
- return spu_extract(_atand2(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/atan2.h b/newlib/libm/machine/spu/headers/atan2.h
deleted file mode 100644
index a95c71665..000000000
--- a/newlib/libm/machine/spu/headers/atan2.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/atan2d2.h"
-
-static __inline double _atan2(double y, double x)
-{
- return spu_extract(_atan2d2(spu_promote(y, 0), spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/atan2d2.h b/newlib/libm/machine/spu/headers/atan2d2.h
deleted file mode 100644
index 4a25756d3..000000000
--- a/newlib/libm/machine/spu/headers/atan2d2.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _ATAN2D2_H_
-#define _ATAN2D2_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "divd2.h"
-#include "atand2.h"
-
-/*
- * FUNCTION
- * vector double _atan2d2(vector double y, vector double x)
- *
- * DESCRIPTION
- * The atan2d2 function returns a vector containing the angles
- * whose tangets are y/x for the corresponding elements of the
- * input vectors.
- *
- * The reason this function exists is to use the signs of the
- * arguments to determine the quadrant of the result. Consider
- * sin(x)/cos(x) on the domain (-pi, pi]. Four quadrants are
- * defined by the signs of sin and cos on this domain.
- *
- * Special Cases:
- * - If the corresponding elements of x and y are zero, the
- * resulting element is undefined.
- *
- */
-
-static __inline vector double _atan2d2(vector double y, vector double x)
-{
- vec_uchar16 dup_even = ((vec_uchar16) { 0,1,2,3, 0,1,2,3, 8,9,10,11, 8,9,10,11 });
- vector double pi = spu_splats(SM_PI);
- vector unsigned long long ones = spu_splats(0xFFFFFFFFFFFFFFFFull);
- vector unsigned long long quad1;
- vector unsigned long long quad4;
- vector double result;
-
- vector unsigned long long xlt0;
- vector unsigned long long yge0;
- vector unsigned long long ylt0;
-
- xlt0 = (vec_ullong2)spu_rlmaska((vec_int4)spu_shuffle(x,x,dup_even), 31);
- ylt0 = (vec_ullong2)spu_rlmaska((vec_int4)spu_shuffle(y,y,dup_even), 31);
- yge0 = spu_xor(ylt0, ones);
-
- quad1 = spu_and(ylt0, xlt0);
- quad4 = spu_and(yge0, xlt0);
-
- result = _atand2(_divd2(y,x));
-
- result = spu_sel(result, spu_sub(result, pi), quad1);
- result = spu_sel(result, spu_add(result, pi), quad4);
-
- return result;
-}
-
-#endif /* _ATAN2D2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/atan2f.h b/newlib/libm/machine/spu/headers/atan2f.h
deleted file mode 100644
index 8e4ca67bd..000000000
--- a/newlib/libm/machine/spu/headers/atan2f.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/atan2f4.h"
-
-static __inline float _atan2f(float y, float x)
-{
- return spu_extract(_atan2f4(spu_promote(y, 0), spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/atan2f4.h b/newlib/libm/machine/spu/headers/atan2f4.h
deleted file mode 100644
index 1899ce0c8..000000000
--- a/newlib/libm/machine/spu/headers/atan2f4.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _ATAN2F4_H_
-#define _ATAN2F4_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "divf4.h"
-#include "atanf4.h"
-
-/*
- * FUNCTION
- * vector float _atan2f4(vector float y, vector float x)
- *
- * DESCRIPTION
- * The atan2f4 function returns a vector containing the angles
- * whose tangets are y/x for the corresponding elements of the
- * input vectors.
- *
- * The reason this function exists is to use the signs of the
- * arguments to determine the quadrant of the result. Consider
- * sin(x)/cos(x) on the domain (-pi, pi]. Four quadrants are
- * defined by the signs of sin and cos on this domain.
- *
- * Special Cases:
- * - If the corresponding elements of x and y are zero, the
- * resulting element is undefined.
- *
- */
-
-static __inline vector float _atan2f4(vector float y, vector float x)
-{
- vector float pi = spu_splats((float)SM_PI);
- vector float zero = spu_splats(0.0f);
- vector unsigned int quad1;
- vector unsigned int quad4;
- vector float result;
-
- vector unsigned int xlt0;
- vector unsigned int yge0;
- vector unsigned int ylt0;
-
- xlt0 = (vec_uint4)spu_rlmaska((vec_int4)x, 31);
- ylt0 = (vec_uint4)spu_rlmaska((vec_int4)y, 31);
- yge0 = spu_cmpeq(ylt0, (vec_uint4)zero);
-
- quad1 = spu_and(ylt0, xlt0);
- quad4 = spu_and(yge0, xlt0);
-
- result = _atanf4(_divf4(y,x));
- result = spu_sel(result, spu_sub(result, pi), quad1);
- result = spu_sel(result, spu_add(result, pi), quad4);
-
- return result;
-}
-
-#endif /* _ATAN2F4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/atand2.h b/newlib/libm/machine/spu/headers/atand2.h
deleted file mode 100644
index 244c15d3e..000000000
--- a/newlib/libm/machine/spu/headers/atand2.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-
-#ifdef __SPU__
-
-#ifndef _ATAND2_H_
-#define _ATAND2_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "simdmath.h"
-#include "recipd2.h"
-#include "logd2.h"
-#include "acosd2.h"
-#include "asind2.h"
-#include "sqrtd2.h"
-
-/*
- * FUNCTION
- * vector double _atand2(vector double x)
- *
- * DESCRIPTION
- * The _atand2 function computes the arc tangent of a vector of values x.
- *
- * The arc tangent function is computed using the following relations:
- * [0, 1] : arcsin(x1/sqrt(spu_add(x1squ + 1 )));
- * (1, infinity] : PI/2 + atanf(-1/x)
- * [-infinity, 0) : -arcsin(|x|)
- *
- */
-
-static __inline vector double _atand2(vector double x)
-{
- vector double signbit = spu_splats(-0.0);
- vector double oned = spu_splats(1.0);
- vector double pi2 = spu_splats(SM_PI_2);
- vector double xabs, x1;
- vector double result;
- vector unsigned long long gt1;
-
- xabs = spu_andc(x, signbit);
- gt1 = spu_cmpgt(xabs, oned);
-
- /*
- * For x > 1, use the relation:
- * atan(x) = pi/2 - atan(1/x), x>1
- */
- x1 = spu_sel(xabs, _recipd2(xabs), gt1);
-
- vector double x1squ = spu_mul(x1, x1);
-
- result = _asind2(_divd2(x1, _sqrtd2(spu_add(x1squ, oned))));
-
- /*
- * For x > 1, use the relation: atan(x) = pi/2 - atan(1/x), x>1
- */
- result = spu_sel(result, spu_sub(pi2, result), gt1);
-
- /*
- * Antisymmetric function - preserve sign of x in result.
- */
- result = spu_sel(result, x, (vec_ullong2)signbit);
-
- return (result);
-}
-
-#endif /* _ATAND2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/atanf.h b/newlib/libm/machine/spu/headers/atanf.h
deleted file mode 100644
index ec01c1ec8..000000000
--- a/newlib/libm/machine/spu/headers/atanf.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _ATANF_H_
-#define _ATANF_H_ 1
-
-#ifndef M_PI_2
-#define M_PI_2 1.5707963267949f
-#endif /* M_PI_2 */
-
-/*
- * FUNCTION
- * float _atanf(float x)
- *
- * DESCRIPTION
- * _atanf computes the arc tangent of the value x; that is the value
- * whose tangent is x.
- *
- * _atanf returns the arc tangent in radians and the value is
- * mathematically defined to be in the range -PI/2 to PI/2.
- *
- * The arc tangent function is computed using a polynomial approximation
- * (B. Carlson, M. Goldstein, Los Alamos Scientific Laboratiry, 1955).
- * __8__
- * \
- * \
- * atanf(x) = / Ci*x^(2*i+1)
- * /____
- * i=0
- *
- * for x in the range -1 to 1. The remaining regions are defined to be:
- *
- * [1, infinity] : PI/2 + atanf(-1/x)
- * [-infinity, -1] : -PI/2 + atanf(-1/x)
- */
-
-static __inline float _atanf(float x)
-{
- float xabs;
- float bias;
- float x2, x3, x4, x8, x9;
- float hi, lo;
- float result;
-
- bias = 0.0f;
- xabs = (x < 0.0f) ? -x : x;
-
- if (xabs >= 1.0f) {
- bias = M_PI_2;
- if (x < 0.0f) {
- bias = -bias;
- }
- x = -1.0f / x;
- }
- /* Instruction counts can be reduced if the polynomial was
- * computed entirely from nested (dependent) fma's. However,
- * to reduce the number of pipeline stalls, the polygon is evaluated
- * in two halves(hi and lo).
- */
- bias += x;
-
- x2 = x * x;
- x3 = x2 * x;
- x4 = x2 * x2;
- x8 = x4 * x4;
- x9 = x8 * x;
- hi = 0.0028662257f * x2 - 0.0161657367f;
- hi = hi * x2 + 0.0429096138f;
- hi = hi * x2 - 0.0752896400f;
- hi = hi * x2 + 0.1065626393f;
- lo = -0.1420889944f * x2 + 0.1999355085f;
- lo = lo * x2 - 0.3333314528f;
- lo = lo * x3 + bias;
-
- result = hi * x9 + lo;
-
- return (result);
-}
-
-#endif /* _ATANF_H_ */
-
-
-
diff --git a/newlib/libm/machine/spu/headers/atanf4.h b/newlib/libm/machine/spu/headers/atanf4.h
deleted file mode 100644
index 3fd803ce9..000000000
--- a/newlib/libm/machine/spu/headers/atanf4.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _ATANF4_H_
-#define _ATANF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "simdmath.h"
-#include "recipf4.h"
-
-/*
- * FUNCTION
- * vector float _atanf4(vector float x)
- *
- * DESCRIPTION
- * The _atanf4 function computes the arc tangent of a vector of values x;
- * that is the values whose tangent is x.
- *
- * The _atanf4 function returns the arc tangents in radians and the value
- * is mathematically defined to be in the range -PI/2 to PI/2.
- *
- * The arc tangent function is computed using a polynomial approximation
- * (B. Carlson, M. Goldstein, Los Alamos Scientific Laboratory, 1955).
- * __8__
- * \
- * \
- * atan(x) = / Ci*x^(2*i+1)
- * /____
- * i=0
- *
- * for x in the range -1 to 1. The remaining regions are defined to be:
- *
- * [1, infinity] : PI/2 + atanf(-1/x)
- * [-infinity, -1] : -PI/2 + atanf(-1/x)
- *
- */
-static __inline vector float _atanf4(vector float x)
-{
- vector float bias;
- vector float x2, x3, x4, x8, x9;
- vector float hi, lo;
- vector float result;
- vector float inv_x;
- vector unsigned int sign;
- vector unsigned int select;
-
- sign = spu_sl(spu_rlmask((vector unsigned int)x, -31), 31);
- inv_x = _recipf4(x);
- inv_x = (vector float)spu_xor((vector unsigned int)inv_x, spu_splats(0x80000000));
-
- select = (vector unsigned int)spu_cmpabsgt(x, spu_splats(1.0f));
- bias = (vector float)spu_or(sign, (vector unsigned int)(spu_splats((float)SM_PI_2)));
- bias = (vector float)spu_and((vector unsigned int)bias, select);
-
- x = spu_sel(x, inv_x, select);
-
- /* Instruction counts can be reduced if the polynomial was
- * computed entirely from nested (dependent) fma's. However,
- * to reduce the number of pipeline stalls, the polygon is evaluated
- * in two halves(hi and lo).
- */
- bias = spu_add(bias, x);
- x2 = spu_mul(x, x);
- x3 = spu_mul(x2, x);
- x4 = spu_mul(x2, x2);
- x8 = spu_mul(x4, x4);
- x9 = spu_mul(x8, x);
- hi = spu_madd(spu_splats(0.0028662257f), x2, spu_splats(-0.0161657367f));
- hi = spu_madd(hi, x2, spu_splats(0.0429096138f));
- hi = spu_madd(hi, x2, spu_splats(-0.0752896400f));
- hi = spu_madd(hi, x2, spu_splats(0.1065626393f));
- lo = spu_madd(spu_splats(-0.1420889944f), x2, spu_splats(0.1999355085f));
- lo = spu_madd(lo, x2, spu_splats(-0.3333314528f));
- lo = spu_madd(lo, x3, bias);
-
- result = spu_madd(hi, x9, lo);
-
- return (result);
-}
-
-#endif /* _ATANF4_H_ */
-#endif /* __SPU__ */
-
-
diff --git a/newlib/libm/machine/spu/headers/atanh.h b/newlib/libm/machine/spu/headers/atanh.h
deleted file mode 100644
index f81ad2ede..000000000
--- a/newlib/libm/machine/spu/headers/atanh.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "headers/atanhd2.h"
-#include "headers/dom_chkd_negone_one.h"
-
-static __inline double _atanh(double x)
-{
- double res;
- vector double vx;
-
- vx = spu_splats(x);
- res = spu_extract(_atanhd2(vx), 0);
-#ifndef _IEEE_LIBM
- /*
- * Domain error if not in the interval [-1, +1]
- */
- dom_chkd_negone_one(vx);
-#endif
- return res;
-}
diff --git a/newlib/libm/machine/spu/headers/atanhd2.h b/newlib/libm/machine/spu/headers/atanhd2.h
deleted file mode 100644
index 85e78580f..000000000
--- a/newlib/libm/machine/spu/headers/atanhd2.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _ATANHD2_H_
-#define _ATANHD2_H_ 1
-
-#include <spu_intrinsics.h>
-#include "logd2.h"
-
-/*
- * FUNCTION
- * vector double _atanhd2(vector double x)
- *
- * DESCRIPTION
- * The atanhd2 function returns a vector containing the hyperbolic
- * arctangents of the corresponding elements of the input vector.
- *
- * We are using the formula:
- * atanh x = 1/2 * ln((1 + x)/(1 - x)) = 1/2 * [ln(1+x) - ln(1-x)]
- * and the anti-symmetry of atanh.
- *
- * For x near 0, we use the Taylor series:
- * atanh x = x + x^3/3 + x^5/5 + x^7/7 + x^9/9 + ...
- *
- * Special Cases:
- * - atanh(1) = Infinity
- * - atanh(-1) = -Infinity
- * - atanh(x) for |x| > 1 = Undefined
- *
- */
-
-/*
- * Maclaurin Series Coefficients
- * for x near 0.
- */
-#define SMD_DP_ATANH_MAC01 1.000000000000000000000000000000E0
-#define SMD_DP_ATANH_MAC03 3.333333333333333333333333333333E-1
-#define SMD_DP_ATANH_MAC05 2.000000000000000000000000000000E-1
-#define SMD_DP_ATANH_MAC07 1.428571428571428571428571428571E-1
-#define SMD_DP_ATANH_MAC09 1.111111111111111111111111111111E-1
-#define SMD_DP_ATANH_MAC11 9.090909090909090909090909090909E-2
-#define SMD_DP_ATANH_MAC13 7.692307692307692307692307692308E-2
-#define SMD_DP_ATANH_MAC15 6.666666666666666666666666666667E-2
-#define SMD_DP_ATANH_MAC17 5.882352941176470588235294117647E-2
-#if 0
-#define SMD_DP_ATANH_MAC19 5.263157894736842105263157894737E-2
-#define SMD_DP_ATANH_MAC21 4.761904761904761904761904761905E-2
-#define SMD_DP_ATANH_MAC23 4.347826086956521739130434782609E-2
-#define SMD_DP_ATANH_MAC25 4.000000000000000000000000000000E-2
-#define SMD_DP_ATANH_MAC27 3.703703703703703703703703703704E-2
-#define SMD_DP_ATANH_MAC29 3.448275862068965517241379310345E-2
-#define SMD_DP_ATANH_MAC31 3.225806451612903225806451612903E-2
-#define SMD_DP_ATANH_MAC33 3.030303030303030303030303030303E-2
-#define SMD_DP_ATANH_MAC35 2.857142857142857142857142857143E-2
-#define SMD_DP_ATANH_MAC37 2.702702702702702702702702702703E-2
-#define SMD_DP_ATANH_MAC39 2.564102564102564102564102564103E-2
-#endif
-
-
-static __inline vector double _atanhd2(vector double x)
-{
- vec_uchar16 dup_even = ((vec_uchar16) { 0,1,2,3, 0,1,2,3, 8,9,10,11, 8,9,10,11 });
- vec_double2 sign_mask = spu_splats(-0.0);
- vec_double2 oned = spu_splats(1.0);
- vec_double2 onehalfd = spu_splats(0.5);
- vec_double2 xabs, xsqu;
- /* Where we switch from maclaurin to formula */
- vec_float4 switch_approx = spu_splats(0.125f);
- vec_uint4 use_form;
- vec_float4 xf;
- vec_double2 result, fresult, mresult;;
-
- xabs = spu_andc(x, sign_mask);
- xsqu = spu_mul(x, x);
-
- xf = spu_roundtf(xabs);
- xf = spu_shuffle(xf, xf, dup_even);
-
- /*
- * Formula:
- * atanh = 1/2 * ln((1 + x)/(1 - x)) = 1/2 * [ln(1+x) - ln(1-x)]
- */
- fresult = spu_sub(_logd2(spu_add(oned, xabs)), _logd2(spu_sub(oned, xabs)));
- fresult = spu_mul(fresult, onehalfd);
-
-
- /*
- * Taylor Series
- */
- mresult = spu_madd(xsqu, spu_splats(SMD_DP_ATANH_MAC17), spu_splats(SMD_DP_ATANH_MAC15));
- mresult = spu_madd(xsqu, mresult, spu_splats(SMD_DP_ATANH_MAC13));
- mresult = spu_madd(xsqu, mresult, spu_splats(SMD_DP_ATANH_MAC11));
- mresult = spu_madd(xsqu, mresult, spu_splats(SMD_DP_ATANH_MAC09));
- mresult = spu_madd(xsqu, mresult, spu_splats(SMD_DP_ATANH_MAC07));
- mresult = spu_madd(xsqu, mresult, spu_splats(SMD_DP_ATANH_MAC05));
- mresult = spu_madd(xsqu, mresult, spu_splats(SMD_DP_ATANH_MAC03));
- mresult = spu_madd(xsqu, mresult, spu_splats(SMD_DP_ATANH_MAC01));
- mresult = spu_mul(xabs, mresult);
-
-
- /*
- * Choose between series and formula
- */
- use_form = spu_cmpgt(xf, switch_approx);
- result = spu_sel(mresult, fresult, (vec_ullong2)use_form);
-
- /*
- * Spec says results are undefined for |x| > 1, so
- * no boundary tests needed here.
- */
-
- /* Restore sign - atanh is an anti-symmetric */
- result = spu_sel(result, x, (vec_ullong2)sign_mask);
-
- return result;
-}
-
-#endif /* _ATANHD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/atanhf.h b/newlib/libm/machine/spu/headers/atanhf.h
deleted file mode 100644
index f838c9f47..000000000
--- a/newlib/libm/machine/spu/headers/atanhf.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "headers/atanhf4.h"
-#include "headers/dom_chkf_negone_one.h"
-
-static __inline float _atanhf(float x)
-{
- float res;
- vector float vx;
-
- vx = spu_splats(x);
- res = spu_extract(_atanhf4(vx), 0);
-#ifndef _IEEE_LIBM
- /*
- * Domain error if not in the interval [-1, +1]
- */
- dom_chkf_negone_one(vx);
-#endif
- return res;
-}
diff --git a/newlib/libm/machine/spu/headers/atanhf4.h b/newlib/libm/machine/spu/headers/atanhf4.h
deleted file mode 100644
index b9d14b42d..000000000
--- a/newlib/libm/machine/spu/headers/atanhf4.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _ATANHF4_H_
-#define _ATANHF4_H_ 1
-
-#include <spu_intrinsics.h>
-#include <math.h>
-#include "logf4.h"
-
-/*
- * FUNCTION
- * vector float _atanhf4(vector float x)
- *
- * DESCRIPTION
- * The atanhf4 function returns a vector containing the hyperbolic
- * arctangents of the corresponding elements of the input vector.
- *
- * We are using the formula:
- * atanh x = 1/2 * ln((1 + x)/(1 - x)) = 1/2 * [ln(1+x) - ln(1-x)]
- * and the anti-symmetry of atanh.
- *
- * For x near 0, we use the Taylor series:
- * atanh x = x + x^3/3 + x^5/5 + x^7/7 + x^9/9 + ...
- *
- * Special Cases:
- * - atanh(1) = HUGE_VALF
- * - atanh(-1) = -HUGE_VALF
- * - The result is undefined for x outside of the domain [-1,1].
- *
- */
-
-/*
- * Maclaurin Series Coefficients
- * for x near 0.
- */
-#define SDM_SP_ATANH_MAC01 1.000000000000000000000000000000E0
-#define SDM_SP_ATANH_MAC03 3.333333333333333333333333333333E-1
-#define SDM_SP_ATANH_MAC05 2.000000000000000000000000000000E-1
-#define SDM_SP_ATANH_MAC07 1.428571428571428571428571428571E-1
-#if 0
-#define SDM_SP_ATANH_MAC09 1.111111111111111111111111111111E-1
-#define SDM_SP_ATANH_MAC11 9.090909090909090909090909090909E-2
-#define SDM_SP_ATANH_MAC13 7.692307692307692307692307692308E-2
-#define SDM_SP_ATANH_MAC15 6.666666666666666666666666666667E-2
-#endif
-
-
-static __inline vector float _atanhf4(vector float x)
-{
- vec_uint4 one = spu_splats(1u);
- vec_float4 sign_mask = spu_splats(-0.0f);
- vec_float4 onef = spu_splats(1.0f);
- vec_float4 onehalff = spu_splats(0.5f);
- vec_float4 huge = spu_splats(HUGE_VALF);
- vec_float4 result, fresult, mresult;;
- vec_float4 xabs, xsqu;
- /* Where we switch from maclaurin to formula */
- vec_float4 switch_approx = spu_splats(0.165f);
- vec_uint4 use_form;
-
- xabs = spu_andc(x, sign_mask);
- xsqu = spu_mul(x, x);
-
- /*
- * Formula:
- * atanh = 1/2 * ln((1 + x)/(1 - x)) = 1/2 * [ln(1+x) - ln(1-x)]
- */
- fresult = spu_sub(_logf4(spu_add(onef, xabs)), _logf4(spu_sub(onef, xabs)));
- fresult = spu_mul(fresult, onehalff);
-
-
- /*
- * Taylor Series
- */
- mresult = spu_madd(xsqu, spu_splats((float)SDM_SP_ATANH_MAC07), spu_splats((float)SDM_SP_ATANH_MAC05));
- mresult = spu_madd(xsqu, mresult, spu_splats((float)SDM_SP_ATANH_MAC03));
- mresult = spu_madd(xsqu, mresult, spu_splats((float)SDM_SP_ATANH_MAC01));
- mresult = spu_mul(xabs, mresult);
-
- /*
- * Choose between series and formula
- */
- use_form = spu_cmpgt(xabs, switch_approx);
- result = spu_sel(mresult, fresult, use_form);
-
- /*
- * Correct for accumulated truncation error. Currently reduces rms of
- * absolute error by about 50%
- */
- result = (vec_float4)spu_add((vec_uint4)result, spu_and(one, spu_cmpgt(xabs, spu_splats(0.0f))));
- result = (vec_float4)spu_add((vec_uint4)result, spu_and(one, spu_cmpgt(xabs, spu_splats(0.25f))));
-
- /*
- * Check Boundary Conditions
- */
- result = spu_sel(result, huge, spu_cmpeq(xabs, onef));
-
- /*
- * Spec says |x| > 1, result is undefined, so no additional
- * boundary checks needed.
- */
-
- /* Preserve sign - atanh is anti-symmetric */
- result = spu_sel(result, x, (vec_uint4)sign_mask);
-
- return result;
-}
-
-#endif /* _ATANHF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/cbrt.h b/newlib/libm/machine/spu/headers/cbrt.h
deleted file mode 100644
index 896b4e1bf..000000000
--- a/newlib/libm/machine/spu/headers/cbrt.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef _CBRT_H_
-#define _CBRT_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-static double cbrt_factors[5] = {
- 0.629960524947436484311, /* 2^(-2/3) */
- 0.793700525984099680699, /* 2^(-1/3) */
- 1.0, /* 2^(0) */
- 1.259921049894873164666, /* 2^(1/3) */
- 1.587401051968199583441 /* 2^(2/3) */
-};
-
-/* Compute the cube root of x to double precision.
- */
-
-static __inline double _cbrt(double x)
-{
- vec_int4 exp, bias;
- vec_uint4 e_div_3, e_mod_3;
- vec_float4 bf, inv_bf;
- vec_float4 onef = VEC_SPLAT_F32(1.0f);
- vec_ullong2 mask;
- vec_ullong2 mant_mask = VEC_SPLAT_U64(0xFFFFFFFFFFFFFULL);
- vec_double2 one = VEC_SPLAT_F64(1.0);
- vec_double2 two = VEC_SPLAT_F64(2.0);
- vec_double2 half = VEC_SPLAT_F64(0.5);
- /* Polynomial coefficients */
- vec_double2 c0 = VEC_SPLAT_F64(0.354895765043919860);
- vec_double2 c1 = VEC_SPLAT_F64(1.50819193781584896);
- vec_double2 c2 = VEC_SPLAT_F64(-2.11499494167371287);
- vec_double2 c3 = VEC_SPLAT_F64(2.44693122563534430);
- vec_double2 c4 = VEC_SPLAT_F64(-1.83469277483613086);
- vec_double2 c5 = VEC_SPLAT_F64(0.784932344976639262);
- vec_double2 c6 = VEC_SPLAT_F64(0.145263899385486377);
- vec_double2 in, out, mant, u, u3, ym, a, b, factor, inv_b;
-
- in = spu_promote(x, 0);
-
- /* Normalize the mantissa (fraction part) into the range [0.5, 1.0) and
- * extract the exponent.
- */
- mant = spu_sel(half, in, mant_mask);
- exp = spu_and(spu_rlmask((vec_int4)in, -20), 0x7FF);
-
- /* Generate mask used to zero result if the exponent is zero (ie, <in> is
- * either zero or a denorm
- */
- mask = (vec_ullong2)spu_cmpeq(exp, 0);
- mask = spu_shuffle(mask, mask, VEC_LITERAL(vec_uchar16, 0,1,2,3,0,1,2,3,8,9,10,11,8,9,10,11));
- exp = spu_add(exp, -1022);
-
- u = spu_madd(mant, spu_madd(mant, spu_madd(mant, spu_madd(mant, spu_madd(mant, spu_nmsub(mant, c6, c5), c4), c3), c2), c1), c0);
- u3 = spu_mul(spu_mul(u, u), u);
-
- /* Compute: e_div_3 = exp/3
- *
- * Fetch: factor = factor[2+exp%3]
- *
- * The factors array contains 5 values: 2^(-2/3), 2^(-1/3), 2^0, 2^(1/3),
- * 2^(2/3), 2^1.
- * The fetch is done using shuffle bytes so that is can easily be extended
- * to support SIMD compution.
- */
- bias = spu_rlmask(spu_rlmaska(exp, -15), -16);
- e_div_3 = (vec_uint4)spu_rlmaska(spu_madd((vec_short8)exp, VEC_SPLAT_S16(0x5556), bias), -16);
-
- e_mod_3 = (vec_uint4)spu_sub((vec_int4)(exp), spu_mulo((vec_short8)e_div_3, VEC_SPLAT_S16(3)));
-
- factor = spu_promote(cbrt_factors[2+spu_extract(e_mod_3, 0)], 0);
-
- /* Compute the estimated mantissa cube root (ym) equals:
- * ym = (u * factor * (2.0 * mant + u3)) / (2.0 * u3 + mant);
- */
- a = spu_mul(spu_mul(factor, u), spu_madd(two, mant, u3));
- b = spu_madd(two, u3, mant);
-
- bf = spu_roundtf(b);
- inv_bf = spu_re(bf);
- inv_bf = spu_madd(spu_nmsub(bf, inv_bf, onef), inv_bf, inv_bf);
-
- inv_b = spu_extend(inv_bf);
- inv_b = spu_madd(spu_nmsub(b, inv_b, one), inv_b, inv_b);
-
- ym = spu_mul(a, inv_b);
- ym = spu_madd(spu_nmsub(b, ym, a), inv_b, ym);
-
- /* Merge sign, computed exponent, and computed mantissa.
- */
- exp = spu_rl(spu_add((vec_int4)e_div_3, 1023), 20);
- exp = spu_andc(exp, (vec_int4)mant_mask);
- out = spu_sel((vec_double2)exp, in, VEC_SPLAT_U64(0x8000000000000000ULL));
- out = spu_mul(out, ym);
-
- out = spu_andc(out, (vec_double2)mask);
-
- return (spu_extract(out, 0));
-}
-
-#endif /* _CBRT_H_ */
diff --git a/newlib/libm/machine/spu/headers/cbrtf.h b/newlib/libm/machine/spu/headers/cbrtf.h
deleted file mode 100644
index 2fd95af01..000000000
--- a/newlib/libm/machine/spu/headers/cbrtf.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _CBRTF_H_
-#define _CBRTF_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-static double cbrt_factors[5] = {
- 0.629960524947436484311, /* 2^(-2/3) */
- 0.793700525984099680699, /* 2^(-1/3) */
- 1.0, /* 2^(0) */
- 1.259921049894873164666, /* 2^(1/3) */
- 1.587401051968199583441 /* 2^(2/3) */
-};
-
-/* Compute the cube root of the floating point input x.
- */
-
-static __inline float _cbrtf(float x)
-{
- vec_int4 exp, bias;
- vec_uint4 mask, e_div_3, e_mod_3;
- vec_uint4 mant_mask = VEC_SPLAT_U32(0x7FFFFF);
- vec_float4 in;
- vec_float4 half = VEC_SPLAT_F32(0.5f);
- vec_float4 onef = VEC_SPLAT_F32(1.0f);
- vec_float4 out, mant, ym, bf, inv_bf;
- vec_double2 two = VEC_SPLAT_F64(2.0);
- /* Polynomial coefficients */
- vec_double2 c2 = VEC_SPLAT_F64(0.191502161678719066);
- vec_double2 c1 = VEC_SPLAT_F64(0.697570460207922770);
- vec_double2 c0 = VEC_SPLAT_F64(0.492659620528969547);
- vec_double2 a0, b0, inv_b0, ym0;
- vec_double2 mant0, u0, u0_3, factor0;
-
- in = spu_promote(x, 0);
-
- /* Normalize the mantissa (fraction part) into the range [0.5, 1.0) and
- * extract the exponent.
- */
- mant = spu_sel(half, in, mant_mask);
- exp = spu_and(spu_rlmask((vec_int4)in, -23), 0xFF);
-
- /* Generate mask used to zero result if the exponent is zero (ie, in is either
- * zero or a denorm
- */
- mask = spu_cmpeq(exp, 0);
- exp = spu_add(exp, -126);
-
- mant0 = spu_extend(mant);
-
- u0 = spu_madd(mant0, spu_nmsub(mant0, c2, c1), c0);
- u0_3 = spu_mul(spu_mul(u0, u0), u0);
-
- /* Compute: e_div_3 = exp/3
- *
- * Fetch: factor = factor[2+exp%3]
- *
- * The factors array contains 5 values: 2^(-2/3), 2^(-1/3), 2^0, 2^(1/3), 2^(2/3), 2^1.
- */
- bias = spu_rlmask(spu_rlmaska(exp, -15), -16);
- e_div_3 = (vec_uint4)spu_rlmaska(spu_madd((vec_short8)exp, VEC_SPLAT_S16(0x5556), bias), -16);
-
- e_mod_3 = (vec_uint4)spu_sub((vec_int4)(exp), spu_mulo((vec_short8)e_div_3, VEC_SPLAT_S16(3)));
-
- e_mod_3 = spu_add(e_mod_3, 2);
-
- factor0 = spu_promote(cbrt_factors[spu_extract(e_mod_3, 0)], 0);
-
- /* Compute the estimated mantissa cube root (ym) equals:
- * ym = (u * factor * (2.0 * mant + u3)) / (2.0 * u3 + mant);
- */
- a0 = spu_mul(spu_mul(factor0, u0), spu_madd(two, mant0, u0_3));
- b0 = spu_madd(two, u0_3, mant0);
-
- bf = spu_roundtf(b0);
-
- inv_bf = spu_re(bf);
- inv_bf = spu_madd(spu_nmsub(bf, inv_bf, onef), inv_bf, inv_bf);
-
- inv_b0 = spu_extend(inv_bf);
-
- ym0 = spu_mul(a0, inv_b0);
- ym0 = spu_madd(spu_nmsub(b0, ym0, a0), inv_b0, ym0);
-
- ym = spu_roundtf(ym0);
-
- /* Merge sign, computed exponent, and computed mantissa.
- */
- exp = spu_rl(spu_add((vec_int4)e_div_3, 127), 23);
- out = spu_sel((vec_float4)exp, in, VEC_SPLAT_U32(0x80000000));
- out = spu_mul(out, ym);
-
- out = spu_andc(out, (vec_float4)mask);
-
- return (spu_extract(out, 0));
-}
-
-#endif /* _CBRTF_H_ */
diff --git a/newlib/libm/machine/spu/headers/ceil.h b/newlib/libm/machine/spu/headers/ceil.h
deleted file mode 100644
index b51f26bcd..000000000
--- a/newlib/libm/machine/spu/headers/ceil.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _CEIL_H_
-#define _CEIL_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* Round the input upwards to the nearest integer.
- */
-
-
-static __inline double _ceil(double x)
-{
- vec_uchar16 swap_words = VEC_LITERAL(vec_uchar16, 4,5,6,7, 0,1,2,3, 12,13,14,15, 8,9,10,11);
- vec_uchar16 splat_hi = VEC_LITERAL(vec_uchar16, 0,1,2,3,0,1,2,3, 8,9,10,11, 8,9,10,11);
- vec_uint4 one = VEC_LITERAL(vec_uint4, 0, 1, 0, 1);
- vec_int4 exp, shift;
- vec_uint4 mask, mask_1, frac_mask, addend, insert, pos, equal0;
- vec_ullong2 sign = VEC_SPLAT_U64(0x8000000000000000ULL);
- vec_double2 in, in_hi, out;
- vec_double2 one_d = VEC_SPLAT_F64(1.0);
-
- in = spu_promote(x, 0);
-
- /* This function generates the following component
- * based upon the inputs.
- *
- * mask = bits of the input that need to be replaced.
- * insert = value of the bits that need to be replaced
- * addend = value to be added to perform function.
- *
- * These are applied as follows:.
- *
- * out = ((in & mask) | insert) + addend
- */
- in_hi = spu_shuffle(in, in, splat_hi);
- pos = spu_cmpgt((vec_int4)in_hi, -1);
- exp = spu_and(spu_rlmask((vec_int4)in_hi, -20), 0x7FF);
- shift = spu_sub(VEC_LITERAL(vec_int4, 1023, 1043, 1023, 1043), exp);
-
- /* clamp shift to the range 0 to -31.
- */
- shift = spu_sel(VEC_SPLAT_S32(-32), spu_andc(shift, (vec_int4)spu_cmpgt(shift, 0)), spu_cmpgt(shift, -32));
-
- frac_mask = spu_rlmask(VEC_LITERAL(vec_uint4, 0xFFFFF, -1, 0xFFFFF, -1), shift);
- mask = spu_orc(frac_mask, spu_cmpgt(exp, 0x3FE));
-
- /* addend = ((in & mask) && (in >= 0)) ? mask+1 : 0
- */
- mask_1 = spu_addx(mask, one, spu_rlqwbyte(spu_genc(mask, one), 4));
-
- equal0 = spu_cmpeq(spu_and((vec_uint4)in, mask), 0);
- addend = spu_andc(spu_and(mask_1, pos), spu_and(equal0, spu_shuffle(equal0, equal0, swap_words)));
-
- insert = spu_andc(spu_and(pos, (vec_uint4)one_d),
- spu_cmpgt((vec_uint4)spu_add(exp, -1), 1022));
-
- in = spu_sel(in, (vec_double2)insert, spu_andc((vec_ullong2)mask, sign));
- out = (vec_double2)spu_addx((vec_uint4)in, addend, spu_rlqwbyte(spu_genc((vec_uint4)in, addend), 4));
-
- return (spu_extract(out, 0));
-}
-
-#endif /* _CEIL_H */
diff --git a/newlib/libm/machine/spu/headers/ceilf.h b/newlib/libm/machine/spu/headers/ceilf.h
deleted file mode 100644
index deb900f4e..000000000
--- a/newlib/libm/machine/spu/headers/ceilf.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _CEILF_H_
-#define _CEILF_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/*
- * FUNCTION
- * float _ceilf(float value)
- *
- * DESCRIPTION
- * The _ceilf routine round the input value "value" upwards to the
- * nearest integer returning the result as a float. Two forms of the
- * ceiling function are provided - full range and limited (integer)
- * range.
- *
- * The full range form (default) provides ceiling computation on
- * all IEEE floating point values. The ceiling of NANs remain NANs.
- * The ceiling of denorms results in zero.
- *
- * The limited range form (selected by defining CEIL_INTEGER_RANGE)
- * compute ths ceiling of all floating-point values in the 32-bit
- * signed integer range. Values outside this range get clamped.
- */
-
-static __inline float _ceilf(float value)
-{
-#ifdef CEIL_INTEGER_RANGE
- /* 32-BIT INTEGER DYNAMIC RANGE
- */
- union {
- float f;
- signed int i;
- unsigned int ui;
- } bias;
-
- bias.f = value;
-
- /* If positive, bias the input value to truncate towards
- * positive infinity, instead of zero.
- */
- bias.ui = ~(unsigned int)(bias.i >> 31) & 0x3F7FFFFF;
- value += bias.f;
-
- /* Remove fraction bits by casting to an integer and back
- * to a floating-point value.
- */
- return ((float)((int)value));
-
-#else /* !CEIL_INTEGER_RANGE */
- /* FULL FLOATING-POINT RANGE
- */
- vec_int4 exp, shift;
- vec_uint4 mask, frac_mask, addend, insert, pos;
- vec_float4 in, out;
- vec_float4 one = VEC_SPLAT_F32(1.0f);
-
- in = spu_promote(value, 0);
-
- /* This function generates the following component
- * based upon the inputs.
- *
- * mask = bits of the input that need to be replaced.
- * insert = value of the bits that need to be replaced
- * addend = value to be added to perform function.
- *
- * These are applied as follows:.
- *
- * out = ((in & mask) | insert) + addend
- */
- pos = spu_cmpgt((vec_int4)in, -1);
- exp = spu_and(spu_rlmask((vec_int4)in, -23), 0xFF);
-
- shift = spu_sub(127, exp);
-
- frac_mask = spu_and(spu_rlmask(VEC_SPLAT_U32(0x7FFFFF), shift),
- spu_cmpgt((vec_int4)shift, -31));
-
- mask = spu_orc(frac_mask, spu_cmpgt(exp, 126));
-
- addend = spu_andc(spu_and(spu_add(mask, 1), pos), spu_cmpeq(spu_and((vec_uint4)in, mask), 0));
-
- insert = spu_andc(spu_and(pos, (vec_uint4)one),
- spu_cmpgt((vec_uint4)spu_add(exp, -1), 126));
-
- out = (vec_float4)spu_add(spu_sel((vec_uint4)in, insert, mask), addend);
-
- return (spu_extract(out, 0));
-#endif /* CEIL_INTEGER_RANGE */
-}
-#endif /* _CEILF_H_ */
diff --git a/newlib/libm/machine/spu/headers/copysign.h b/newlib/libm/machine/spu/headers/copysign.h
deleted file mode 100644
index ba1c64a5c..000000000
--- a/newlib/libm/machine/spu/headers/copysign.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _COPYSIGN_H_
-#define _COPYSIGN_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* copysign - produces a value with the magnitude of x and the
- * sign of y.
- */
-static __inline double _copysign(double x, double y)
-{
- return (spu_extract(spu_sel(spu_promote(x, 0), spu_promote(y, 0),
- VEC_SPLAT_U64(0x8000000000000000ULL)), 0));
-}
-
-#endif /* _COPYSIGN_H_ */
diff --git a/newlib/libm/machine/spu/headers/copysignf.h b/newlib/libm/machine/spu/headers/copysignf.h
deleted file mode 100644
index 490cf0f02..000000000
--- a/newlib/libm/machine/spu/headers/copysignf.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _COPYSIGNF_H_
-#define _COPYSIGNF_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* copysign - produces a value with the magnitude of x and the
- * sign of y.
- */
-static __inline float _copysignf(float x, float y)
-{
- return (spu_extract(spu_sel(spu_promote(x, 0), spu_promote(y, 0),
- VEC_SPLAT_U32(0x80000000)), 0));
-}
-
-#endif /* _COPYSIGNF_H_ */
diff --git a/newlib/libm/machine/spu/headers/cos.h b/newlib/libm/machine/spu/headers/cos.h
deleted file mode 100644
index b72086233..000000000
--- a/newlib/libm/machine/spu/headers/cos.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/cosd2.h"
-
-static __inline double _cos(double angle)
-{
- return spu_extract(_cosd2(spu_promote(angle, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/cos_sin.h b/newlib/libm/machine/spu/headers/cos_sin.h
deleted file mode 100644
index f0f6910ce..000000000
--- a/newlib/libm/machine/spu/headers/cos_sin.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _COS_SIN_H_
-#define _COS_SIN_H_ 1
-
-#define M_PI_OVER_4_HI_32 0x3fe921fb
-
-#define M_PI_OVER_4 0.78539816339744827900
-#define M_FOUR_OVER_PI 1.27323954478442180616
-
-#define M_PI_OVER_2 1.57079632679489655800
-#define M_PI_OVER_2_HI 1.57079632673412561417
-#define M_PI_OVER_2_LO 0.0000000000607710050650619224932
-
-#define M_PI_OVER_2F_HI 1.570312500000000000
-#define M_PI_OVER_2F_LO 0.000483826794896558
-
-/* The following coefficients correspond to the Taylor series
- * coefficients for cos and sin.
- */
-#define COS_14 -0.00000000001138218794258068723867
-#define COS_12 0.000000002087614008917893178252
-#define COS_10 -0.0000002755731724204127572108
-#define COS_08 0.00002480158729870839541888
-#define COS_06 -0.001388888888888735934799
-#define COS_04 0.04166666666666666534980
-#define COS_02 -0.5000000000000000000000
-#define COS_00 1.0
-
-#define SIN_15 -0.00000000000076471637318198164759
-#define SIN_13 0.00000000016059043836821614599
-#define SIN_11 -0.000000025052108385441718775
-#define SIN_09 0.0000027557319223985890653
-#define SIN_07 -0.0001984126984126984127
-#define SIN_05 0.008333333333333333333
-#define SIN_03 -0.16666666666666666666
-#define SIN_01 1.0
-
-
-/* Compute the following for each floating point element of x.
- * x = fmod(x, PI/4);
- * ix = (int)x * PI/4;
- * This allows one to compute cos / sin over the limited range
- * and select the sign and correct result based upon the octant
- * of the original angle (as defined by the ix result).
- *
- * Expected Inputs Types:
- * x = vec_float4
- * ix = vec_int4
- */
-#define MOD_PI_OVER_FOUR_F(_x, _ix) { \
- vec_float4 fx; \
- \
- _ix = spu_convts(spu_mul(_x, spu_splats((float)M_FOUR_OVER_PI)), 0); \
- _ix = spu_add(_ix, spu_add(spu_rlmaska((vec_int4)_x, -31), 1)); \
- \
- fx = spu_convtf(spu_rlmaska(_ix, -1), 0); \
- _x = spu_nmsub(fx, spu_splats((float)M_PI_OVER_2F_HI), _x); \
- _x = spu_nmsub(fx, spu_splats((float)M_PI_OVER_2F_LO), _x); \
- }
-
-/* Double precision MOD_PI_OVER_FOUR
- *
- * Expected Inputs Types:
- * x = vec_double2
- * ix = vec_int4
- */
-#define MOD_PI_OVER_FOUR(_x, _ix) { \
- vec_float4 fx; \
- vec_double2 dix; \
- \
- fx = spu_roundtf(spu_mul(_x, spu_splats(M_FOUR_OVER_PI))); \
- _ix = spu_convts(fx, 0); \
- _ix = spu_add(_ix, spu_add(spu_rlmaska((vec_int4)fx, -31), 1)); \
- \
- dix = spu_extend(spu_convtf(spu_rlmaska(_ix, -1), 0)); \
- _x = spu_nmsub(spu_splats(M_PI_OVER_2_HI), dix, _x); \
- _x = spu_nmsub(spu_splats(M_PI_OVER_2_LO), dix, _x); \
- }
-
-
-/* Compute the cos(x) and sin(x) for the range reduced angle x.
- * In order to compute these trig functions to full single precision
- * accuracy, we solve the Taylor series.
- *
- * c = cos(x) = 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8! - x^10/10!
- * s = sin(x) = x - x^3/4! + x^5/5! - x^7/7! + x^9/9! - x^11/11!
- *
- * Expected Inputs Types:
- * x = vec_float4
- * c = vec_float4
- * s = vec_float4
- */
-
-#define COMPUTE_COS_SIN_F(_x, _c, _s) { \
- vec_float4 x2, x4, x6; \
- vec_float4 cos_hi, cos_lo; \
- vec_float4 sin_hi, sin_lo; \
- \
- x2 = spu_mul(_x, _x); \
- x4 = spu_mul(x2, x2); \
- x6 = spu_mul(x2, x4); \
- \
- cos_hi = spu_madd(spu_splats((float)COS_10), x2, spu_splats((float)COS_08)); \
- cos_lo = spu_madd(spu_splats((float)COS_04), x2, spu_splats((float)COS_02)); \
- cos_hi = spu_madd(cos_hi, x2, spu_splats((float)COS_06)); \
- cos_lo = spu_madd(cos_lo, x2, spu_splats((float)COS_00)); \
- _c = spu_madd(cos_hi, x6, cos_lo); \
- \
- sin_hi = spu_madd(spu_splats((float)SIN_11), x2, spu_splats((float)SIN_09)); \
- sin_lo = spu_madd(spu_splats((float)SIN_05), x2, spu_splats((float)SIN_03)); \
- sin_hi = spu_madd(sin_hi, x2, spu_splats((float)SIN_07)); \
- sin_lo = spu_madd(sin_lo, x2, spu_splats((float)SIN_01)); \
- _s = spu_madd(sin_hi, x6, sin_lo); \
- _s = spu_mul(_s, _x); \
- }
-
-
-/* Compute the cos(x) and sin(x) for the range reduced angle x.
- * This version computes the cosine and sine to double precision
- * accuracy using the Taylor series:
- *
- * c = cos(x) = 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8! - x^10/10! + x^12/12! - x^14/14!
- * s = sin(x) = x - x^3/4! + x^5/5! - x^7/7! + x^9/9! - x^11/11! + x^13/13! - x^15/15!
- *
- * Expected Inputs Types:
- * x = vec_double2
- * c = vec_double2
- * s = vec_double2
- */
-
-#define COMPUTE_COS_SIN(_x, _c, _s) { \
- vec_double2 x2, x4, x8; \
- vec_double2 cos_hi, cos_lo; \
- vec_double2 sin_hi, sin_lo; \
- \
- x2 = spu_mul(_x, _x); \
- x4 = spu_mul(x2, x2); \
- x8 = spu_mul(x4, x4); \
- \
- cos_hi = spu_madd(spu_splats(COS_14), x2, spu_splats(COS_12)); \
- cos_lo = spu_madd(spu_splats(COS_06), x2, spu_splats(COS_04)); \
- cos_hi = spu_madd(cos_hi, x2, spu_splats(COS_10)); \
- cos_lo = spu_madd(cos_lo, x2, spu_splats(COS_02)); \
- cos_hi = spu_madd(cos_hi, x2, spu_splats(COS_08)); \
- cos_lo = spu_madd(cos_lo, x2, spu_splats(COS_00)); \
- _c = spu_madd(cos_hi, x8, cos_lo); \
- \
- sin_hi = spu_madd(spu_splats(SIN_15), x2, spu_splats(SIN_13)); \
- sin_lo = spu_madd(spu_splats(SIN_07), x2, spu_splats(SIN_05)); \
- sin_hi = spu_madd(sin_hi, x2, spu_splats(SIN_11)); \
- sin_lo = spu_madd(sin_lo, x2, spu_splats(SIN_03)); \
- sin_hi = spu_madd(sin_hi, x2, spu_splats(SIN_09)); \
- sin_lo = spu_madd(sin_lo, x2, spu_splats(SIN_01)); \
- _s = spu_madd(sin_hi, x8, sin_lo); \
- _s = spu_mul(_s, _x); \
- }
-
-
-
-
-#endif /* _COS_SIN_H_ */
-#endif /* __SPU__ */
-
-
diff --git a/newlib/libm/machine/spu/headers/cosd2.h b/newlib/libm/machine/spu/headers/cosd2.h
deleted file mode 100644
index db33a1ddb..000000000
--- a/newlib/libm/machine/spu/headers/cosd2.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _COSD2_H_
-#define _COSD2_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "cos_sin.h"
-
-/*
- * FUNCTION
- * vector double _cosd2(vector double angle)
- *
- * DESCRIPTION
- * _cosd2 computes the cosine of a vector of angles (expressed
- * in radians) to an accuracy of a double precision floating point.
- */
-static __inline vector double _cosd2(vector double angle)
-{
- vec_int4 octant;
- vec_ullong2 select;
- vec_double2 cos, sin;
- vec_double2 toggle_sign, answer;
-
- /* Range reduce the input angle x into the range -PI/4 to PI/4
- * by performing simple modulus.
- */
- MOD_PI_OVER_FOUR(angle, octant);
-
- /* Compute the cosine and sine of the range reduced input.
- */
- COMPUTE_COS_SIN(angle, cos, sin);
-
- /* For each SIMD element, select which result (cos or sin) to use
- * with a sign correction depending upon the octant of the original
- * angle (Maclaurin series).
- *
- * octants angles select sign toggle
- * ------- ------------ ------ -----------
- * 0 0 to 45 cos no
- * 1,2 45 to 135 sin yes
- * 3,4 135 to 225 cos yes
- * 5,6 225 to 315 sin no
- * 7 315 to 360 cos no
- */
- octant = spu_shuffle(octant, octant, ((vec_uchar16) { 0,1, 2, 3, 0,1, 2, 3, 8,9,10,11, 8,9,10,11 }));
-
- toggle_sign = (vec_double2)spu_sl(spu_and(spu_add(octant, 2), 4), ((vec_uint4) { 29,32,29,32 }));
- select = (vec_ullong2)spu_cmpeq(spu_and(octant, 2), 0);
-
- answer = spu_xor(spu_sel(sin, cos, select), toggle_sign);
-
- return (answer);
-}
-
-#endif /* _COSD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/cosf.h b/newlib/libm/machine/spu/headers/cosf.h
deleted file mode 100644
index 49e6f716f..000000000
--- a/newlib/libm/machine/spu/headers/cosf.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/cosf4.h"
-
-static __inline float _cosf(float angle)
-{
- return spu_extract(_cosf4(spu_promote(angle, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/cosf4.h b/newlib/libm/machine/spu/headers/cosf4.h
deleted file mode 100644
index 062ec12ee..000000000
--- a/newlib/libm/machine/spu/headers/cosf4.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _COSF4_H_
-#define _COSF4_H_ 1
-
-
-#include <spu_intrinsics.h>
-
-#include "cos_sin.h"
-
-/*
- * FUNCTION
- * vector float _cosf4(vector float angle)
- *
- * DESCRIPTION
- * The _cosf4 function computes the cosine of a vector of angles
- * (expressed in radians) to an accuracy of single precision floating
- * point.
- *
- */
-static __inline vector float _cosf4(vector float angle)
-{
- vec_int4 octant;
- vec_uint4 select;
- vec_float4 cos, sin;
- vec_float4 toggle_sign, answer;
-
- /* Range reduce the input angle x into the range -PI/4 to PI/4
- * by performing simple modulus.
- */
- MOD_PI_OVER_FOUR_F(angle, octant);
-
- /* Compute the cosine and sine of the range reduced input.
- */
- COMPUTE_COS_SIN_F(angle, cos, sin);
-
- /* For each SIMD element, select which result (cos or sin) to use
- * with a sign correction depending upon the octant of the original
- * angle (Maclaurin series).
- *
- * octants angles select sign toggle
- * ------- ------------ ------ -----------
- * 0 0 to 45 cos no
- * 1,2 45 to 135 sin yes
- * 3,4 135 to 225 cos yes
- * 5,6 225 to 315 sin no
- * 7 315 to 360 cos no
- */
- toggle_sign = (vec_float4)spu_sl(spu_and(spu_add(octant, 2), 4), 29);
- select = spu_cmpeq(spu_and(octant, 2), 0);
-
- answer = spu_xor(spu_sel(sin, cos, select), toggle_sign);
-
- return (answer);
-
-}
-
-#endif /* _COSF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/cosh.h b/newlib/libm/machine/spu/headers/cosh.h
deleted file mode 100644
index 7b8875a08..000000000
--- a/newlib/libm/machine/spu/headers/cosh.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/coshd2.h"
-
-static __inline double _cosh(double x)
-{
- return spu_extract(_coshd2(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/coshd2.h b/newlib/libm/machine/spu/headers/coshd2.h
deleted file mode 100644
index f35f8079c..000000000
--- a/newlib/libm/machine/spu/headers/coshd2.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2006,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _COSHD2_H_
-#define _COSHD2_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "expd2.h"
-#include "recipd2.h"
-
-/*
- * FUNCTION
- * vector float _coshd2(vector double angle)
- *
- * DESCRIPTION
- * _coshd2 computes the hyperbolic cosines of a vector of angles
- * (expressed in radians) to an accuracy of a double precision
- * floating point.
- */
-static __inline vector double _coshd2(vector double x)
-{
-
- // Coefficents for the power series
- vec_double2 f02 = spu_splats(5.00000000000000000000E-1); // 1/(2!)
- vec_double2 f04 = spu_splats(4.16666666666666666667E-2); // 1/(4!)
- vec_double2 f06 = spu_splats(1.38888888888888888889E-3); // 1/(6!)
- vec_double2 f08 = spu_splats(2.48015873015873015873E-5); // 1/(8!)
- vec_double2 f10 = spu_splats(2.75573192239858906526E-7); // 1/(10!)
- vec_double2 f12 = spu_splats(2.08767569878680989792E-9); // 1/(12!)
- vec_double2 f14 = spu_splats(1.14707455977297247139E-11); // 1/(14!)
- vec_double2 f16 = spu_splats(4.77947733238738529744E-14); // 1/(16!)
- vec_double2 f18 = spu_splats(1.56192069685862264622E-16); // 1/(18!)
- vec_double2 f20 = spu_splats(4.11031762331216485848E-19); // 1/(20!)
- vec_double2 f22 = spu_splats(8.89679139245057328675E-22); // 1/(22!)
-
- // Check if the input is within the range [ -1.0 ... 1.0 ]
- // If it is, we want to use the power series, otherwise
- // we want to use the 0.5 * (e^x + e^-x)
-
- // round to float, check if within range. Results will be in
- // slots 0 and 2, so we rotate right 4 bytes, and "or" with ourself
- // to produce 64 bits of all 1's or 0's.
- vec_uint4 use_exp = spu_cmpabsgt(spu_roundtf(x),spu_splats(1.0f));
- use_exp = spu_or(use_exp,spu_rlmaskqwbyte(use_exp,-4));
-
-
- // Perform the calculation of the power series using Horner's method
- vec_double2 result;
- vec_double2 x2 = spu_mul(x,x);
- result = spu_madd(x2,f22,f20);
- result = spu_madd(x2,result,f18);
- result = spu_madd(x2,result,f16);
- result = spu_madd(x2,result,f14);
- result = spu_madd(x2,result,f12);
- result = spu_madd(x2,result,f10);
- result = spu_madd(x2,result,f08);
- result = spu_madd(x2,result,f06);
- result = spu_madd(x2,result,f04);
- result = spu_madd(x2,result,f02);
- result = spu_madd(x2,result,spu_splats(1.0));
-
-
- // Perform calculation as a function of 0.5 * (e^x + e^-x)
- vec_double2 ex = _expd2(x);
- vec_double2 ex_inv = _recipd2(ex);
-
- vec_double2 r2= spu_add(ex,ex_inv);
- r2 = spu_mul(r2,f02); // we can reuse f02 here
-
-
- // Select either the power series or exp version
- result = spu_sel(result,r2,(vec_ullong2)use_exp);
-
- return result;
-
-}
-
-#endif /* _COSHD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/coshf.h b/newlib/libm/machine/spu/headers/coshf.h
deleted file mode 100644
index ae13482ba..000000000
--- a/newlib/libm/machine/spu/headers/coshf.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/coshf4.h"
-
-static __inline float _coshf(float x)
-{
- return spu_extract(_coshf4(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/coshf4.h b/newlib/libm/machine/spu/headers/coshf4.h
deleted file mode 100644
index 453fad4a5..000000000
--- a/newlib/libm/machine/spu/headers/coshf4.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2006,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _COSHF4_H_
-#define _COSHF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "expf4.h"
-#include "recipf4.h"
-
-
-/*
- * FUNCTION
- * vector float _coshf4(vector float x)
- *
- * DESCRIPTION
- * The _coshf4 function computes the hyperbolic cosines of a vector of
- * angles (expressed in radians) to an accuracy of a single precision
- * floating point.
- *
- */
-static __inline vector float _coshf4(vector float x)
-{
- // 1.0000 (above this number, use sinh(x) = 0.5 * (e^x - e^-x)
- vec_uint4 threshold = (vec_uint4)spu_splats(0x3F800000);
-
- vec_uint4 sign_mask = (vec_uint4)spu_splats(0x80000000);
-
- // Coefficents for the Taylor series
- vec_float4 f02 = spu_splats(5.0000000000000000E-1f); // 1/2!
- vec_float4 f04 = spu_splats(4.1666666666666667E-2f); // 1/4!
- vec_float4 f06 = spu_splats(1.3888888888888889E-3f); // 1/6!
- vec_float4 f08 = spu_splats(2.4801587301587302E-5f); // 1/8!
- vec_float4 f10 = spu_splats(2.7557319223985891E-7f); // 1/10!
- vec_float4 f12 = spu_splats(2.0876756987868099E-9f); // 1/12!
-
- // Perform the calculation as a Taylor series
- vec_float4 result;
- vector float x2 = spu_mul(x,x);
- result = spu_madd(x2,f12,f10);
- result = spu_madd(x2,result,f08);
- result = spu_madd(x2,result,f06);
- result = spu_madd(x2,result,f04);
- result = spu_madd(x2,result,f02);
- result = spu_madd(x2,result,spu_splats(1.0f));
-
-
- // Perform calculation as a function of 0.5 * (e^x - e^-x)
- vec_float4 ex = _expf4(x);
- vec_float4 ex_inv = _recipf4(ex);
-
- vec_float4 r2= spu_add(ex,ex_inv);
- r2 = spu_mul(r2,f02); // we can reused f02 here
-
- vec_uint4 xabs = spu_andc((vec_uint4)x,sign_mask);
- vec_uint4 use_exp = spu_cmpgt(xabs,threshold);
-
- // Select either the Taylor or exp version
- result = spu_sel(result,r2,use_exp);
-
- return result;
-}
-#endif /* _COSHF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/divd2.h b/newlib/libm/machine/spu/headers/divd2.h
deleted file mode 100644
index 005194b86..000000000
--- a/newlib/libm/machine/spu/headers/divd2.h
+++ /dev/null
@@ -1,237 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _DIVD2_H_
-#define _DIVD2_H_ 1
-
-#include <spu_intrinsics.h>
-
-/*
- * FUNCTION
- * vector double _divd2(vector double a, vector double b)
- *
- * DESCRIPTION
- * _divd2 divides the vector dividend a by the vector divisor b and
- * returns the resulting vector quotient. Maximum error about 0.5 ulp
- * over entire double range including denorms, compared to true result
- * in round-to-nearest rounding mode. Handles Inf or NaN operands and
- * results correctly.
- */
-static __inline vector double _divd2(vector double a_in, vector double b_in)
-{
- /* Variables */
- vec_int4 exp, exp_bias;
- vec_uint4 no_underflow, overflow;
- vec_float4 mant_bf, inv_bf;
- vec_ullong2 exp_a, exp_b;
- vec_ullong2 a_nan, a_zero, a_inf, a_denorm;
- vec_ullong2 b_nan, b_zero, b_inf, b_denorm;
- vec_ullong2 nan;
- vec_double2 a, b;
- vec_double2 mant_a, mant_b, inv_b, q0, q1, q2, mult;
-
- /* Constants */
- vec_float4 onef = spu_splats(1.0f);
- vec_ullong2 exp_mask = spu_splats(0x7FF0000000000000ULL);
- vec_double2 one = spu_splats(1.0);
-
-#ifdef __SPU_EDP__
- vec_double2 denorm_scale = (vec_double2)spu_splats(0x4330000000000000ULL);
-
- /* Identify all possible special values that must be accomodated including:
- * +-0, +-infinity, +-denorm, and NaNs.
- */
- a_nan = spu_testsv(a_in, (SPU_SV_NAN));
- a_zero = spu_testsv(a_in, (SPU_SV_NEG_ZERO | SPU_SV_POS_ZERO));
- a_inf = spu_testsv(a_in, (SPU_SV_NEG_INFINITY | SPU_SV_POS_INFINITY));
- a_denorm = spu_testsv(a_in, (SPU_SV_NEG_DENORM | SPU_SV_POS_DENORM));
-
- b_nan = spu_testsv(b_in, (SPU_SV_NAN));
- b_zero = spu_testsv(b_in, (SPU_SV_NEG_ZERO | SPU_SV_POS_ZERO));
- b_inf = spu_testsv(b_in, (SPU_SV_NEG_INFINITY | SPU_SV_POS_INFINITY));
- b_denorm = spu_testsv(b_in, (SPU_SV_NEG_DENORM | SPU_SV_POS_DENORM));
-
- /* Scale denorm inputs to into normalized numbers by conditionally scaling the
- * input parameters.
- */
- a = spu_sel(a_in, spu_mul(a_in, denorm_scale), a_denorm);
- b = spu_sel(b_in, spu_mul(b_in, denorm_scale), b_denorm);
-
-#else /* !__SPU_EDP__ */
- vec_uint4 a_exp, b_exp;
- vec_ullong2 a_mant_0, b_mant_0;
- vec_ullong2 a_exp_1s, b_exp_1s;
- vec_ullong2 sign_exp_mask;
-
- vec_uint4 exp_mask_u32 = spu_splats((unsigned int)0x7FF00000);
- vec_uchar16 splat_hi = (vec_uchar16){0,1,2,3, 0,1,2,3, 8, 9,10,11, 8,9,10,11};
- vec_uchar16 swap_32 = (vec_uchar16){4,5,6,7, 0,1,2,3, 12,13,14,15, 8,9,10,11};
- vec_ullong2 sign_mask = spu_splats(0x8000000000000000ULL);
- vec_double2 exp_53 = (vec_double2)spu_splats(0x0350000000000000ULL);
-
- sign_exp_mask = spu_or(sign_mask, exp_mask);
-
- /* Extract the floating point components from each of the operands including
- * exponent and mantissa.
- */
- a_exp = (vec_uint4)spu_and((vec_uint4)a_in, exp_mask_u32);
- a_exp = spu_shuffle(a_exp, a_exp, splat_hi);
- b_exp = (vec_uint4)spu_and((vec_uint4)b_in, exp_mask_u32);
- b_exp = spu_shuffle(b_exp, b_exp, splat_hi);
-
- a_mant_0 = (vec_ullong2)spu_cmpeq((vec_uint4)spu_andc((vec_ullong2)a_in, sign_exp_mask), 0);
- a_mant_0 = spu_and(a_mant_0, spu_shuffle(a_mant_0, a_mant_0, swap_32));
-
- b_mant_0 = (vec_ullong2)spu_cmpeq((vec_uint4)spu_andc((vec_ullong2)b_in, sign_exp_mask), 0);
- b_mant_0 = spu_and(b_mant_0, spu_shuffle(b_mant_0, b_mant_0, swap_32));
-
- a_exp_1s = (vec_ullong2)spu_cmpeq(a_exp, exp_mask_u32);
- b_exp_1s = (vec_ullong2)spu_cmpeq(b_exp, exp_mask_u32);
-
- /* Identify all possible special values that must be accomodated including:
- * +-denorm, +-0, +-infinity, and NaNs.
- */
- a_denorm = (vec_ullong2)spu_cmpeq(a_exp, 0); /* really is a_exp_0 */
- a_nan = spu_andc(a_exp_1s, a_mant_0);
- a_zero = spu_and (a_denorm, a_mant_0);
- a_inf = spu_and (a_exp_1s, a_mant_0);
-
- b_denorm = (vec_ullong2)spu_cmpeq(b_exp, 0); /* really is b_exp_0 */
- b_nan = spu_andc(b_exp_1s, b_mant_0);
- b_zero = spu_and (b_denorm, b_mant_0);
- b_inf = spu_and (b_exp_1s, b_mant_0);
-
- /* Scale denorm inputs to into normalized numbers by conditionally scaling the
- * input parameters.
- */
- a = spu_sub(spu_or(a_in, exp_53), spu_sel(exp_53, a_in, sign_mask));
- a = spu_sel(a_in, a, a_denorm);
-
- b = spu_sub(spu_or(b_in, exp_53), spu_sel(exp_53, b_in, sign_mask));
- b = spu_sel(b_in, b, b_denorm);
-
-#endif /* __SPU_EDP__ */
-
- /* Extract the divisor and dividend exponent and force parameters into the signed
- * range [1.0,2.0) or [-1.0,2.0).
- */
- exp_a = spu_and((vec_ullong2)a, exp_mask);
- exp_b = spu_and((vec_ullong2)b, exp_mask);
-
- mant_a = spu_sel(a, one, (vec_ullong2)exp_mask);
- mant_b = spu_sel(b, one, (vec_ullong2)exp_mask);
-
- /* Approximate the single reciprocal of b by using
- * the single precision reciprocal estimate followed by one
- * single precision iteration of Newton-Raphson.
- */
- mant_bf = spu_roundtf(mant_b);
- inv_bf = spu_re(mant_bf);
- inv_bf = spu_madd(spu_nmsub(mant_bf, inv_bf, onef), inv_bf, inv_bf);
-
- /* Perform 2 more Newton-Raphson iterations in double precision. The
- * result (q1) is in the range (0.5, 2.0).
- */
- inv_b = spu_extend(inv_bf);
- inv_b = spu_madd(spu_nmsub(mant_b, inv_b, one), inv_b, inv_b);
- q0 = spu_mul(mant_a, inv_b);
- q1 = spu_madd(spu_nmsub(mant_b, q0, mant_a), inv_b, q0);
-
-
- /* Determine the exponent correction factor that must be applied
- * to q1 by taking into account the exponent of the normalized inputs
- * and the scale factors that were applied to normalize them.
- */
- exp = spu_rlmaska(spu_sub((vec_int4)exp_a, (vec_int4)exp_b), -20);
- exp = spu_add(exp, (vec_int4)spu_add(spu_and((vec_int4)a_denorm, -0x34), spu_and((vec_int4)b_denorm, 0x34)));
-
- /* Bias the quotient exponent depending on the sign of the exponent correction
- * factor so that a single multiplier will ensure the entire double precision
- * domain (including denorms) can be achieved.
- *
- * exp bias q1 adjust exp
- * ===== ======== ==========
- * positive 2^+65 -65
- * negative 2^-64 +64
- */
- exp_bias = spu_xor(spu_rlmaska(exp, -31), 64);
-
-
- exp = spu_sub(exp, exp_bias);
-
- q1 = spu_sel(q1, (vec_double2)spu_add((vec_int4)q1, spu_sl(exp_bias, 20)), exp_mask);
-
- /* Compute a multiplier (mult) to applied to the quotient (q1) to produce the
- * expected result.
- */
- exp = spu_add(exp, 0x3FF);
- no_underflow = spu_cmpgt(exp, 0);
- overflow = spu_cmpgt(exp, 0x7FF);
- exp = spu_and(spu_sl(exp, 20), (vec_int4)no_underflow);
- exp = spu_and(exp, (vec_int4)exp_mask);
- mult = spu_sel((vec_double2)exp, (vec_double2)exp_mask, (vec_ullong2)overflow);
-
- /* Handle special value conditions. These include:
- *
- * 1) IF either operand is a NaN OR both operands are 0 or INFINITY THEN a NaN
- * results.
- * 2) ELSE IF the dividend is an INFINITY OR the divisor is 0 THEN a INFINITY results.
- * 3) ELSE IF the dividend is 0 OR the divisor is INFINITY THEN a 0 results.
- */
- mult = spu_andc(mult, (vec_double2)spu_or(a_zero, b_inf));
- mult = spu_sel(mult, (vec_double2)exp_mask, spu_or(a_inf, b_zero));
-
- nan = spu_or(a_nan, b_nan);
- nan = spu_or(nan, spu_and(a_zero, b_zero));
- nan = spu_or(nan, spu_and(a_inf, b_inf));
-
- mult = spu_or(mult, (vec_double2)nan);
-
- /* Scale the final quotient */
-
- q2 = spu_mul(q1, mult);
-
- return (q2);
-}
-
-#endif /* _DIVD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/divf4.h b/newlib/libm/machine/spu/headers/divf4.h
deleted file mode 100644
index cf4b7c3ac..000000000
--- a/newlib/libm/machine/spu/headers/divf4.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _DIVF4_H_
-#define _DIVF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-/*
- * FUNCTION
- * vector float _divf4(vector float dividend, vector float divisor)
- *
- * DESCRIPTION
- * The _divf4 function divides the vector dividend by the vector divisor
- * and returns the resulting vector quotient.
- *
- */
-static __inline vector float _divf4(vector float a, vector float b)
-{
-
- /* This function has been designed to provide a
- * full function operation that presisely computes
- * the quotient for the entire range of extended
- * single precision inputs <a> and <b>. This includes:
- *
- * 1) Computing the quotient to full single precision
- * floating point accuracy.
- * 2) Round the result consistently with the rounding
- * mode of the processor - truncated toward zero.
- * 3) Underflow and overflow results are clamped to
- * Smin and Smax and flagged with the appropriate
- * UNF or OVF exception in the FPSCR.
- * 4) Divide By Zero (DBZ) exception is produced when
- * the divisor <b> has a zero exponent. A quotient
- * of correctly signed Smax is produced.
- * 5) Denorm/zero divided by a denorm/zero generates
- * a DBZ with the results undefined.
- * 6) Resulting denorm quotients will be coerced to +0.
- * 7) If a non-compliant IEEE result is produced, the
- * a DIFF exception is generated.
- */
-
- vector float inv_b, err, q0, q1, q2;
- vector float mult;
- vector float mant_a, mant_b;
- vector float one = spu_splats(1.0f);
- vector unsigned int exp, exp_a, exp_b, overflow;
- vector unsigned int exp_mask = (vec_uint4)spu_splats(0x7F800000);
-
- /* If b has a zero exponent, then set the divide by zero
- * (DBZ) exception flag. The estimate result is discarded.
- * Note: This must be implemented as inline assembly. Otherwise
- * the optimizer removes it.
- */
- (void)si_frest((qword)(b));
-
- /* For computing the quotient, force the divisor and
- * dividend into the range (1.0 <= 0 < 2.0).
- */
- mant_a = spu_sel(a, one, exp_mask);
- mant_b = spu_sel(b, one, exp_mask);
-
- /* Compute the quotient using reciprocal estimate
- * followed by one iteration of the Newton-Raphson.
- */
- inv_b = spu_re(mant_b);
- q0 = spu_mul(mant_a, inv_b);
- q1 = spu_nmsub(mant_b, q0, mant_a);
- q1 = spu_madd(inv_b, q1, q0);
-
- /* Due to truncation error, the quotient result
- * may be low by 1 ulp (unit of least position),
- * Conditionally add one if the estimate is too
- * small.
- */
- q2 = (vector float)spu_add((vector unsigned int)(q1), 1);
- err = spu_nmsub(mant_b, q2, mant_a);
- q2 = spu_sel(q1, q2, spu_cmpgt((vector signed int)err, -1));
-
-
- /* Compute the quotient's expected exponent. If the exponent
- * is out of range, then force the resulting exponent to 0.
- * (127 with the bias). We correct for the out of range
- * values by computing a multiplier (mult) that will force the
- * result to the correct out of range value and set the
- * correct exception flag (UNF, OVF, or neither). The multiplier
- * is also conditioned to generate correctly signed Smax if the
- * divisor b is a denorm or zero.
- */
- exp_a = spu_and((vector unsigned int)a, exp_mask);
- exp_b = spu_and((vector unsigned int)b, exp_mask);
- exp = spu_add(spu_sub(spu_add(exp_a, (vector unsigned int)one), exp_b), spu_cmpabsgt(mant_b, mant_a));
-
- /* The default multiplier is 1.0. If an underflow is detected (ie,
- * either the dividend <a> is a denorm/zero, or the computed exponent is
- * less than or equal to a biased 0), force the multiplier to 0.0.
- */
- mult = spu_and(one, (vector float)spu_cmpgt((vector signed int)exp, 0));
-
- /* Force the multiplier to positive Smax (0x7FFFFFFF) and the biased exponent
- * to 127, if the divisor is denorm/zero or the computed biased exponent is
- * greater than 255.
- */
-
- overflow = spu_or(spu_cmpeq(exp_b, 0), spu_cmpeq(spu_rlmask(exp, -30), 2));
- exp = spu_sel(exp, (vector unsigned int)one, overflow);
-
- mult = spu_or(mult, (vector float)spu_rlmask(overflow, -1));
- mult = spu_andc(mult, (vector float)spu_cmpeq(exp_a, 0));
-
- /* Insert the exponent into the result and perform the
- * final multiplication.
- */
- q2 = spu_sel(q2, (vector float)exp, exp_mask);
- q2 = spu_mul(q2, mult);
-
- return (q2);
-
-}
-
-#endif /* _DIVF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/dom_chkd_less_than.h b/newlib/libm/machine/spu/headers/dom_chkd_less_than.h
deleted file mode 100644
index f7018d62a..000000000
--- a/newlib/libm/machine/spu/headers/dom_chkd_less_than.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- Copyright 2007
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <errno.h>
-
-/*
- * dom_chkd_less_than: "domain check double less than"
- *
- * Set errno to EDOM if vx < vc.
- *
- * This is for scalar use only, the input is a vector double, but both
- * values in both vectors must be the same.
- */
-
-static __inline void dom_chkd_less_than (vector double vx, vector double vc)
-{
- vector unsigned long long domain;
- vector signed int verrno;
- vector signed int fail = { EDOM, EDOM, EDOM, EDOM };
-
- domain = spu_cmpgt(vc, vx);
- verrno = spu_splats(errno);
- /*
- * domain is 2 long longs, but they have the same value. Even so, no
- * special code is needed to extract the scalar errno (we have all ones
- * or all zeroes for the preferred scalar slot).
- */
- errno = spu_extract(spu_sel(verrno, fail, (vector unsigned int) domain), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/dom_chkd_negone_one.h b/newlib/libm/machine/spu/headers/dom_chkd_negone_one.h
deleted file mode 100644
index e364f86f8..000000000
--- a/newlib/libm/machine/spu/headers/dom_chkd_negone_one.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- Copyright 2007
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <errno.h>
-
-/*
- * dom_chkd_negone_one: "domain check double negative-one and one":
- *
- * Set errno to EDOM if |x| > 1.0.
- *
- * This is for scalar use only, the input is a vector double, but both
- * values in the vector must be the same.
- *
- * We *only* set errno, and do not bother setting the actual return value
- * of any functions to a NAN. That way, we have the same method for double
- * and single precision (there are no float nans for single precision so
- * those can't return a nan).
- *
- * Note that for newlib, errno is/was a function call, so not so obviously
- * we are not branchless here. Unknown if adding a branch (and avoiding a
- * call to __errno) is faster than this current code.
- */
-
-static __inline void dom_chkd_negone_one (vector double vx)
-{
- vector unsigned long long domain;
- vector signed int verrno;
- vector double ones = { 1.0, 1.0 };
- vector signed int fail = { EDOM, EDOM, EDOM, EDOM };
-
- domain = spu_cmpabsgt(vx, ones);
- verrno = spu_splats(errno);
- /*
- * domain is 2 long longs, but they have the same value. Even so, no
- * special code is needed to extract the scalar errno (we have all ones
- * or all zeroes for the preferred scalar slot).
- */
- errno = spu_extract(spu_sel(verrno, fail, (vector unsigned int) domain), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/dom_chkf_less_than.h b/newlib/libm/machine/spu/headers/dom_chkf_less_than.h
deleted file mode 100644
index 7475b2d91..000000000
--- a/newlib/libm/machine/spu/headers/dom_chkf_less_than.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- Copyright 2007
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <errno.h>
-
-/*
- * dom_chkf_less_than: "domain check float less than"
- *
- * Set errno to EDOM if vx < vc.
- *
- * This is for scalar use only, the input is a vector float, but both
- * values in both vectors must be the same.
- */
-
-static __inline void dom_chkf_less_than (vector float vx, vector float vc)
-{
- vector unsigned int domain;
- vector signed int verrno;
- vector signed int fail = { EDOM, EDOM, EDOM, EDOM };
-
- domain = spu_cmpgt(vc, vx);
- verrno = spu_splats(errno);
- /*
- * domain is 2 long longs, but they have the same value. Even so, no
- * special code is needed to extract the scalar errno (we have all ones
- * or all zeroes for the preferred scalar slot).
- */
- errno = spu_extract(spu_sel(verrno, fail, (vector unsigned int) domain), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/dom_chkf_negone_one.h b/newlib/libm/machine/spu/headers/dom_chkf_negone_one.h
deleted file mode 100644
index f2671a9df..000000000
--- a/newlib/libm/machine/spu/headers/dom_chkf_negone_one.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- Copyright 2007
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <errno.h>
-
-/*
- * dom_chkf_negone_one: "domain check float negative-one and one":
- *
- * Set errno to EDOM if |x| > 1.0.
- *
- * This is for scalar use only, the input is a vector float, but all
- * values in the vector must be the same.
- *
- * We *only* set errno, and do not bother setting the actual return value
- * of any functions to a NAN. That way, we have the same method for float
- * and single precision (there are no float nans for single precision so
- * those can't return a nan).
- *
- * Note that for newlib, errno is/was a function call, so not so obviously
- * we are not branchless here. Unknown if adding a branch (and avoiding a
- * call to __errno) is faster than this current code.
- */
-
-static __inline void dom_chkf_negone_one (vector float vx)
-{
- vector unsigned int domain;
- vector signed int verrno;
- vector float ones = { 1.0, 1.0, 1.0, 1.0 };
- vector signed int fail = { EDOM, EDOM, EDOM, EDOM };
-
- domain = spu_cmpabsgt(vx, ones);
- verrno = spu_splats(errno);
- /*
- * domain is 4 ints, but they have the same value, even so no special
- * code is needed to extract the scalar errno (we have all ones or all
- * zeroes for the preferred scalar slot).
- */
- errno = spu_extract(spu_sel(verrno, fail, (vector unsigned int) domain), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/erf.h b/newlib/libm/machine/spu/headers/erf.h
deleted file mode 100644
index c0fbec888..000000000
--- a/newlib/libm/machine/spu/headers/erf.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/erfd2.h"
-
-static __inline double _erf(double x)
-{
- return spu_extract(_erfd2(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/erf_utils.h b/newlib/libm/machine/spu/headers/erf_utils.h
deleted file mode 100644
index af83b74f1..000000000
--- a/newlib/libm/machine/spu/headers/erf_utils.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _ERF_UTILS_H_
-#define _ERF_UTILS_H_ 1
-
-#include <spu_intrinsics.h>
-
-
-/*
- * This file contains approximation methods for the erf and erfc functions.
- */
-
-
-#define SQRT_PI 1.7724538509055160272981674833411451827975494561223871282138077898529113E0
-#define INV_SQRT_PI 5.6418958354775628694807945156077258584405062932899885684408572171064247E-1
-#define TWO_OVER_SQRT_PI 1.1283791670955125738961589031215451716881012586579977136881714434212849E0
-
-/*
- * Coefficients of Taylor Series Expansion of Error Function
- */
-#define TAYLOR_ERF_00 1.0000000000000000000000000000000000000000000000000000000000000000000000E0
-#define TAYLOR_ERF_01 -3.3333333333333333333333333333333333333333333333333333333333333333333333E-1
-#define TAYLOR_ERF_02 1.0000000000000000000000000000000000000000000000000000000000000000000000E-1
-#define TAYLOR_ERF_03 -2.3809523809523809523809523809523809523809523809523809523809523809523810E-2
-#define TAYLOR_ERF_04 4.6296296296296296296296296296296296296296296296296296296296296296296296E-3
-#define TAYLOR_ERF_05 -7.5757575757575757575757575757575757575757575757575757575757575757575758E-4
-#define TAYLOR_ERF_06 1.0683760683760683760683760683760683760683760683760683760683760683760684E-4
-#define TAYLOR_ERF_07 -1.3227513227513227513227513227513227513227513227513227513227513227513228E-5
-#define TAYLOR_ERF_08 1.4589169000933706816059757236227824463118580765639589169000933706816060E-6
-#define TAYLOR_ERF_09 -1.4503852223150468764503852223150468764503852223150468764503852223150469E-7
-#define TAYLOR_ERF_10 1.3122532963802805072646342487612328882170152011421852691693961535231377E-8
-#define TAYLOR_ERF_11 -1.0892221037148573380457438428452921206544394950192051641327003645844226E-9
-#define TAYLOR_ERF_12 8.3507027951472395916840361284805729250173694618139062583507027951472396E-11
-#define TAYLOR_ERF_13 -5.9477940136376350368119915445018325676761890753660300985403866062302276E-12
-#define TAYLOR_ERF_14 3.9554295164585257633971372340283122987009139171153402133150354277885750E-13
-#define TAYLOR_ERF_15 -2.4668270102644569277100425760606678852113226579859111007771188689434124E-14
-#define TAYLOR_ERF_16 1.4483264643598137264964265124598618265445265605599099265926266086599580E-15
-#define TAYLOR_ERF_17 -8.0327350124157736091398445228866286178099792434415172399254921152569101E-17
-#define TAYLOR_ERF_18 4.2214072888070882330314498243398198441944335363431396906515348954052831E-18
-#define TAYLOR_ERF_19 -2.1078551914421358248605080094544309613386510235451574703658136454790212E-19
-#define TAYLOR_ERF_20 1.0025164934907719167019489313258878962464315843690383090764235630936808E-20
-#define TAYLOR_ERF_21 -4.5518467589282002862436219473268442686715055325725991884976042178118399E-22
-#define TAYLOR_ERF_22 1.9770647538779051748330883205561040762916640191981996475292624380394860E-23
-#define TAYLOR_ERF_23 -8.2301492992142213568444934713251326025092396728879726307878639881384709E-25
-#define TAYLOR_ERF_24 3.2892603491757517327524761322472893904586246991984244357740612877764297E-26
-#define TAYLOR_ERF_25 -1.2641078988989163521950692586675857265291969432213552733563059066748632E-27
-#define TAYLOR_ERF_26 4.6784835155184857737263085770716162592880293254201102279514950101899871E-29
-#define TAYLOR_ERF_27 -1.6697617934173720269864939702679842541566703989714871520634965356233624E-30
-#define TAYLOR_ERF_28 5.7541916439821717721965644338808981189609568886862025916975131240153466E-32
-#define TAYLOR_ERF_29 -1.9169428621097825307726719621929350834644917747230482041306735714136456E-33
-#define TAYLOR_ERF_30 6.1803075882227961374638057797477142035193997108557291827163792739565622E-35
-#define TAYLOR_ERF_31 -1.9303572088151078565555153741147494440075954038003045578376811864380455E-36
-#define TAYLOR_ERF_32 5.8467550074688362962979552196744814890614668480489993819122074396921572E-38
-#define TAYLOR_ERF_33 -1.7188560628017836239681912676564509126594090688520350964463748691994130E-39
-#define TAYLOR_ERF_34 4.9089239645234229670020807729318930583197104694410209489303971115243253E-41
-#define TAYLOR_ERF_35 -1.3630412617791395763506783635102640685072837923196396196225247512884444E-42
-#define TAYLOR_ERF_36 3.6824935154611457351939940566677606112639706717920248475342183158858278E-44
-#define TAYLOR_ERF_37 -9.6872802388707617538436600409638387251268417672366779772972229571050606E-46
-#define TAYLOR_ERF_38 2.4830690974549115910398991902675594818336060579041382375163763560590552E-47
-#define TAYLOR_ERF_39 -6.2056579196373967059419746072899084745598074150801247740591035188752759E-49
-#define TAYLOR_ERF_40 1.5131079495412170980537530678268603996611876104670674603415715370097123E-50
-#define TAYLOR_ERF_41 -3.6015793098101259166133998969725445892611283117200253978156713046660799E-52
-#define TAYLOR_ERF_42 8.3734196838722815428266720293759440030440798283686864991232694198118944E-54
-#define TAYLOR_ERF_43 -1.9025412272898795272394202686366085010926137006451172211319911806576077E-55
-#define TAYLOR_ERF_44 4.2267897541935525758383443148974703675959497435169866761614717241371774E-57
-#define TAYLOR_ERF_45 -9.1864295023986856959612367283485924961181813717463202485560679718732304E-59
-
- /*
- * Taylor Series Expansion of Erf
- *
- * infinite
- * ---------
- * - n 2n
- * 2 * x - -1 * x
- * erf(x) = ---- * - ------------
- * sqrt(pi) - (2n + 1) * n!
- * -
- * ---------
- * n = 0
- *
- * 45 terms give us accurate results for 0 <= x < 2.5
- */
-#define TAYLOR_ERF(_xabs, _xsqu, _tresult) { \
- _tresult = spu_madd(_xsqu, spu_splats(TAYLOR_ERF_45), spu_splats(TAYLOR_ERF_44)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_43)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_42)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_41)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_40)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_39)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_38)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_37)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_36)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_35)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_34)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_33)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_32)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_31)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_30)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_29)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_28)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_27)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_26)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_25)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_24)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_23)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_22)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_21)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_20)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_19)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_18)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_17)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_16)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_15)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_14)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_13)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_12)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_11)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_10)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_09)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_08)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_07)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_06)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_05)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_04)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_03)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_02)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_01)); \
- _tresult = spu_madd(_tresult, _xsqu, spu_splats(TAYLOR_ERF_00)); \
- _tresult = spu_mul(_tresult, _xabs); \
- _tresult = spu_mul(_tresult, spu_splats(TWO_OVER_SQRT_PI)); \
-}
-
-
- /*
- * Continued Fractions Approximation of Erfc()
- * ( )
- * 1 ( 1 v 2v 3v )
- * erfc(x) = ------------------------- * ( --- --- --- --- ... )
- * sqrt(pi) * x * exp(x^2) ( 1+ 1+ 1+ 1+ )
- * ( )
- * Continued Fractions
- * 1
- * v = -----
- * 2*x^2
- *
- * We are using a backward recurrence calculation to estimate the continued fraction.
- *
- * p = a p + b q
- * m,n m m+1,n m m+1,n
- *
- * q = p
- * m,n m+1,n
- *
- * With,
- *
- * p = a ; q = 1
- * n,n n n,n
- *
- *
- * a = 0, b = 1,
- * 0 0
- *
- * a = 1, b = n/2x^2
- * n n
- *
- *
- * F = p / q
- * 0,n 0,n 0,n
- *
- * Ref: "Computing the Incomplete Gamma Function to Arbitrary Precision",
- * by Serge Winitzki, Department of Physics, Ludwig-Maximilians University, Munich, Germany.
- *
- */
-
-#define CONTFRAC_ERFCF4(_xabs, _xsqu, _presult) { \
- vec_float4 v; \
- vec_float4 p, q, plast, qlast; \
- vec_float4 factor; \
- vec_float4 inv_xsqu; \
- inv_xsqu = _recipf4(_xsqu); \
- v = spu_mul(inv_xsqu, onehalff); \
- p = spu_splats(1.945f); q = onef; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats( 4.0f)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats( 3.0f)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats( 2.0f)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats( 1.0f)), plast); q = plast; plast = p; qlast = q; \
- p = qlast; q = plast; \
- factor = spu_mul(spu_splats((float)SQRT_PI), spu_mul(_xabs, _expf4(_xsqu))); \
- _presult = _divf4(p, spu_mul(factor, q)); \
-}
-
-#define CONTFRAC_ERFC(_xabs, _xsqu, _presult) { \
- vec_double2 v; \
- vec_double2 p, q, plast, qlast; \
- vec_double2 factor; \
- vec_double2 inv_xsqu; \
- inv_xsqu = _recipd2(_xsqu); \
- v = spu_mul(inv_xsqu, onehalfd); \
- p = spu_splats(3.025); q = oned; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(40.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(39.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(38.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(37.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(36.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(35.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(34.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(33.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(32.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(31.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(30.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(29.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(28.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(27.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(26.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(25.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(24.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(23.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(22.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(21.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(20.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(19.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(18.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(17.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(16.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(15.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(14.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(13.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(12.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(11.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats(10.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats( 9.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats( 8.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats( 7.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats( 6.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats( 5.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats( 4.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats( 3.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats( 2.0)), plast); q = plast; plast = p; qlast = q; \
- p = spu_madd(qlast, spu_mul(v, spu_splats( 1.0)), plast); q = plast; plast = p; qlast = q; \
- p = qlast; q = plast; \
- factor = spu_mul(spu_splats(SQRT_PI), spu_mul(_xabs, _expd2(_xsqu))); \
- _presult = _divd2(p, spu_mul(factor, q)); \
-}
-
-#endif /* _ERF_UTILS_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/erfc.h b/newlib/libm/machine/spu/headers/erfc.h
deleted file mode 100644
index 542c4bbc2..000000000
--- a/newlib/libm/machine/spu/headers/erfc.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/erfcd2.h"
-
-static __inline double _erfc(double x)
-{
- return spu_extract(_erfcd2(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/erfcd2.h b/newlib/libm/machine/spu/headers/erfcd2.h
deleted file mode 100644
index 9112fdd70..000000000
--- a/newlib/libm/machine/spu/headers/erfcd2.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _ERFCD2_H_
-#define _ERFCD2_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "expd2.h"
-#include "recipd2.h"
-#include "divd2.h"
-#include "erf_utils.h"
-
-/*
- * FUNCTION
- * vector double _erfcd2(vector double x)
- *
- * DESCRIPTION
- * The erfcd2 function computes the complement error function of each element of x.
- *
- * Accuracy Note: We would benefit from a rational approximation in the domain
- * 1.2 < x < 2.0 and also around x = 2.5.
- *
- * C99 Special Cases:
- * - erfc(+0) returns +1
- * - erfc(-0) returns +1
- * - erfc(+infinite) returns +0
- * - erfc(-infinite) returns +2
- *
- * Other Cases:
- * - erfc(Nan) returns Nan
- *
- */
-
-static __inline vector double _erfcd2(vector double x)
-{
- vec_uchar16 dup_even = ((vec_uchar16) { 0,1,2,3, 0,1,2,3, 8,9,10,11, 8,9,10,11 });
- vec_double2 onehalfd = spu_splats(0.5);
- vec_double2 zerod = spu_splats(0.0);
- vec_double2 oned = spu_splats(1.0);
- vec_double2 twod = spu_splats(2.0);
- vec_double2 sign_mask = spu_splats(-0.0);
-
- /* This is where we switch from near zero approx. */
- vec_float4 approx_point = spu_splats(1.71f);
-
- vec_double2 xabs, xsqu, xsign;
- vec_uint4 isneg;
- vec_double2 tresult, presult, result;
-
- xsign = spu_and(x, sign_mask);
- xabs = spu_andc(x, sign_mask);
- xsqu = spu_mul(x, x);
-
- /*
- * Use Taylor Series for x near 0
- * Preserve sign of x in result, since erf(-x) = -erf(x)
- * This approximation is for erf, so adjust for erfc.
- */
- TAYLOR_ERF(xabs, xsqu, tresult);
- tresult = spu_or(tresult, xsign);
- tresult = spu_sub(oned, tresult);
-
- /*
- * Now, use the Continued Fractions approximation away
- * from 0. If x < 0, use erfc(-x) = 2 - erfc(x)
- */
- CONTFRAC_ERFC(xabs, xsqu, presult);
- isneg = (vec_uint4)spu_shuffle(x, x, dup_even);
- isneg = spu_rlmaska(isneg, -32);
- presult = spu_sel(presult, spu_sub(twod, presult), (vec_ullong2)isneg);
-
- /*
- * Select the appropriate approximation.
- */
- vec_float4 xf = spu_roundtf(xabs);
- xf = spu_shuffle(xf, xf, dup_even);
- result = spu_sel(tresult, presult, (vec_ullong2)spu_cmpgt(xf, approx_point));
-
- /*
- * Special cases
- */
- result = spu_sel(result, twod, spu_testsv(x, SPU_SV_NEG_INFINITY));
- result = spu_sel(result, zerod, spu_testsv(x, SPU_SV_POS_INFINITY));
- result = spu_sel(result, x, spu_testsv(x, SPU_SV_NEG_DENORM | SPU_SV_POS_DENORM));
-
- return result;
-}
-
-#endif /* _ERFCD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/erfcf.h b/newlib/libm/machine/spu/headers/erfcf.h
deleted file mode 100644
index f2c589cc1..000000000
--- a/newlib/libm/machine/spu/headers/erfcf.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/erfcf4.h"
-
-static __inline float _erfcf(float x)
-{
- return spu_extract(_erfcf4(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/erfcf4.h b/newlib/libm/machine/spu/headers/erfcf4.h
deleted file mode 100644
index 0ff7fe381..000000000
--- a/newlib/libm/machine/spu/headers/erfcf4.h
+++ /dev/null
@@ -1,439 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _ERFCF4_H_
-#define _ERFCF4_H_ 1
-
-#include <spu_intrinsics.h>
-#include "erff4.h"
-#include "erf_utils.h"
-#include "recipf4.h"
-#include "expf4.h"
-#include "divf4.h"
-
-/*
- * FUNCTION
- * vector float _erfcf4(vector float x)
- *
- * DESCRIPTION
- * The erfcf4 function computes the complement error function of each element of x.
- *
- * C99 Special Cases:
- * - erfc(+0) returns +1
- * - erfc(-0) returns +1
- * - erfc(+infinite) returns +0
- * - erfc(-infinite) returns +2
- *
- */
-
-static __inline vector float _erfcf4(vector float x)
-{
- vec_float4 sign_maskf = spu_splats(-0.0f);
- vec_float4 zerof = spu_splats(0.0f);
- vec_float4 onehalff = spu_splats(0.5f);
- vec_float4 onef = spu_splats(1.0f);
- vec_float4 twof = spu_splats(2.0f);
- vec_float4 clamp = spu_splats(10.0542f); // Erfc = 0 above this (in single precision)
- vec_float4 xabs = spu_andc(x, sign_maskf);
- vec_float4 result;
-
- /*
- * First thing we do is setup the description of each partition.
- * This consists of:
- * - Start x of partition
- * - Offset (used for evaluating power series expanded around a point)
- * - Truncation adjustment.
- */
-
-
- /***************************************************************
- * REGION 0: Approximation Near 0 from Above
- *
- */
-#define SDM_ERFCF4_0_START 0.0f
-#define SDM_ERFCF4_0_OFF 0.0f
-#define SDM_ERFCF4_0_TRUNC 1u
-
-#define SDM_ERFCF4_0_00 0.9999999999999949135f
-#define SDM_ERFCF4_0_01 -1.1283791670931702608f
-#define SDM_ERFCF4_0_02 -1.8051894620430502228e-10f
-#define SDM_ERFCF4_0_03 0.37612639455729408814f
-#define SDM_ERFCF4_0_04 -8.8929793006257568262e-8f
-#define SDM_ERFCF4_0_05 -0.11283705324835578294f
-#define SDM_ERFCF4_0_06 -5.4670494993502827210e-6f
-#define SDM_ERFCF4_0_07 0.026889802515535093351f
-#define SDM_ERFCF4_0_08 -0.000071498114084857387620f
-#define SDM_ERFCF4_0_09 -0.0050714210985129775210f
-#define SDM_ERFCF4_0_10 -0.00022683372291701701701f
-#define SDM_ERFCF4_0_11 0.0010796064437231401311f
-#define SDM_ERFCF4_0_12 -0.00012982218714593684809f
-#define SDM_ERFCF4_0_13 -0.00010102962499433144847f
-#define SDM_ERFCF4_0_14 0.000025784829228223517886f
-
-
- /***************************************************************
- * REGION 1: Near 1
- */
-#define SDM_ERFCF4_1_START 0.88f
-#define SDM_ERFCF4_1_OFF 1.125f
-#define SDM_ERFCF4_1_TRUNC 1u
-
-#define SDM_ERFCF4_1_00 0.111611768298292224f
-#define SDM_ERFCF4_1_01 -0.318273958500769283f
-#define SDM_ERFCF4_1_02 0.358058203313365464f
-#define SDM_ERFCF4_1_03 -0.162452332984767661f
-#define SDM_ERFCF4_1_04 -0.0279732971338566734f
-#define SDM_ERFCF4_1_05 0.0613236836056658061f
-#define SDM_ERFCF4_1_06 -0.0155368354497628942f
-#define SDM_ERFCF4_1_07 -0.00960689422582997228f
-#define SDM_ERFCF4_1_08 0.00603126088310672760f
-#define SDM_ERFCF4_1_09 0.000360191989801368303f
-#define SDM_ERFCF4_1_10 -0.00115326735470205975f
-#define SDM_ERFCF4_1_11 0.000176955087857924673f
-#define SDM_ERFCF4_1_12 0.000141558399011799664f
-#define SDM_ERFCF4_1_13 -0.0000494556968345700811f
-#define SDM_ERFCF4_1_14 0.0f
-
-
- /***************************************************************
- * REGION 2:
- */
-#define SDM_ERFCF4_2_START 1.50f
-#define SDM_ERFCF4_2_OFF 1.75f
-#define SDM_ERFCF4_2_TRUNC 0u
-
-#define SDM_ERFCF4_2_00 0.0133283287808175777f
-#define SDM_ERFCF4_2_01 -0.0527749959301503715f
-#define SDM_ERFCF4_2_02 0.0923562428777631589f
-#define SDM_ERFCF4_2_03 -0.0901572847140068856f
-#define SDM_ERFCF4_2_04 0.0481022098321682995f
-#define SDM_ERFCF4_2_05 -0.00662436146831574865f
-#define SDM_ERFCF4_2_06 -0.00896304509872736070f
-#define SDM_ERFCF4_2_07 0.00605875147039124009f
-#define SDM_ERFCF4_2_08 -0.000730051247140304322f
-#define SDM_ERFCF4_2_09 -0.000894181745354844871f
-#define SDM_ERFCF4_2_10 0.000442750499254694174f
-#define SDM_ERFCF4_2_11 5.44549038611738718e-6f
-#define SDM_ERFCF4_2_12 -0.0000686716770072681921f
-#define SDM_ERFCF4_2_13 0.0000177205746526325771f
-#define SDM_ERFCF4_2_14 0.0f
-
-
- /***************************************************************
- * REGION 3:
- */
-#define SDM_ERFCF4_3_START 2.0f
-#define SDM_ERFCF4_3_OFF 2.25f
-#define SDM_ERFCF4_3_TRUNC 1u
-
-#define SDM_ERFCF4_3_00 0.00146271658668117865f
-#define SDM_ERFCF4_3_01 -0.00714231902201798319f
-#define SDM_ERFCF4_3_02 0.0160702177995404628f
-#define SDM_ERFCF4_3_03 -0.0217245536919713662f
-#define SDM_ERFCF4_3_04 0.0190833836369542972f
-#define SDM_ERFCF4_3_05 -0.0106576791656674587f
-#define SDM_ERFCF4_3_06 0.00290435707106278173f
-#define SDM_ERFCF4_3_07 0.000670455969951892490f
-#define SDM_ERFCF4_3_08 -0.000999493712611392590f
-#define SDM_ERFCF4_3_09 0.000369380417703939461f
-#define SDM_ERFCF4_3_10 0.0000114665831641414663f
-#define SDM_ERFCF4_3_11 -0.0000651349432823388933f
-#define SDM_ERFCF4_3_12 0.0000226882426454011034f
-#define SDM_ERFCF4_3_13 1.33207467538330703e-6f
-#define SDM_ERFCF4_3_14 0.0f
-
-
- /***************************************************************
- * REGION 4:
- */
-#define SDM_ERFCF4_4_START 2.46f
-#define SDM_ERFCF4_4_OFF 2.75f
-#define SDM_ERFCF4_4_TRUNC 1u
-
-#define SDM_ERFCF4_4_00 0.000100621922119681351f
-#define SDM_ERFCF4_4_01 -0.000586277247093792324f
-#define SDM_ERFCF4_4_02 0.00161226242950792873f
-#define SDM_ERFCF4_4_03 -0.00276038870506660526f
-#define SDM_ERFCF4_4_04 0.00325811365963060576f
-#define SDM_ERFCF4_4_05 -0.00275580841407368484f
-#define SDM_ERFCF4_4_06 0.00165732740366604948f
-#define SDM_ERFCF4_4_07 -0.000646040956672447276f
-#define SDM_ERFCF4_4_08 0.0000890115712124397128f
-#define SDM_ERFCF4_4_09 0.0000712231147231515843f
-#define SDM_ERFCF4_4_10 -0.0000549969924243893176f
-#define SDM_ERFCF4_4_11 0.0000158438047120425837f
-#define SDM_ERFCF4_4_12 1.07113381370613701e-6f
-#define SDM_ERFCF4_4_13 0.0f
-#define SDM_ERFCF4_4_14 0.0f
-
-
- /***************************************************************
- * REGION 5:
- */
-#define SDM_ERFCF4_5_START 2.95f
-#define SDM_ERFCF4_5_OFF 3.25f
-#define SDM_ERFCF4_5_TRUNC 1u
-
-#define SDM_ERFCF4_5_00 4.30277946372736864e-6f
-#define SDM_ERFCF4_5_01 -0.0000291890253835816989f
-#define SDM_ERFCF4_5_02 0.0000948643324966405230f
-#define SDM_ERFCF4_5_03 -0.000195809711948193862f
-#define SDM_ERFCF4_5_04 0.000286569337750268210f
-#define SDM_ERFCF4_5_05 -0.000313797225490890491f
-#define SDM_ERFCF4_5_06 0.000263528504215059911f
-#define SDM_ERFCF4_5_07 -0.000169991414511391200f
-#define SDM_ERFCF4_5_08 0.0000816476305301353867f
-#define SDM_ERFCF4_5_09 -0.0000259138470056606003f
-#define SDM_ERFCF4_5_10 2.32886623721087698e-6f
-#define SDM_ERFCF4_5_11 2.86429946075621661e-6f
-#define SDM_ERFCF4_5_12 0.0f
-#define SDM_ERFCF4_5_13 0.0f
-#define SDM_ERFCF4_5_14 0.0f
-
-
- /***************************************************************
- * REGION 6:
- */
-#define SDM_ERFCF4_6_START 3.45f
-#define SDM_ERFCF4_6_OFF 3.625f
-#define SDM_ERFCF4_6_TRUNC 1u
-
-#define SDM_ERFCF4_6_00 2.95140192507759025e-7f
-#define SDM_ERFCF4_6_01 -2.21592028463311237e-6f
-#define SDM_ERFCF4_6_02 8.03271103179503198e-6f
-#define SDM_ERFCF4_6_03 -0.0000186737448986269582f
-#define SDM_ERFCF4_6_04 0.0000311685922848296785f
-#define SDM_ERFCF4_6_05 -0.0000395923353434149457f
-#define SDM_ERFCF4_6_06 0.0000395291139306718091f
-#define SDM_ERFCF4_6_07 -0.0000315141214892874786f
-#define SDM_ERFCF4_6_08 0.0000200891481859513911f
-#define SDM_ERFCF4_6_09 -0.0000100551790824327187f
-#define SDM_ERFCF4_6_10 3.71860071281680690e-6f
-#define SDM_ERFCF4_6_11 -8.05502983594814356e-7f
-#define SDM_ERFCF4_6_12 -7.67662978382552699e-8f
-#define SDM_ERFCF4_6_13 1.56408548403936681e-7f
-#define SDM_ERFCF4_6_14 0.0f
-#define SDM_ERFCF4_6_15 0.0f
-#define SDM_ERFCF4_6_16 0.0f
-#define SDM_ERFCF4_6_17 0.0f
-
-
- /***************************************************************
- * REGION 7:
- */
-#define SDM_ERFCF4_7_START 3.55f
-#define SDM_ERFCF4_7_OFF 4.0f
-#define SDM_ERFCF4_7_TRUNC 2u
-
-#define SDM_ERFCF4_7_00 1.54172579002800189e-8f
-#define SDM_ERFCF4_7_01 -1.2698234671866558e-7f
-#define SDM_ERFCF4_7_02 5.0792938687466233e-7f
-#define SDM_ERFCF4_7_03 -1.3121509160928777e-6f
-#define SDM_ERFCF4_7_04 2.4549920365608679e-6f
-#define SDM_ERFCF4_7_05 -3.5343419836695254e-6f
-#define SDM_ERFCF4_7_06 4.0577914351431357e-6f
-#define SDM_ERFCF4_7_07 -3.7959659297660776e-6f
-#define SDM_ERFCF4_7_08 2.9264391936639771e-6f
-#define SDM_ERFCF4_7_09 -1.8631747969134646e-6f
-#define SDM_ERFCF4_7_10 9.702839808793979e-7f
-#define SDM_ERFCF4_7_11 -4.0077792841735885e-7f
-#define SDM_ERFCF4_7_12 1.2017256123590621e-7f
-#define SDM_ERFCF4_7_13 -1.7432381111955779e-8f
-#define SDM_ERFCF4_7_14 0.0f
-
-
- /***************************************************************
- * Now we load the description of each partition.
- */
-
- /* Start point for each partition */
- vec_float4 r1start = spu_splats(SDM_ERFCF4_1_START);
- vec_float4 r2start = spu_splats(SDM_ERFCF4_2_START);
- vec_float4 r3start = spu_splats(SDM_ERFCF4_3_START);
- vec_float4 r4start = spu_splats(SDM_ERFCF4_4_START);
- vec_float4 r5start = spu_splats(SDM_ERFCF4_5_START);
- vec_float4 r6start = spu_splats(SDM_ERFCF4_6_START);
- vec_float4 r7start = spu_splats(SDM_ERFCF4_7_START);
-
- /* X Offset for each partition */
- vec_float4 xoffseta = (vec_float4) {SDM_ERFCF4_0_OFF, SDM_ERFCF4_1_OFF, SDM_ERFCF4_2_OFF, SDM_ERFCF4_3_OFF};
- vec_float4 xoffsetb = (vec_float4) {SDM_ERFCF4_4_OFF, SDM_ERFCF4_5_OFF, SDM_ERFCF4_6_OFF, SDM_ERFCF4_7_OFF};
-
- /* Truncation Correction for each partition */
- vec_uint4 tcorra = (vec_uint4) {SDM_ERFCF4_0_TRUNC, SDM_ERFCF4_1_TRUNC, SDM_ERFCF4_2_TRUNC, SDM_ERFCF4_3_TRUNC};
- vec_uint4 tcorrb = (vec_uint4) {SDM_ERFCF4_4_TRUNC, SDM_ERFCF4_5_TRUNC, SDM_ERFCF4_6_TRUNC, SDM_ERFCF4_7_TRUNC};
-
- /* The coefficients for each partition */
- vec_float4 c00a = (vec_float4) {SDM_ERFCF4_0_00, SDM_ERFCF4_1_00, SDM_ERFCF4_2_00, SDM_ERFCF4_3_00};
- vec_float4 c01a = (vec_float4) {SDM_ERFCF4_0_01, SDM_ERFCF4_1_01, SDM_ERFCF4_2_01, SDM_ERFCF4_3_01};
- vec_float4 c02a = (vec_float4) {SDM_ERFCF4_0_02, SDM_ERFCF4_1_02, SDM_ERFCF4_2_02, SDM_ERFCF4_3_02};
- vec_float4 c03a = (vec_float4) {SDM_ERFCF4_0_03, SDM_ERFCF4_1_03, SDM_ERFCF4_2_03, SDM_ERFCF4_3_03};
- vec_float4 c04a = (vec_float4) {SDM_ERFCF4_0_04, SDM_ERFCF4_1_04, SDM_ERFCF4_2_04, SDM_ERFCF4_3_04};
- vec_float4 c05a = (vec_float4) {SDM_ERFCF4_0_05, SDM_ERFCF4_1_05, SDM_ERFCF4_2_05, SDM_ERFCF4_3_05};
- vec_float4 c06a = (vec_float4) {SDM_ERFCF4_0_06, SDM_ERFCF4_1_06, SDM_ERFCF4_2_06, SDM_ERFCF4_3_06};
- vec_float4 c07a = (vec_float4) {SDM_ERFCF4_0_07, SDM_ERFCF4_1_07, SDM_ERFCF4_2_07, SDM_ERFCF4_3_07};
- vec_float4 c08a = (vec_float4) {SDM_ERFCF4_0_08, SDM_ERFCF4_1_08, SDM_ERFCF4_2_08, SDM_ERFCF4_3_08};
- vec_float4 c09a = (vec_float4) {SDM_ERFCF4_0_09, SDM_ERFCF4_1_09, SDM_ERFCF4_2_09, SDM_ERFCF4_3_09};
- vec_float4 c10a = (vec_float4) {SDM_ERFCF4_0_10, SDM_ERFCF4_1_10, SDM_ERFCF4_2_10, SDM_ERFCF4_3_10};
- vec_float4 c11a = (vec_float4) {SDM_ERFCF4_0_11, SDM_ERFCF4_1_11, SDM_ERFCF4_2_11, SDM_ERFCF4_3_11};
- vec_float4 c12a = (vec_float4) {SDM_ERFCF4_0_12, SDM_ERFCF4_1_12, SDM_ERFCF4_2_12, SDM_ERFCF4_3_12};
- vec_float4 c13a = (vec_float4) {SDM_ERFCF4_0_13, SDM_ERFCF4_1_13, SDM_ERFCF4_2_13, SDM_ERFCF4_3_13};
- vec_float4 c14a = (vec_float4) {SDM_ERFCF4_0_14, SDM_ERFCF4_1_14, SDM_ERFCF4_2_14, SDM_ERFCF4_3_14};
-
- vec_float4 c00b = (vec_float4) {SDM_ERFCF4_4_00, SDM_ERFCF4_5_00, SDM_ERFCF4_6_00, SDM_ERFCF4_7_00};
- vec_float4 c01b = (vec_float4) {SDM_ERFCF4_4_01, SDM_ERFCF4_5_01, SDM_ERFCF4_6_01, SDM_ERFCF4_7_01};
- vec_float4 c02b = (vec_float4) {SDM_ERFCF4_4_02, SDM_ERFCF4_5_02, SDM_ERFCF4_6_02, SDM_ERFCF4_7_02};
- vec_float4 c03b = (vec_float4) {SDM_ERFCF4_4_03, SDM_ERFCF4_5_03, SDM_ERFCF4_6_03, SDM_ERFCF4_7_03};
- vec_float4 c04b = (vec_float4) {SDM_ERFCF4_4_04, SDM_ERFCF4_5_04, SDM_ERFCF4_6_04, SDM_ERFCF4_7_04};
- vec_float4 c05b = (vec_float4) {SDM_ERFCF4_4_05, SDM_ERFCF4_5_05, SDM_ERFCF4_6_05, SDM_ERFCF4_7_05};
- vec_float4 c06b = (vec_float4) {SDM_ERFCF4_4_06, SDM_ERFCF4_5_06, SDM_ERFCF4_6_06, SDM_ERFCF4_7_06};
- vec_float4 c07b = (vec_float4) {SDM_ERFCF4_4_07, SDM_ERFCF4_5_07, SDM_ERFCF4_6_07, SDM_ERFCF4_7_07};
- vec_float4 c08b = (vec_float4) {SDM_ERFCF4_4_08, SDM_ERFCF4_5_08, SDM_ERFCF4_6_08, SDM_ERFCF4_7_08};
- vec_float4 c09b = (vec_float4) {SDM_ERFCF4_4_09, SDM_ERFCF4_5_09, SDM_ERFCF4_6_09, SDM_ERFCF4_7_09};
- vec_float4 c10b = (vec_float4) {SDM_ERFCF4_4_10, SDM_ERFCF4_5_10, SDM_ERFCF4_6_10, SDM_ERFCF4_7_10};
- vec_float4 c11b = (vec_float4) {SDM_ERFCF4_4_11, SDM_ERFCF4_5_11, SDM_ERFCF4_6_11, SDM_ERFCF4_7_11};
- vec_float4 c12b = (vec_float4) {SDM_ERFCF4_4_12, SDM_ERFCF4_5_12, SDM_ERFCF4_6_12, SDM_ERFCF4_7_12};
- vec_float4 c13b = (vec_float4) {SDM_ERFCF4_4_13, SDM_ERFCF4_5_13, SDM_ERFCF4_6_13, SDM_ERFCF4_7_13};
- vec_float4 c14b = (vec_float4) {SDM_ERFCF4_4_14, SDM_ERFCF4_5_14, SDM_ERFCF4_6_14, SDM_ERFCF4_7_14};
-
- vec_uchar16 shuffle0 = (vec_uchar16) spu_splats(0x00010203);
- vec_uchar16 shuffle1 = (vec_uchar16) spu_splats(0x04050607);
- vec_uchar16 shuffle2 = (vec_uchar16) spu_splats(0x08090A0B);
- vec_uchar16 shuffle3 = (vec_uchar16) spu_splats(0x0C0D0E0F);
- vec_uchar16 shuffle4 = (vec_uchar16) spu_splats(0x10111213);
- vec_uchar16 shuffle5 = (vec_uchar16) spu_splats(0x14151617);
- vec_uchar16 shuffle6 = (vec_uchar16) spu_splats(0x18191A1B);
- vec_uchar16 shuffle7 = (vec_uchar16) spu_splats(0x1C1D1E1F);
-
-
- /*
- * Determine the shuffle pattern based on which partition
- * each element of x is in.
- */
- vec_uchar16 gt_r1start = (vec_uchar16)spu_cmpabsgt(x, r1start);
- vec_uchar16 gt_r2start = (vec_uchar16)spu_cmpabsgt(x, r2start);
- vec_uchar16 gt_r3start = (vec_uchar16)spu_cmpabsgt(x, r3start);
- vec_uchar16 gt_r4start = (vec_uchar16)spu_cmpabsgt(x, r4start);
- vec_uchar16 gt_r5start = (vec_uchar16)spu_cmpabsgt(x, r5start);
- vec_uchar16 gt_r6start = (vec_uchar16)spu_cmpabsgt(x, r6start);
- vec_uchar16 gt_r7start = (vec_uchar16)spu_cmpabsgt(x, r7start);
-
- vec_uchar16 shufflepattern;
- shufflepattern = spu_sel(shuffle0, shuffle1, gt_r1start);
- shufflepattern = spu_sel(shufflepattern, shuffle2, gt_r2start);
- shufflepattern = spu_sel(shufflepattern, shuffle3, gt_r3start);
- shufflepattern = spu_sel(shufflepattern, shuffle4, gt_r4start);
- shufflepattern = spu_sel(shufflepattern, shuffle5, gt_r5start);
- shufflepattern = spu_sel(shufflepattern, shuffle6, gt_r6start);
- shufflepattern = spu_sel(shufflepattern, shuffle7, gt_r7start);
-
-
- /* Use the shuffle pattern to select the coefficients */
- vec_float4 coeff_14 = spu_shuffle(c14a, c14b, shufflepattern);
- vec_float4 coeff_13 = spu_shuffle(c13a, c13b, shufflepattern);
- vec_float4 coeff_12 = spu_shuffle(c12a, c12b, shufflepattern);
- vec_float4 coeff_11 = spu_shuffle(c11a, c11b, shufflepattern);
- vec_float4 coeff_10 = spu_shuffle(c10a, c10b, shufflepattern);
- vec_float4 coeff_09 = spu_shuffle(c09a, c09b, shufflepattern);
- vec_float4 coeff_08 = spu_shuffle(c08a, c08b, shufflepattern);
- vec_float4 coeff_07 = spu_shuffle(c07a, c07b, shufflepattern);
- vec_float4 coeff_06 = spu_shuffle(c06a, c06b, shufflepattern);
- vec_float4 coeff_05 = spu_shuffle(c05a, c05b, shufflepattern);
- vec_float4 coeff_04 = spu_shuffle(c04a, c04b, shufflepattern);
- vec_float4 coeff_03 = spu_shuffle(c03a, c03b, shufflepattern);
- vec_float4 coeff_02 = spu_shuffle(c02a, c02b, shufflepattern);
- vec_float4 coeff_01 = spu_shuffle(c01a, c01b, shufflepattern);
- vec_float4 coeff_00 = spu_shuffle(c00a, c00b, shufflepattern);
-
- vec_float4 xoffset = spu_shuffle(xoffseta, xoffsetb, shufflepattern);
- vec_uint4 tcorrection = spu_shuffle(tcorra, tcorrb, shufflepattern);
-
-
- /*
- * We've completed the coeff. setup. Now we actually do the
- * approximation below.
- */
-
- /* Adjust x value here (for approximations about a point) */
- vec_float4 xappr = spu_sub(xabs, xoffset);
-
-
- /* Now we do the multiplies.
- * Use Horner's method.
- */
- result = coeff_14;
- result = spu_madd(xappr, result, coeff_13);
- result = spu_madd(xappr, result, coeff_12);
- result = spu_madd(xappr, result, coeff_11);
- result = spu_madd(xappr, result, coeff_10);
- result = spu_madd(xappr, result, coeff_09);
- result = spu_madd(xappr, result, coeff_08);
- result = spu_madd(xappr, result, coeff_07);
- result = spu_madd(xappr, result, coeff_06);
- result = spu_madd(xappr, result, coeff_05);
- result = spu_madd(xappr, result, coeff_04);
- result = spu_madd(xappr, result, coeff_03);
- result = spu_madd(xappr, result, coeff_02);
- result = spu_madd(xappr, result, coeff_01);
- result = spu_madd(xappr, result, coeff_00);
-
- /* Adjust due to systematic truncation. */
- result = (vec_float4)spu_add((vec_uint4)result, tcorrection);
-
- /* Use the continued fraction approximation for x above approx. 4
- * and below approx. 10
- */
- vec_float4 presult, xsqu;
- xsqu = spu_mul(x, x);
- CONTFRAC_ERFCF4(xabs, xsqu, presult);
-
- /* Select between polynomial and continued fraction */
- result = spu_sel(presult, result, spu_cmpgt(spu_splats(4.3f), xabs));
-
- /* Above clamp value, set erfc = 0 */
- result = spu_sel(result, zerof, spu_cmpgt(xabs, clamp));
-
- /* Negative x values */
- vec_uint4 gt0 = spu_cmpgt(x, zerof);
- result = spu_sel(spu_sub(twof, result), result, gt0);
-
- return result;
-}
-
-#endif /* _ERFCF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/erfd2.h b/newlib/libm/machine/spu/headers/erfd2.h
deleted file mode 100644
index 4ff5a35a0..000000000
--- a/newlib/libm/machine/spu/headers/erfd2.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _ERFD2_H_
-#define _ERFD2_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "expd2.h"
-#include "recipd2.h"
-#include "divd2.h"
-#include "erf_utils.h"
-
-/*
- * FUNCTION
- * vector double _erfd2(vector double x)
- *
- * DESCRIPTION
- * The erfd2 function computes the error function of each element of x.
- *
- * C99 Special Cases:
- * - erf(+0) returns +0
- * - erf(-0) returns -0
- * - erf(+infinite) returns +1
- * - erf(-infinite) returns -1
- *
- * Other Cases:
- * - erf(Nan) returns Nan
- *
- */
-
-static __inline vector double _erfd2(vector double x)
-{
- vec_uchar16 dup_even = ((vec_uchar16) { 0,1,2,3, 0,1,2,3, 8, 9,10,11, 8, 9,10,11 });
- vec_double2 onehalfd = spu_splats(0.5);
- vec_double2 oned = spu_splats(1.0);
- vec_double2 sign_mask = spu_splats(-0.0);
-
- /* This is where we switch from Taylor Series to Continued Fraction approximation */
- vec_float4 approx_point = spu_splats(1.77f);
-
- vec_double2 xabs, xsqu, xsign;
- vec_double2 tresult, presult, result;
-
- xsign = spu_and(x, sign_mask);
- xabs = spu_andc(x, sign_mask);
- xsqu = spu_mul(x, x);
-
- /*
- * Taylor Series Expansion near Zero
- */
- TAYLOR_ERF(xabs, xsqu, tresult);
-
- /*
- * Continued Fraction Approximation of Erfc().
- * erf = 1 - erfc
- */
- CONTFRAC_ERFC(xabs, xsqu, presult);
- presult = spu_sub(oned, presult);
-
-
- /*
- * Select the appropriate approximation.
- */
- vec_float4 xf = spu_roundtf(xabs);
- xf = spu_shuffle(xf, xf, dup_even);
- result = spu_sel(tresult, presult, (vec_ullong2)spu_cmpgt(xf, approx_point));
-
-
- /*
- * Special cases/errors.
- */
-
- /* x = +/- infinite, return +/-1 */
- /* x = nan, return x */
- result = spu_sel(result, oned, spu_testsv(x, SPU_SV_NEG_INFINITY | SPU_SV_POS_INFINITY));
- result = spu_sel(result, x, spu_testsv(x, SPU_SV_NEG_DENORM | SPU_SV_POS_DENORM));
-
- /*
- * Preserve sign in result, since erf(-x) = -erf(x)
- */
- result = spu_or(result, xsign);
-
- return result;
-}
-
-#endif /* _ERFD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/erff.h b/newlib/libm/machine/spu/headers/erff.h
deleted file mode 100644
index c355f8177..000000000
--- a/newlib/libm/machine/spu/headers/erff.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/erff4.h"
-
-static __inline float _erff(float x)
-{
- return spu_extract(_erff4(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/erff4.h b/newlib/libm/machine/spu/headers/erff4.h
deleted file mode 100644
index fa9c0655d..000000000
--- a/newlib/libm/machine/spu/headers/erff4.h
+++ /dev/null
@@ -1,407 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _ERFF4_H_
-#define _ERFF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-/*
- * FUNCTION
- * vector float _erff4(vector float x)
- *
- * DESCRIPTION
- * The erff4 function computes the error function of each element of x.
- *
- * C99 Special Cases:
- * - erf(+0) returns +0
- * - erf(-0) returns -0
- * - erf(+infinite) returns +1
- * - erf(-infinite) returns -1
- *
- */
-
-static __inline vector float _erff4(vector float x)
-{
- vec_float4 sign_maskf = spu_splats(-0.0f);
- vec_float4 zerof = spu_splats(0.0f);
- vec_float4 onef = spu_splats(1.0f);
- vec_float4 clamp = spu_splats(3.9199876f);
- vec_float4 xabs = spu_andc(x, sign_maskf);
- vec_float4 xsign = spu_and(x, sign_maskf);
- vec_float4 result;
-
-
- /*
- * First thing we do is setup the description of each partition.
- * This consists of:
- * - Start x of partition
- * - Offset (used for evaluating power series expanded around a point)
- * - Truncation adjustment.
- */
-
-
- /***************************************************************
- * REGION 0: Approximation Near 0 from Above
- *
- */
-#define SDM_ERFF4_0_START 0.0f
-#define SDM_ERFF4_0_OFF 0.0f
-#define SDM_ERFF4_0_TRUNC 2u
-
-#define SDM_ERFF4_0_00 0.0f
-#define SDM_ERFF4_0_01 1.12837916709551257389615890312154f
-#define SDM_ERFF4_0_02 0.0f
-#define SDM_ERFF4_0_03 -0.37612638903183752463205296770955f
-#define SDM_ERFF4_0_04 0.0f
-#define SDM_ERFF4_0_05 0.11283791670955125738961589031073f
-#define SDM_ERFF4_0_06 0.0f
-#define SDM_ERFF4_0_07 -0.02686617064513125175943235483588f
-#define SDM_ERFF4_0_08 0.0f
-#define SDM_ERFF4_0_09 0.00522397762544218784211184677371f
-#define SDM_ERFF4_0_10 0.0f
-//#define SDM_ERFF4_0_11 -0.00085483270234508528325466583569f
-
-
-
- /***************************************************************
- * REGION 1: Above 0 and Below 1
- */
-#define SDM_ERFF4_1_START 0.07f
-#define SDM_ERFF4_1_OFF 0.0625f
-#define SDM_ERFF4_1_TRUNC 1u
-
-#define SDM_ERFF4_1_00 0.0704319777223870780505900559232967439190042883f
-#define SDM_ERFF4_1_01 1.1239800336253906104888456836298420746260842545f
-#define SDM_ERFF4_1_02 -0.0702487521015869131555528552268651296641302713f
-#define SDM_ERFF4_1_03 -0.3717329798708974154481338589088279778060226856f
-#define SDM_ERFF4_1_04 0.0350329063214945152846051348331892508611482993f
-#define SDM_ERFF4_1_05 0.1106440713032318617523250293018186620702780982f
-#define SDM_ERFF4_1_06 -0.0116471931712158678624014740659716890227703402f
-#define SDM_ERFF4_1_07 -0.0261358409084263503958678377968739965222786482f
-#define SDM_ERFF4_1_08 0.0029041996223118476954500365511415181291113910f
-#define SDM_ERFF4_1_09 0.0050416329596619035812041623972929782386498567f
-#define SDM_ERFF4_1_10 -0.0005793225670734356072895029723913210064918149f
-//#define SDM_ERFF4_1_11 -0.0008184112733188406359323913130525859730689332f
-
-
-
- /***************************************************************
- * REGION 2:
- */
-#define SDM_ERFF4_2_START 0.13f
-#define SDM_ERFF4_2_OFF 0.1875f
-#define SDM_ERFF4_2_TRUNC 1u
-
-#define SDM_ERFF4_2_00 0.2091176770593758483008706390019410965937912290f
-#define SDM_ERFF4_2_01 1.0893988034775673230502318110338693557898033315f
-#define SDM_ERFF4_2_02 -0.2042622756520438730719184645688505042105881396f
-#define SDM_ERFF4_2_03 -0.3376001500360169568827541289401834722369442864f
-#define SDM_ERFF4_2_04 0.0997374392832245473983976877777590352590762400f
-#define SDM_ERFF4_2_05 0.0937997370645632460099464120987231140266525679f
-#define SDM_ERFF4_2_06 -0.0324591340420617488485277008302392706957527828f
-#define SDM_ERFF4_2_07 -0.0205943885488331791711970665266474471714543313f
-#define SDM_ERFF4_2_08 0.0079208906865255014554772269570592999495375181f
-#define SDM_ERFF4_2_09 0.0036744273281123333893101007014150883409965011f
-#define SDM_ERFF4_2_10 -0.0015459493690754127608506357908913858038162608f
-//#define SDM_ERFF4_2_11 -0.0005485671070180836650399266219057172124875094f
-
-
-
- /***************************************************************
- * REGION 3:
- */
-#define SDM_ERFF4_3_START 0.25f
-#define SDM_ERFF4_3_OFF 0.5f
-#define SDM_ERFF4_3_TRUNC 2u
-
-#define SDM_ERFF4_3_00 0.5204998778130465376827466538919645287364515699f
-#define SDM_ERFF4_3_01 0.8787825789354447940937239548244578983625218956f
-#define SDM_ERFF4_3_02 -0.4393912894677223970468619774122289491812609947f
-#define SDM_ERFF4_3_03 -0.1464637631559074656822873258040763163937536583f
-#define SDM_ERFF4_3_04 0.1830797039448843321028591572550953954921920811f
-#define SDM_ERFF4_3_05 0.0073231881577953732841143662902038158196876832f
-#define SDM_ERFF4_3_06 -0.0500417857449350507747815029830594081011991688f
-#define SDM_ERFF4_3_07 0.0054052103069442040906558417856266259621504328f
-#define SDM_ERFF4_3_08 0.0100475885141180567975497704160236877764167320f
-#define SDM_ERFF4_3_09 -0.0021674118390300459951330548378744759122422210f
-#define SDM_ERFF4_3_10 -0.0015694967741624277200510981457278746801387524f
-//#define SDM_ERFF4_3_11 0.0004973489167651373192082360776274483020158863f
-
-
-
- /***************************************************************
- * REGION 4:
- */
-#define SDM_ERFF4_4_START 0.77f
-#define SDM_ERFF4_4_OFF 1.0f
-#define SDM_ERFF4_4_TRUNC 1u
-
-#define SDM_ERFF4_4_00 0.8427007929497148693412206350826092590442f
-#define SDM_ERFF4_4_01 0.4151074974205947033402682494413373653605f
-#define SDM_ERFF4_4_02 -0.4151074974205947033402682494413373653605f
-#define SDM_ERFF4_4_03 0.1383691658068649011134227498137791217898f
-#define SDM_ERFF4_4_04 0.0691845829034324505567113749068895608946f
-#define SDM_ERFF4_4_05 -0.0691845829034324505567113749068895608946f
-#define SDM_ERFF4_4_06 0.0046123055268954967037807583271259707263f
-#define SDM_ERFF4_4_07 0.0151547181597994891695653487891281895293f
-#define SDM_ERFF4_4_08 -0.0047770307242846215860586425530947553951f
-#define SDM_ERFF4_4_09 -0.0018851883701199847638468972527538689873f
-#define SDM_ERFF4_4_10 0.0012262875805634852347353603488787303121f
-//#define SDM_ERFF4_4_11 0.0000855239913717274641321540324726821411f
-
-
-
- /***************************************************************
- * REGION 5:
- */
-#define SDM_ERFF4_5_START 1.36f
-#define SDM_ERFF4_5_OFF 1.875f
-#define SDM_ERFF4_5_TRUNC 1u
-
-#define SDM_ERFF4_5_00 0.99199005767011997029646305969122440092668f
-#define SDM_ERFF4_5_01 0.03354582842421607459425032786195496507386f
-#define SDM_ERFF4_5_02 -0.06289842829540513986421936474116555951979f
-#define SDM_ERFF4_5_03 0.06744109256118439996552409663913862770819f
-#define SDM_ERFF4_5_04 -0.04225988151097532834627238568547061029869f
-#define SDM_ERFF4_5_05 0.01146258336487617627004706027236136941544f
-#define SDM_ERFF4_5_06 0.00410518713321247739022655684589964019683f
-#define SDM_ERFF4_5_07 -0.00492839390823910723763257456562751425198f
-#define SDM_ERFF4_5_08 0.00143050168737012207687743571780226012058f
-#define SDM_ERFF4_5_09 0.00036225644575338665306295794978774160986f
-#define SDM_ERFF4_5_10 -0.00039015757824554169745459780322413823624f
-//#define SDM_ERFF4_5_11 0.00007372993782406230817649249567932577159f
-
-
-
- /***************************************************************
- * REGION 6:
- */
-#define SDM_ERFF4_6_START 2.0f
-#define SDM_ERFF4_6_OFF 2.5f
-#define SDM_ERFF4_6_TRUNC 1u
-
-#define SDM_ERFF4_6_00 0.999593047982555041060435784260025087279f
-#define SDM_ERFF4_6_01 0.002178284230352709720386678564097264007f
-#define SDM_ERFF4_6_02 -0.005445710575881774300966696410243160031f
-#define SDM_ERFF4_6_03 0.008350089549685387261482267829039512051f
-#define SDM_ERFF4_6_04 -0.008622375078479475976530602649551670054f
-#define SDM_ERFF4_6_05 0.006117348213573859798085922300839816434f
-#define SDM_ERFF4_6_06 -0.002798490157050356237996774544152735014f
-#define SDM_ERFF4_6_07 0.000542410061327906884739143174194854432f
-#define SDM_ERFF4_6_08 0.000260670173895134533751630061303802055f
-#define SDM_ERFF4_6_09 -0.000250285386311056635227961206817778392f
-#define SDM_ERFF4_6_10 0.000078801328907504400502579703621546608f
-//#define SDM_ERFF4_6_11 5.137004620216358263402877651297096663210e-6f
-
-
-
- /***************************************************************
- * REGION 7:
- */
-#define SDM_ERFF4_7_START 2.75f
-#define SDM_ERFF4_7_OFF 3.5f
-#define SDM_ERFF4_7_TRUNC 1u
-
-#define SDM_ERFF4_7_00 0.999999256901627658587254476316243904363263f
-#define SDM_ERFF4_7_01 5.399426777384782511586818937495781413007869e-6f
-#define SDM_ERFF4_7_02 -0.000018897993720846738790553866281235234945f
-#define SDM_ERFF4_7_03 0.000042295509756180796340763415010383621069f
-#define SDM_ERFF4_7_04 -0.000067717810833034147332818020841092925222f
-#define SDM_ERFF4_7_05 0.000082116282239393567363716204674415008991f
-#define SDM_ERFF4_7_06 -0.000077744246390483389302250766562526063763f
-#define SDM_ERFF4_7_07 0.000058192750619199206596604051163855823527f
-#define SDM_ERFF4_7_08 -0.000034259175422410008064403380504975403351f
-#define SDM_ERFF4_7_09 0.000015330768263696827211862952666453348031f
-#define SDM_ERFF4_7_10 -4.641017709492666503521243665632827470977627e-6f
-//#define SDM_ERFF4_7_11 4.447037356176705948450355327103423490366212e-7f
-
-
-
-
-
- /***************************************************************
- * Now we load the description of each partition.
- */
-
- /* Start point for each partition */
- vec_float4 r1start = spu_splats(SDM_ERFF4_1_START);
- vec_float4 r2start = spu_splats(SDM_ERFF4_2_START);
- vec_float4 r3start = spu_splats(SDM_ERFF4_3_START);
- vec_float4 r4start = spu_splats(SDM_ERFF4_4_START);
- vec_float4 r5start = spu_splats(SDM_ERFF4_5_START);
- vec_float4 r6start = spu_splats(SDM_ERFF4_6_START);
- vec_float4 r7start = spu_splats(SDM_ERFF4_7_START);
-
- /* X Offset for each partition */
- vec_float4 xoffseta = (vec_float4) {SDM_ERFF4_0_OFF, SDM_ERFF4_1_OFF, SDM_ERFF4_2_OFF, SDM_ERFF4_3_OFF};
- vec_float4 xoffsetb = (vec_float4) {SDM_ERFF4_4_OFF, SDM_ERFF4_5_OFF, SDM_ERFF4_6_OFF, SDM_ERFF4_7_OFF};
-
- /* Truncation Correction for each partition */
- vec_uint4 tcorra = (vec_uint4) {SDM_ERFF4_0_TRUNC, SDM_ERFF4_1_TRUNC, SDM_ERFF4_2_TRUNC, SDM_ERFF4_3_TRUNC};
- vec_uint4 tcorrb = (vec_uint4) {SDM_ERFF4_4_TRUNC, SDM_ERFF4_5_TRUNC, SDM_ERFF4_6_TRUNC, SDM_ERFF4_7_TRUNC};
-
- /* The coefficients for each partition */
- vec_float4 c00a = (vec_float4) {SDM_ERFF4_0_00, SDM_ERFF4_1_00, SDM_ERFF4_2_00, SDM_ERFF4_3_00};
- vec_float4 c01a = (vec_float4) {SDM_ERFF4_0_01, SDM_ERFF4_1_01, SDM_ERFF4_2_01, SDM_ERFF4_3_01};
- vec_float4 c02a = (vec_float4) {SDM_ERFF4_0_02, SDM_ERFF4_1_02, SDM_ERFF4_2_02, SDM_ERFF4_3_02};
- vec_float4 c03a = (vec_float4) {SDM_ERFF4_0_03, SDM_ERFF4_1_03, SDM_ERFF4_2_03, SDM_ERFF4_3_03};
- vec_float4 c04a = (vec_float4) {SDM_ERFF4_0_04, SDM_ERFF4_1_04, SDM_ERFF4_2_04, SDM_ERFF4_3_04};
- vec_float4 c05a = (vec_float4) {SDM_ERFF4_0_05, SDM_ERFF4_1_05, SDM_ERFF4_2_05, SDM_ERFF4_3_05};
- vec_float4 c06a = (vec_float4) {SDM_ERFF4_0_06, SDM_ERFF4_1_06, SDM_ERFF4_2_06, SDM_ERFF4_3_06};
- vec_float4 c07a = (vec_float4) {SDM_ERFF4_0_07, SDM_ERFF4_1_07, SDM_ERFF4_2_07, SDM_ERFF4_3_07};
- vec_float4 c08a = (vec_float4) {SDM_ERFF4_0_08, SDM_ERFF4_1_08, SDM_ERFF4_2_08, SDM_ERFF4_3_08};
- vec_float4 c09a = (vec_float4) {SDM_ERFF4_0_09, SDM_ERFF4_1_09, SDM_ERFF4_2_09, SDM_ERFF4_3_09};
- vec_float4 c10a = (vec_float4) {SDM_ERFF4_0_10, SDM_ERFF4_1_10, SDM_ERFF4_2_10, SDM_ERFF4_3_10};
-
- vec_float4 c00b = (vec_float4) {SDM_ERFF4_4_00, SDM_ERFF4_5_00, SDM_ERFF4_6_00, SDM_ERFF4_7_00};
- vec_float4 c01b = (vec_float4) {SDM_ERFF4_4_01, SDM_ERFF4_5_01, SDM_ERFF4_6_01, SDM_ERFF4_7_01};
- vec_float4 c02b = (vec_float4) {SDM_ERFF4_4_02, SDM_ERFF4_5_02, SDM_ERFF4_6_02, SDM_ERFF4_7_02};
- vec_float4 c03b = (vec_float4) {SDM_ERFF4_4_03, SDM_ERFF4_5_03, SDM_ERFF4_6_03, SDM_ERFF4_7_03};
- vec_float4 c04b = (vec_float4) {SDM_ERFF4_4_04, SDM_ERFF4_5_04, SDM_ERFF4_6_04, SDM_ERFF4_7_04};
- vec_float4 c05b = (vec_float4) {SDM_ERFF4_4_05, SDM_ERFF4_5_05, SDM_ERFF4_6_05, SDM_ERFF4_7_05};
- vec_float4 c06b = (vec_float4) {SDM_ERFF4_4_06, SDM_ERFF4_5_06, SDM_ERFF4_6_06, SDM_ERFF4_7_06};
- vec_float4 c07b = (vec_float4) {SDM_ERFF4_4_07, SDM_ERFF4_5_07, SDM_ERFF4_6_07, SDM_ERFF4_7_07};
- vec_float4 c08b = (vec_float4) {SDM_ERFF4_4_08, SDM_ERFF4_5_08, SDM_ERFF4_6_08, SDM_ERFF4_7_08};
- vec_float4 c09b = (vec_float4) {SDM_ERFF4_4_09, SDM_ERFF4_5_09, SDM_ERFF4_6_09, SDM_ERFF4_7_09};
- vec_float4 c10b = (vec_float4) {SDM_ERFF4_4_10, SDM_ERFF4_5_10, SDM_ERFF4_6_10, SDM_ERFF4_7_10};
-
-
- vec_uchar16 shuffle0 = (vec_uchar16) spu_splats(0x00010203);
- vec_uchar16 shuffle1 = (vec_uchar16) spu_splats(0x04050607);
- vec_uchar16 shuffle2 = (vec_uchar16) spu_splats(0x08090A0B);
- vec_uchar16 shuffle3 = (vec_uchar16) spu_splats(0x0C0D0E0F);
- vec_uchar16 shuffle4 = (vec_uchar16) spu_splats(0x10111213);
- vec_uchar16 shuffle5 = (vec_uchar16) spu_splats(0x14151617);
- vec_uchar16 shuffle6 = (vec_uchar16) spu_splats(0x18191A1B);
- vec_uchar16 shuffle7 = (vec_uchar16) spu_splats(0x1C1D1E1F);
-
-
- /*
- * Determine the shuffle pattern based on which partition
- * each element of x is in.
- */
-
- vec_uchar16 gt_r1start = (vec_uchar16)spu_cmpabsgt(x, r1start);
- vec_uchar16 gt_r2start = (vec_uchar16)spu_cmpabsgt(x, r2start);
- vec_uchar16 gt_r3start = (vec_uchar16)spu_cmpabsgt(x, r3start);
- vec_uchar16 gt_r4start = (vec_uchar16)spu_cmpabsgt(x, r4start);
- vec_uchar16 gt_r5start = (vec_uchar16)spu_cmpabsgt(x, r5start);
- vec_uchar16 gt_r6start = (vec_uchar16)spu_cmpabsgt(x, r6start);
- vec_uchar16 gt_r7start = (vec_uchar16)spu_cmpabsgt(x, r7start);
-
- vec_uchar16 shufflepattern;
- shufflepattern = spu_sel(shuffle0, shuffle1, gt_r1start);
- shufflepattern = spu_sel(shufflepattern, shuffle2, gt_r2start);
- shufflepattern = spu_sel(shufflepattern, shuffle3, gt_r3start);
- shufflepattern = spu_sel(shufflepattern, shuffle4, gt_r4start);
- shufflepattern = spu_sel(shufflepattern, shuffle5, gt_r5start);
- shufflepattern = spu_sel(shufflepattern, shuffle6, gt_r6start);
- shufflepattern = spu_sel(shufflepattern, shuffle7, gt_r7start);
-
-
-
- /* Use the shuffle pattern to select the coefficients */
-
- vec_float4 coeff_10 = spu_shuffle(c10a, c10b, shufflepattern);
- vec_float4 coeff_09 = spu_shuffle(c09a, c09b, shufflepattern);
- vec_float4 coeff_08 = spu_shuffle(c08a, c08b, shufflepattern);
- vec_float4 coeff_07 = spu_shuffle(c07a, c07b, shufflepattern);
- vec_float4 coeff_06 = spu_shuffle(c06a, c06b, shufflepattern);
- vec_float4 coeff_05 = spu_shuffle(c05a, c05b, shufflepattern);
- vec_float4 coeff_04 = spu_shuffle(c04a, c04b, shufflepattern);
- vec_float4 coeff_03 = spu_shuffle(c03a, c03b, shufflepattern);
- vec_float4 coeff_02 = spu_shuffle(c02a, c02b, shufflepattern);
- vec_float4 coeff_01 = spu_shuffle(c01a, c01b, shufflepattern);
- vec_float4 coeff_00 = spu_shuffle(c00a, c00b, shufflepattern);
-
- vec_float4 xoffset = spu_shuffle(xoffseta, xoffsetb, shufflepattern);
- vec_uint4 tcorrection = spu_shuffle(tcorra, tcorrb, shufflepattern);
-
-
- /*
- * We've completed the coeff. setup. Now we actually do the
- * approximation below.
- */
-
- /* Adjust x value here (for approximations about a point) */
- vec_float4 xappr = spu_sub(xabs, xoffset);
-
-
- /* Now we do the multiplies.
- * Use Horner's method.
- */
- result = coeff_10;
- result = spu_madd(xappr, result, coeff_09);
- result = spu_madd(xappr, result, coeff_08);
- result = spu_madd(xappr, result, coeff_07);
- result = spu_madd(xappr, result, coeff_06);
- result = spu_madd(xappr, result, coeff_05);
- result = spu_madd(xappr, result, coeff_04);
- result = spu_madd(xappr, result, coeff_03);
- result = spu_madd(xappr, result, coeff_02);
- result = spu_madd(xappr, result, coeff_01);
- result = spu_madd(xappr, result, coeff_00);
-
-
- /* Adjust due to systematic truncation. Note that the correction
- * value is always non-negative, so the result is cast as uint
- * to do the adjustment.
- */
- result = (vec_float4)spu_add((vec_uint4)result, tcorrection);
-
-
- /*
- * Special Cases
- */
-
- /* Erf(0) = 0 */
- result = spu_sel(result, zerof, spu_cmpeq(xabs, zerof));
-
- /* Erf(infinity) = 1 */
- result = spu_sel(result, onef, spu_cmpgt(xabs, clamp));
-
-
- /* Preserve sign in result, since erf(-x) = -erf(x) */
- result = spu_or(result, xsign);
-
- return result;
-}
-
-#endif /* _ERFF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/exp.h b/newlib/libm/machine/spu/headers/exp.h
deleted file mode 100644
index 164034138..000000000
--- a/newlib/libm/machine/spu/headers/exp.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/expd2.h"
-
-static __inline double _exp(double x)
-{
- return spu_extract(_expd2(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/exp2.h b/newlib/libm/machine/spu/headers/exp2.h
deleted file mode 100644
index 3fe22972f..000000000
--- a/newlib/libm/machine/spu/headers/exp2.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/exp2d2.h"
-
-static __inline double _exp2(double vx)
-{
- return spu_extract(_exp2d2(spu_promote(vx, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/exp2d2.h b/newlib/libm/machine/spu/headers/exp2d2.h
deleted file mode 100644
index c7de4e880..000000000
--- a/newlib/libm/machine/spu/headers/exp2d2.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _EXP2D2_H_
-#define _EXP2D2_H_ 1
-
-#include <spu_intrinsics.h>
-
-
-/*
- * FUNCTION
- * vector double _exp2d2(vector double x)
- *
- * DESCRIPTION
- * _exp2d2 computes 2 raised to the input x for each
- * of the double word elements of x. Computation is
- * performed by observing the 2^(a+b) = 2^a * 2^b.
- * We decompose x into a and b (above) by letting.
- * a = ceil(x), b = x - a;
- *
- * 2^a is easily computed by placing a into the exponent
- * or a floating point number whose mantissa is all zeros.
- *
- * 2^b is computed using the polynomial approximation.
- *
- * __13_
- * \
- * \
- * 2^x = / Ci*x^i
- * /____
- * i=0
- *
- * for x in the range 0.0 to 1.0.
- *
- */
-#define EXP_C00 1.0
-#define EXP_C01 6.93147180559945286227e-01
-#define EXP_C02 2.40226506959100694072e-01
-#define EXP_C03 5.55041086648215761801e-02
-#define EXP_C04 9.61812910762847687873e-03
-#define EXP_C05 1.33335581464284411157e-03
-#define EXP_C06 1.54035303933816060656e-04
-#define EXP_C07 1.52527338040598376946e-05
-#define EXP_C08 1.32154867901443052734e-06
-#define EXP_C09 1.01780860092396959520e-07
-#define EXP_C10 7.05491162080112087744e-09
-#define EXP_C11 4.44553827187081007394e-10
-#define EXP_C12 2.56784359934881958182e-11
-#define EXP_C13 1.36914888539041240648e-12
-
-static __inline vector double _exp2d2(vector double vx)
-{
- vec_int4 ix, exp;
- vec_uint4 overflow, underflow;
- vec_float4 vxf;
- vec_double2 p1, p2, x2, x4, x8;
- vec_double2 vy, vxw, out_of_range;
-
- /* Compute: vxw = x - ceil(x)
- */
- vxw = spu_add(vx, spu_splats(0.5));
- vxf = spu_roundtf(vxw);
- ix = spu_convts(vxf, 0);
- ix = spu_add(ix, (vec_int4)spu_andc(spu_cmpgt(spu_splats(0.0f), vxf), spu_cmpeq(ix, spu_splats((int)0x80000000))));
- vxf = spu_convtf(ix, 0);
- vxw = spu_sub(vx, spu_extend(vxf));
-
- /* Detect overflow and underflow. If overflow, force the result
- * to infinity (at the end).
- */
- exp = spu_shuffle(ix, ix, ((vec_uchar16) { 0,1,2,3, 0,1,2,3, 8,9,10,11, 8,9,10,11 }));
-
- overflow = spu_cmpgt(exp, 1023);
- underflow = spu_cmpgt(exp, -1023);
- out_of_range = (vec_double2)spu_and(overflow, ((vec_uint4) { 0x7FF00000, 0, 0x7FF00000, 0 }));
-
- /* Calculate the result by evaluating the 13th order polynomial.
- * For efficiency, the polynomial is broken into two parts and
- * evaluate then using nested
- *
- * result = (((((c13*x + c12)*x + c11)*x + c10)*x + c9)*x + c8)*x^8 +
- * ((((((c7*x + c6)*x + c5)*x + c4)*x + c3)*x + c2)*x + c1)*x + c0
- */
- p2 = spu_madd(spu_splats(EXP_C07), vxw, spu_splats(EXP_C06));
- p1 = spu_madd(spu_splats(EXP_C13), vxw, spu_splats(EXP_C12));
- x2 = spu_mul(vxw, vxw);
- p2 = spu_madd(vxw, p2, spu_splats(EXP_C05));
- p1 = spu_madd(vxw, p1, spu_splats(EXP_C11));
- x4 = spu_mul(x2, x2);
- p2 = spu_madd(vxw, p2, spu_splats(EXP_C04));
- p1 = spu_madd(vxw, p1, spu_splats(EXP_C10));
- p2 = spu_madd(vxw, p2, spu_splats(EXP_C03));
- p1 = spu_madd(vxw, p1, spu_splats(EXP_C09));
- x8 = spu_mul(x4, x4);
- p2 = spu_madd(vxw, p2, spu_splats(EXP_C02));
- p1 = spu_madd(vxw, p1, spu_splats(EXP_C08));
- p2 = spu_madd(vxw, p2, spu_splats(EXP_C01));
- p2 = spu_madd(vxw, p2, spu_splats(EXP_C00));
- vy = spu_madd(x8, p1, p2);
-
- /* Align the integer integer portion of x with the exponent.
- */
- ix = spu_sl(ix, ((vec_uint4) { 20, 32, 20, 32 }));
- vy = (vec_double2)spu_add((vec_int4)vy, ix);
-
- /* Select the result if not overflow or underflow. Otherwise select the
- * the out of range value.
- */
- return (spu_sel(vy, out_of_range, (vec_ullong2)spu_orc(overflow, underflow)));
-}
-
-#endif /* _EXP2D2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/exp2f.h b/newlib/libm/machine/spu/headers/exp2f.h
deleted file mode 100644
index 84bccdc04..000000000
--- a/newlib/libm/machine/spu/headers/exp2f.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _EXP2F_H_
-#define _EXP2F_H_ 1
-
-#ifndef M_LN2
-#define M_LN2 0.69314718055994530942 /* ln(2) */
-#endif /* M_LN2 */
-
-/*
- * FUNCTION
- * float _exp2f(float x)
- *
- * DESCRIPTION
- * _exp2f computes 2 raised to the input x. Computation is
- * performed by observing the 2^(a+b) = 2^a * 2^b.
- * We decompose x into a and b (above) by letting.
- * a = ceil(x), b = x - a;
- *
- * 2^a is easilty computed by placing a into the exponent
- * or a floating point number whose mantissa is all zeros.
- *
- * 2^b is computed using the following polynomial approximation.
- * (C. Hastings, Jr, 1955).
- *
- * __7__
- * \
- * \
- * 2^x = / Ci*x^i
- * /____
- * i=0
- *
- * for x in the range 0.0 to 1.0
- *
- * C0 = 1.0
- * C1 = -0.9999999995
- * C2 = 0.4999999206
- * C3 = -0.1666653019
- * C4 = 0.0416573475
- * C5 = -0.0083013598
- * C6 = 0.0013298820
- * C7 = -0.0001413161
- *
- */
-static __inline float _exp2f(float x)
-{
- union {
- float f;
- unsigned int ui;
- } bias, exp_int, exp_frac;
- unsigned int overflow, underflow;
- int ix;
- float frac, frac2, frac4;
- float hi, lo;
-
- /* Break in the input x into two parts ceil(x), x - ceil(x).
- */
- bias.f = x;
- bias.ui = ~(unsigned int)((signed)(bias.ui) >> 31) & 0x3F7FFFFF;
- ix = (int)(x + bias.f);
- frac = (float)ix - x;
- frac *= (float)(M_LN2);
-
- exp_int.ui = (ix + 127) << 23;
-
- overflow = (ix > 128) ? 0x7FFFFFFF : 0x0;
- underflow = (ix < -127) ? 0xFFFFFFFF : 0x0;
-
- /* Instruction counts can be reduced if the polynomial was
- * computed entirely from nested (dependent) fma's. However,
- * to reduce the number of pipeline stalls, the polygon is evaluated
- * in two halves (hi amd lo).
- */
- frac2 = frac * frac;
- frac4 = frac2 * frac2;
- hi = -0.0001413161f * frac + 0.0013298820f;
- hi = hi * frac - 0.0083013598f;
- hi = hi * frac + 0.0416573475f;
- lo = -0.1666653019f * frac + 0.4999999206f;
- lo = lo * frac - 0.9999999995f;
- lo = lo * frac + 1.0f;
- exp_frac.f = hi * frac4 + lo;
-
- ix += exp_frac.ui >> 23;
- exp_frac.f *= exp_int.f;
-
- exp_frac.ui = (exp_frac.ui | overflow) & ~underflow;
-
- return (exp_frac.f);
-}
-
-#endif /* _EXP2F_H_ */
-
-
diff --git a/newlib/libm/machine/spu/headers/exp2f4.h b/newlib/libm/machine/spu/headers/exp2f4.h
deleted file mode 100644
index e9de71be0..000000000
--- a/newlib/libm/machine/spu/headers/exp2f4.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _EXP2F4_H_
-#define _EXP2F4_H_ 1
-
-
-#include <spu_intrinsics.h>
-#include "simdmath.h"
-
-/*
- * FUNCTION
- * vector float _exp2f4(vector float x)
- *
- * DESCRIPTION
- * The _exp2f4 function computes 2 raised to the input vector x.
- * Computation is performed by observing the 2^(a+b) = 2^a * 2^b.
- * We decompose x into a and b (above) by letting.
- * a = ceil(x), b = x - a;
- *
- * 2^a is easilty computed by placing a into the exponent
- * or a floating point number whose mantissa is all zeros.
- *
- * 2^b is computed using the following polynomial approximation.
- * (C. Hastings, Jr, 1955).
- *
- * __7__
- * \
- * \
- * 2^(-x) = / Ci*x^i
- * /____
- * i=1
- *
- * for x in the range 0.0 to 1.0
- *
- * C0 = 1.0
- * C1 = -0.9999999995
- * C2 = 0.4999999206
- * C3 = -0.1666653019
- * C4 = 0.0416573475
- * C5 = -0.0083013598
- * C6 = 0.0013298820
- * C7 = -0.0001413161
- *
- */
-static __inline vector float _exp2f4(vector float x)
-{
- vector signed int ix;
- vector unsigned int overflow, underflow;
- vector float frac, frac2, frac4;
- vector float exp_int, exp_frac;
- vector float result;
- vector float hi, lo;
-
- vector float bias;
- /* Break in the input x into two parts ceil(x), x - ceil(x).
- */
- bias = (vector float)(spu_rlmaska((vector signed int)(x), -31));
- bias = (vector float)(spu_andc(spu_splats((unsigned int)0x3F7FFFFF), (vector unsigned int)bias));
- ix = spu_convts(spu_add(x, bias), 0);
- frac = spu_sub(spu_convtf(ix, 0), x);
- frac = spu_mul(frac, spu_splats((float)SM_LN2));
-
- overflow = spu_rlmask(spu_cmpgt(ix, 128), -1);
- underflow = spu_cmpgt(ix, -128);
-
- exp_int = (vector float)spu_and((vector unsigned int)spu_sl(spu_add(ix, 127), 23), underflow);
-
- /* Instruction counts can be reduced if the polynomial was
- * computed entirely from nested (dependent) fma's. However,
- * to reduce the number of pipeline stalls, the polygon is evaluated
- * in two halves (hi amd lo).
- */
- frac2 = spu_mul(frac, frac);
- frac4 = spu_mul(frac2, frac2);
-
- hi = spu_madd(frac, spu_splats(-0.0001413161f), spu_splats(0.0013298820f));
- hi = spu_madd(frac, hi, spu_splats(-0.0083013598f));
- hi = spu_madd(frac, hi, spu_splats(0.0416573475f));
- lo = spu_madd(frac, spu_splats(-0.1666653019f), spu_splats(0.4999999206f));
- lo = spu_madd(frac, lo, spu_splats(-0.9999999995f));
- lo = spu_madd(frac, lo, spu_splats(1.0f));
-
- exp_frac = spu_madd(frac4, hi, lo);
- ix = spu_add(ix, spu_rlmask((vector signed int)(exp_frac), -23));
- result = spu_mul(exp_frac, exp_int);
-
- /* Handle overflow */
- result = spu_or(result, (vector float)overflow);
-
- return (result);
-
-}
-
-#endif /* _EXP2F4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/expd2.h b/newlib/libm/machine/spu/headers/expd2.h
deleted file mode 100644
index c35bf22cd..000000000
--- a/newlib/libm/machine/spu/headers/expd2.h
+++ /dev/null
@@ -1,196 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _EXPD2_H_
-#define _EXPD2_H_ 1
-
-#include <spu_intrinsics.h>
-#include "floord2.h"
-
-#define LOG2E 1.4426950408889634073599 // 1/log(2)
-
-/*
- * FUNCTION
- * vector double _expd2(vector double x)
- *
- * DESCRIPTION
- * _expd2 computes e raised to the input x for
- * each of the element of the double word vector.
- *
- * Calculation is performed by reducing the input argument
- * to within a managable range, and then computing the power
- * series to the 11th degree.
- *
- * Range reduction is performed using the property:
- *
- * exp(x) = 2^n * exp(r)
- *
- * Values for "n" and "r" are determined such that:
- *
- * x = n * ln(2) + r, |r| <= ln(2)/2
- *
- * n = floor( (x/ln(2)) + 1/2 )
- * r = x - (n * ln(2))
- *
- * To enhance the precision for "r", computation is performed
- * using a two part representation of ln(2).
- *
- * Once the input is reduced, the power series is computed:
- *
- * __12_
- * \
- * exp(x) = 1 + \ (x^i)/i!
- * /
- * /____
- * i=2
- *
- * The resulting value is scaled by 2^n and returned.
- *
- */
-
-static __inline vector double _expd2(vector double x)
-{
- // log(2) in extended machine representable precision
- vec_double2 ln2_hi = spu_splats(6.9314575195312500E-1); // 3FE62E4000000000
- vec_double2 ln2_lo = spu_splats(1.4286068203094172E-6); // 3EB7F7D1CF79ABCA
-
- // coefficients for the power series
- // vec_double2 f01 = spu_splats(1.00000000000000000000E0); // 1/(1!)
- vec_double2 f02 = spu_splats(5.00000000000000000000E-1); // 1/(2!)
- vec_double2 f03 = spu_splats(1.66666666666666666667E-1); // 1/(3!)
- vec_double2 f04 = spu_splats(4.16666666666666666667E-2); // 1/(4!)
- vec_double2 f05 = spu_splats(8.33333333333333333333E-3); // 1/(5!)
- vec_double2 f06 = spu_splats(1.38888888888888888889E-3); // 1/(6!)
- vec_double2 f07 = spu_splats(1.98412698412698412698E-4); // 1/(7!)
- vec_double2 f08 = spu_splats(2.48015873015873015873E-5); // 1/(8!)
- vec_double2 f09 = spu_splats(2.75573192239858906526E-6); // 1/(9!)
- vec_double2 f10 = spu_splats(2.75573192239858906526E-7); // 1/(10!)
- vec_double2 f11 = spu_splats(2.50521083854417187751E-8); // 1/(11!)
- vec_double2 f12 = spu_splats(2.08767569878680989792E-9); // 1/(12!)
-
- // rx = floor(1/2 + x/log(2))
- vec_double2 rx = _floord2(spu_madd(x,spu_splats(LOG2E),spu_splats(0.5)));
-
- // extract the exponent of reduction
- vec_int4 exp = spu_convts(spu_roundtf(rx),0);
-
- // reduce the input to within [ -ln(2)/2 ... ln(2)/2 ]
- vec_double2 r;
- r = spu_nmsub(rx,ln2_hi,x);
- r = spu_nmsub(rx,ln2_lo,r);
-
- vec_double2 result;
- vec_double2 r2 = spu_mul(r,r);
-
- // Use Horner's method on the power series
- /* result = ((((c12*x + c11)*x + c10)*x + c9)*x + c8)*x + c7)*x + c6)*x^6 +
- ((((((c5*x + c4)*x + c3)*x + c2)*x + c1)*x + c0
- */
-
-#ifdef __SPU_EDP__
- vec_double2 p1, p2, r4, r6;
-
- p1 = spu_madd(f12, r, f11);
- p2 = spu_madd(f05, r, f04);
- r4 = spu_mul(r2, r2);
- p1 = spu_madd(p1, r, f10);
- p2 = spu_madd(p2, r, f03);
- p1 = spu_madd(p1, r, f09);
- p2 = spu_madd(p2, r, f02);
- p1 = spu_madd(p1, r, f08);
- r6 = spu_mul(r2, r4);
- p1 = spu_madd(p1, r, f07);
- p2 = spu_madd(p2, r2, r);
- p1 = spu_madd(p1, r, f06);
-
- result = spu_madd(r6, p1, p2);
- result = spu_add(result, spu_splats(1.0));
-
-#else
-
- result = spu_madd(r,f12,f11);
- result = spu_madd(result,r,f10);
- result = spu_madd(result,r,f09);
- result = spu_madd(result,r,f08);
- result = spu_madd(result,r,f07);
- result = spu_madd(result,r,f06);
- result = spu_madd(result,r,f05);
- result = spu_madd(result,r,f04);
- result = spu_madd(result,r,f03);
- result = spu_madd(result,r,f02);
- result = spu_madd(result,r2,r);
- result = spu_add(result,spu_splats(1.0));
-
-#endif /* __SPU_EDP__ */
-
-
- // Scale the result - basically a call to ldexpd2()
- vec_int4 e1, e2;
- vec_int4 min = spu_splats(-2044);
- vec_int4 max = spu_splats(2046);
- vec_uint4 cmp_min, cmp_max;
- vec_uint4 shift = (vec_uint4) { 20, 32, 20, 32 };
- vec_double2 f1, f2;
-
- /* Clamp the specified exponent to the range -2044 to 2046.
- */
- cmp_min = spu_cmpgt(exp, min);
- cmp_max = spu_cmpgt(exp, max);
- exp = spu_sel(min, exp, cmp_min);
- exp = spu_sel(exp, max, cmp_max);
-
- /* Generate the factors f1 = 2^e1 and f2 = 2^e2
- */
- e1 = spu_rlmaska(exp, -1);
- e2 = spu_sub(exp, e1);
-
- f1 = (vec_double2)spu_sl(spu_add(e1, 1023), shift);
- f2 = (vec_double2)spu_sl(spu_add(e2, 1023), shift);
-
- /* Compute the product x * 2^e1 * 2^e2
- */
- result = spu_mul(spu_mul(result, f1), f2);
-
- return result;
-}
-
-#endif /* _EXPD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/expf.h b/newlib/libm/machine/spu/headers/expf.h
deleted file mode 100644
index dd3c8c6c1..000000000
--- a/newlib/libm/machine/spu/headers/expf.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _EXPF_H_
-#define _EXPF_H_ 1
-
-#include "exp2f.h"
-
-#ifndef M_LOG2E
-#define M_LOG2E 1.4426950408889634074
-#endif /* M_LOG2E */
-
-/*
- * FUNCTION
- * float _expf(float x)
- *
- * DESCRIPTION
- * _expf computes e raised to the input x. expf is
- * computed using exp2f as e^x = 2^(log2(e)*x)
- */
-
-static __inline float _expf(float x)
-{
- return (_exp2f((float)(M_LOG2E) * x));
-}
-
-#endif /* _EXPF_H_ */
-
-
diff --git a/newlib/libm/machine/spu/headers/expf4.h b/newlib/libm/machine/spu/headers/expf4.h
deleted file mode 100644
index 7dac9217c..000000000
--- a/newlib/libm/machine/spu/headers/expf4.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _EXPF4_H_
-#define _EXPF4_H_ 1
-
-
-#include "floorf4.h"
-#include "ldexpf4.h"
-
-/*
- * FUNCTION
- * vector float _expf4(vector float x)
- *
- * DESCRIPTION
- * The _expf4 function computes e raised to the input x for
- * each of the element of the float vector.
- *
- */
-static __inline vector float _expf4(vector float x)
-{
-
- // log2(e)
- vec_float4 log2e = spu_splats(1.4426950408889634074f);
-
- // Extra precision for the ln2 multiply
- vec_float4 ln2_hi = spu_splats(0.693359375f);
- vec_float4 ln2_lo = spu_splats(-2.12194440E-4f);
-
- // Coefficents for the Taylor series
- vec_float4 f02 = spu_splats(5.0000000000000000E-1f); // 1/2!
- vec_float4 f03 = spu_splats(1.6666666666666667E-1f); // 1/3!
- vec_float4 f04 = spu_splats(4.1666666666666667E-2f); // 1/4!
- vec_float4 f05 = spu_splats(8.3333333333333333E-3f); // 1/5!
- vec_float4 f06 = spu_splats(1.3888888888888889E-3f); // 1/6!
- vec_float4 f07 = spu_splats(1.9841269841269841E-4f); // 1/7!
-
- // Range reduce input, so that:
- // e^x = e^z * 2^n
- // e^x = e^z * e^(n * ln(2))
- // e^x = e^(z + (n * ln(2)))
-
- vec_int4 n; // exponent of reduction
- vec_float4 q; // range reduced result
-
- vec_float4 z;
- vec_float4 r;
-
- z = spu_madd(x,log2e,spu_splats(0.5f));
- z = _floorf4(z);
- r = spu_nmsub(z,ln2_hi,x);
- r = spu_nmsub(z,ln2_lo,r);
- n = spu_convts(z,0);
- z = spu_mul(r,r);
-
- // Use Horner's method on the Taylor series
- q = spu_madd(r,f07,f06);
- q = spu_madd(q,r,f05);
- q = spu_madd(q,r,f04);
- q = spu_madd(q,r,f03);
- q = spu_madd(q,r,f02);
- q = spu_madd(q,z,r);
- q = spu_add(q,spu_splats(1.0f));
-
- // Adjust the result by the range reduction
- r = _ldexpf4( q, n );
-
- return(r);
-
-}
-
-#endif /* _EXPF4_H_ */
-#endif /* __SPU__ */
-
diff --git a/newlib/libm/machine/spu/headers/expm1.h b/newlib/libm/machine/spu/headers/expm1.h
deleted file mode 100644
index 4983c1949..000000000
--- a/newlib/libm/machine/spu/headers/expm1.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/expm1d2.h"
-
-static __inline double _expm1(double x)
-{
- return spu_extract(_expm1d2(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/expm1d2.h b/newlib/libm/machine/spu/headers/expm1d2.h
deleted file mode 100644
index ba2369a1d..000000000
--- a/newlib/libm/machine/spu/headers/expm1d2.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _EXPM1D2_H_
-#define _EXPM1D2_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "expd2.h"
-#include "divd2.h"
-
-#define EXPM1_P0 0.0000000000000000000000000e+00
-#define EXPM1_P1 1.0000000000000000000000000e+00
-#define EXPM1_P2 9.7234232565378004697204117e-04
-#define EXPM1_P3 3.3328278237299953368211192e-02
-#define EXPM1_P4 3.1156225044634678993365345e-05
-#define EXPM1_P5 2.1352206553343212164751408e-04
-#define EXPM1_P6 1.6975135794626144795757452e-07
-#define EXPM1_P7 2.7686287801334994383131629e-07
-#define EXPM1_P8 1.1186114936216450015354379e-10
-
-#define EXPM1_Q0 1.0000000000000000000000000e+00
-#define EXPM1_Q1 -4.9902765767434620336473472e-01
-#define EXPM1_Q2 1.1617544040780639069687652e-01
-#define EXPM1_Q3 -1.6551954366467523660499950e-02
-#define EXPM1_Q4 1.5864115838972218334307351e-03
-#define EXPM1_Q5 -1.0534540477401370666288988e-04
-#define EXPM1_Q6 4.7650003993592160620959043e-06
-#define EXPM1_Q7 -1.3529198871087017840776265e-07
-#define EXPM1_Q8 1.8635779407675460757658020e-09
-
-/*
- * FUNCTION
- * vector double _expm1d2(vector double x)
- *
- * DESCRIPTION
- * _expm1d2 computes the exponential - 1 for each element
- * of the input vector x.
- *
- * This function is intended to return accurate values, even
- * where exp(x) - 1 would normally produce bad results due to
- * floating-point cancellation errors.
- *
- */
-
-static __inline vector double _expm1d2(vector double x)
-{
- vector double oned = spu_splats(1.0);
- vector double range = spu_splats(1.0625);
- vector unsigned long long use_exp;
- vector double pr, qr;
- vector double eresult;
- vector double rresult;
- vector double result;
-
- /* Compiler Bug. Replace xbug with x when spu_cmp*() doesn't
- * modify it's arguments! */
- volatile vector double xbug = x;
- use_exp = spu_cmpabsgt(xbug, range);
-
- /*
- * Calculate directly using exp(x) - 1
- */
- eresult = spu_sub(_expd2(x), oned);
-
- /*
- * For x in [-1.0625,1.0625], use a rational approximation.
- * The madd's are interleaved to reduce dependency stalls. Looks
- * like gcc is smart enough to do this on it's own... but why
- * take the chance.
- */
- pr = spu_madd(x, spu_splats(EXPM1_P8), spu_splats(EXPM1_P7));
- qr = spu_madd(x, spu_splats(EXPM1_Q8), spu_splats(EXPM1_Q7));
- pr = spu_madd(pr, x, spu_splats(EXPM1_P6));
- qr = spu_madd(qr, x, spu_splats(EXPM1_Q6));
- pr = spu_madd(pr, x, spu_splats(EXPM1_P5));
- qr = spu_madd(qr, x, spu_splats(EXPM1_Q5));
- pr = spu_madd(pr, x, spu_splats(EXPM1_P4));
- qr = spu_madd(qr, x, spu_splats(EXPM1_Q4));
- pr = spu_madd(pr, x, spu_splats(EXPM1_P3));
- qr = spu_madd(qr, x, spu_splats(EXPM1_Q3));
- pr = spu_madd(pr, x, spu_splats(EXPM1_P2));
- qr = spu_madd(qr, x, spu_splats(EXPM1_Q2));
- pr = spu_madd(pr, x, spu_splats(EXPM1_P1));
- qr = spu_madd(qr, x, spu_splats(EXPM1_Q1));
- pr = spu_madd(pr, x, spu_splats(EXPM1_P0));
- qr = spu_madd(qr, x, spu_splats(EXPM1_Q0));
- rresult = _divd2(pr, qr);
-
- /*
- * Select either direct calculation or rational approximation.
- */
- result = spu_sel(rresult, eresult, use_exp);
-
- return result;
-}
-
-#endif /* _EXPM1D2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/expm1f.h b/newlib/libm/machine/spu/headers/expm1f.h
deleted file mode 100644
index afc0d9679..000000000
--- a/newlib/libm/machine/spu/headers/expm1f.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/expm1f4.h"
-
-static __inline float _expm1f(float vx)
-{
- return spu_extract(_expm1f4(spu_promote(vx, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/expm1f4.h b/newlib/libm/machine/spu/headers/expm1f4.h
deleted file mode 100644
index 519da1d2c..000000000
--- a/newlib/libm/machine/spu/headers/expm1f4.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _EXPM1F4_H_
-#define _EXPM1F4_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "expf4.h"
-#include "divf4.h"
-
-
-#define EXPM1F4_P0 0.0000000000000000000000000e-00
-#define EXPM1F4_P1 9.9999999999999988897769754e-01
-#define EXPM1F4_P2 -6.5597409827762467697531701e-04
-#define EXPM1F4_P3 2.3800889637330315679042414e-02
-#define EXPM1F4_P4 -1.0914929910143700584950963e-05
-
-#define EXPM1F4_Q0 1.0000000000000000000000000e-00
-#define EXPM1F4_Q1 -5.0065597410018825019761834e-01
-#define EXPM1F4_Q2 1.0746220997195164714721471e-01
-#define EXPM1F4_Q3 -1.1966024153043854083566799e-02
-#define EXPM1F4_Q4 5.9997727954467768105711878e-04
-
-
-/*
- * FUNCTION
- * vector float _expm1f4(vector float x)
- *
- * _expm1d2 computes the exponential - 1 for each element
- * of the input vector x.
- *
- * This function is intended to return accurate values, even
- * where exp(x) - 1 would normally produce bad results due to
- * floating-point cancellation errors.
- *
- */
-
-static __inline vector float _expm1f4(vector float x)
-{
- vector float onef = spu_splats(1.0f);
- vector float rangelo = spu_splats(-0.4f);
- vector float rangehi = spu_splats(0.35f);
- vector unsigned int use_exp;
- vector float pr, qr;
- vector float eresult;
- vector float rresult;
- vector float result;
-
- use_exp = spu_or(spu_cmpgt(x, rangehi), spu_cmpgt(rangelo, x));
-
- /*
- * Calculate directly using exp(x) - 1
- */
- eresult = spu_sub(_expf4(x), onef);
-
- /*
- * For x in [-0.5,0.5], use a rational approximation.
- * The madd's are interleaved to reduce dependency stalls. Looks
- * like gcc is smart enough to do this on it's own... but why
- * take the chance.
- */
- pr = spu_madd(x, spu_splats((float)EXPM1F4_P4), spu_splats((float)EXPM1F4_P3));
- qr = spu_madd(x, spu_splats((float)EXPM1F4_Q4), spu_splats((float)EXPM1F4_Q3));
- pr = spu_madd(pr, x, spu_splats((float)EXPM1F4_P2));
- qr = spu_madd(qr, x, spu_splats((float)EXPM1F4_Q2));
- pr = spu_madd(pr, x, spu_splats((float)EXPM1F4_P1));
- qr = spu_madd(qr, x, spu_splats((float)EXPM1F4_Q1));
- pr = spu_madd(pr, x, spu_splats((float)EXPM1F4_P0));
- qr = spu_madd(qr, x, spu_splats((float)EXPM1F4_Q0));
- rresult = _divf4(pr, qr);
-
- /*
- * Select either direct calculation or rational approximation.
- */
- result = spu_sel(rresult, eresult, use_exp);
-
- return result;
-}
-
-#endif /* _EXPM1F4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/fabs.h b/newlib/libm/machine/spu/headers/fabs.h
deleted file mode 100644
index 1b9cfddc2..000000000
--- a/newlib/libm/machine/spu/headers/fabs.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FABS_H_
-#define _FABS_H_ 1
-
-/*
- * FUNCTION
- * double _fabs(double value)
- *
- * DESCRIPTION
- * The _fabsf routine returns the absolute value of the floating-point
- * input value "value". This is accomplished by zeroing the most
- * significant bit (ie, the sign bit) of the floating-point value.
- */
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-static __inline double _fabs(double x)
-{
- vec_ullong2 vx;
-
- vx = (vec_ullong2)spu_promote(x, 0);
- vx = spu_andc(vx, VEC_SPLAT_U64(0x8000000000000000ULL));
-
- return (spu_extract((vec_double2)vx, 0));
-}
-#endif /* _FABS_H_ */
diff --git a/newlib/libm/machine/spu/headers/fabsf.h b/newlib/libm/machine/spu/headers/fabsf.h
deleted file mode 100644
index f6d0a2e03..000000000
--- a/newlib/libm/machine/spu/headers/fabsf.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FABSF_H_
-#define _FABSF_H_ 1
-
-/*
- * FUNCTION
- * float _fabsf(float value)
- *
- * DESCRIPTION
- * The _fabsf routine returns the absolute value of the floating-point
- * input value "value". This is accomplished by zeroing the most
- * significant bit (ie, the sign bit) of the floating-point value.
- */
-
-static __inline float _fabsf(float value)
-{
- union {
- unsigned int ui;
- float f;
- } in;
-
- in.f = value;
- in.ui = (in.ui << 1) >> 1;
-
- return (in.f);
-}
-#endif /* _FABSF_H_ */
-
-
diff --git a/newlib/libm/machine/spu/headers/fdim.h b/newlib/libm/machine/spu/headers/fdim.h
deleted file mode 100644
index 8359d880a..000000000
--- a/newlib/libm/machine/spu/headers/fdim.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FDIM_H_
-#define _FDIM_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* fdim - compute the positive difference of x and y.
- */
-static __inline double _fdim(double x, double y)
-{
- vec_double2 v;
- vec_uint4 mask;
-
- v = spu_promote(x - y, 0);
- mask = (vec_uint4)spu_shuffle(v, v, VEC_SPLAT_U8(0));
- v = spu_andc(v, (vec_double2)spu_rlmaska(mask, -31));
-
- return (spu_extract(v, 0));
-}
-#endif /* _FDIM_H_ */
diff --git a/newlib/libm/machine/spu/headers/fdimf.h b/newlib/libm/machine/spu/headers/fdimf.h
deleted file mode 100644
index 89a98ef4b..000000000
--- a/newlib/libm/machine/spu/headers/fdimf.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FDIMF_H_
-#define _FDIMF_H_ 1
-
-#include <spu_intrinsics.h>
-
-/* fdim - compute the positive difference of x and y.
- */
-static __inline float _fdimf(float x, float y)
-{
- vec_float4 vx, vy;
-
- vx = spu_promote(x, 0);
- vy = spu_promote(y, 0);
- return (spu_extract(spu_and(spu_sub(vx, vy),
- (vec_float4)spu_cmpgt(vx, vy)), 0));
-}
-#endif /* _FDIMF_H_ */
diff --git a/newlib/libm/machine/spu/headers/feclearexcept.h b/newlib/libm/machine/spu/headers/feclearexcept.h
deleted file mode 100644
index 880367cce..000000000
--- a/newlib/libm/machine/spu/headers/feclearexcept.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FECLEAREXCEPT_H_
-#define _FECLEAREXCEPT_H_ 1
-
-#include <spu_intrinsics.h>
-#include <fenv.h>
-#include "headers/fefpscr.h"
-
-static __inline void _feclearexcept(int excepts)
-{
- vec_uint4 fpscr, fpscr_mask;
-
- fpscr = spu_mffpscr();
- excepts = ~(excepts & FE_ALL_EXCEPT);
- fpscr_mask = __unpack_fpscr((fenv_t) excepts);
- fpscr = spu_and(fpscr, fpscr_mask);
- spu_mtfpscr(fpscr);
-}
-
-#endif /* _FECLEAREXCEPT_H_ */
diff --git a/newlib/libm/machine/spu/headers/fefpscr.h b/newlib/libm/machine/spu/headers/fefpscr.h
deleted file mode 100644
index 316035c7b..000000000
--- a/newlib/libm/machine/spu/headers/fefpscr.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
- * Functions to pack/unpack the 128 bit fpscr to/from the 32 bit fenv_t.
- * The fpscr currently has 32 of 128 bits defined.
- */
-
-#ifndef _FEFPSCR_H_
-#define _FEFPSCR_H_ 1
-
-#include <spu_intrinsics.h>
-#include <fenv.h>
-
-static __inline vec_uint4 __unpack_fpscr(fenv_t word)
-{
- vec_uint4 fpscr;
- vec_uchar16 splat = { 0, 1, 0, 1, 0, 1, 0, 1, 2, 3, 2, 3, 2, 3, 2, 3 };
- vec_short8 rotm = { -12, -9, -3, 0, -10, -7, -3, 0 };
- vec_uint4 mask = { 0x00000f07, 0x00003f07, 0x00003f07, 0x00000f07 };
-
- fpscr = spu_promote (word, 0);
- fpscr = spu_shuffle (fpscr, fpscr, splat);
- /*
- * The casts here are important, so we generate different code.
- */
- fpscr = (vec_uint4) spu_rlmask ((vec_short8) fpscr, rotm);
- fpscr = (vec_uint4) spu_and ((vec_short8) fpscr, 0xff);
- fpscr = spu_or (spu_rlmask(fpscr, -8), fpscr);
- fpscr = spu_and (fpscr, mask);
- return fpscr;
-}
-
-static __inline fenv_t __pack_fpscr(vec_uint4 fpscr)
-{
- vec_uchar16 pat = { 0x80, 2, 0x80, 10, 0x80, 3, 0x80, 11,
- 0x80, 6, 0x80, 14, 0x80, 7, 0x80, 15 };
- vec_ushort8 shl = { 12, 10, 9, 7, 3, 3, 0, 0 };
- vec_uint4 mask = { 0x00000f07, 0x00003f07, 0x00003f07, 0x00000f07 };
- vec_uint4 word;
-
- word = spu_and (fpscr, mask);
- word = spu_shuffle (word, word, pat);
- word = (vec_uint4) spu_sl ((vec_short8) word, shl);
- word = spu_orx (word);
- return spu_extract (word, 0);
-}
-
-#endif
diff --git a/newlib/libm/machine/spu/headers/fegetenv.h b/newlib/libm/machine/spu/headers/fegetenv.h
deleted file mode 100644
index 5982eda69..000000000
--- a/newlib/libm/machine/spu/headers/fegetenv.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FEGETENV_H_
-#define _FEGETENV_H_ 1
-
-#include <spu_intrinsics.h>
-#include <fenv.h>
-#include "headers/fefpscr.h"
-
-static __inline void _fegetenv(fenv_t *envp)
-{
- vec_uint4 fpscr;
-
- fpscr = spu_mffpscr();
- *envp = __pack_fpscr(fpscr);
-}
-
-#endif /* _FEGETENV_H_ */
diff --git a/newlib/libm/machine/spu/headers/fegetexceptflag.h b/newlib/libm/machine/spu/headers/fegetexceptflag.h
deleted file mode 100644
index 33e559418..000000000
--- a/newlib/libm/machine/spu/headers/fegetexceptflag.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FEGETEXCEPTFLAG_H_
-#define _FEGETEXCEPTFLAG_H_ 1
-
-#include <spu_intrinsics.h>
-#include <fenv.h>
-#include "headers/fefpscr.h"
-
-static __inline void _fegetexceptflag(fexcept_t *flagp, int excepts)
-{
- vec_uint4 fpscr;
-
- excepts &= FE_ALL_EXCEPT;
- fpscr = spu_mffpscr();
- *flagp = __pack_fpscr(fpscr) & excepts;
-}
-
-#endif /* _FEGETEXCEPTFLAG_H_ */
diff --git a/newlib/libm/machine/spu/headers/fegetround.h b/newlib/libm/machine/spu/headers/fegetround.h
deleted file mode 100644
index 7b5a5b5cc..000000000
--- a/newlib/libm/machine/spu/headers/fegetround.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FEGETROUND_H_
-#define _FEGETROUND_H_ 1
-
-#include <spu_intrinsics.h>
-#include <fenv.h>
-
-#define FE_MASK_ROUND (__FE_ROUND_ELE_0 | __FE_ROUND_ELE_1)
-
-static __inline int _fegetround()
-{
- return (((spu_extract(spu_mffpscr(), 0) >> 8) & 0xf) | FE_MASK_ROUND);
-}
-
-#endif /* _FEGETROUND_H_ */
diff --git a/newlib/libm/machine/spu/headers/feholdexcept.h b/newlib/libm/machine/spu/headers/feholdexcept.h
deleted file mode 100644
index 9f6bd521b..000000000
--- a/newlib/libm/machine/spu/headers/feholdexcept.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FEHOLDEXCEPT_H_
-#define _FEHOLDEXCEPT_H_ 1
-
-#include <spu_intrinsics.h>
-#include <fenv.h>
-#include "headers/fefpscr.h"
-
-static __inline int _feholdexcept(fenv_t *envp)
-{
- vec_uint4 fpscr;
- fenv_t env;
-
- fpscr = spu_mffpscr();
- *envp = __pack_fpscr(fpscr);
- env = *envp & ~FE_ALL_EXCEPT;
- spu_mtfpscr(__unpack_fpscr(env));
- return (0);
-}
-
-#endif /* _FEHOLDEXCEPT_H_ */
diff --git a/newlib/libm/machine/spu/headers/feraiseexcept.h b/newlib/libm/machine/spu/headers/feraiseexcept.h
deleted file mode 100644
index 2e7b24722..000000000
--- a/newlib/libm/machine/spu/headers/feraiseexcept.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FERAISEEXCEPT_H_
-#define _FERAISEEXCEPT_H_ 1
-
-#include <spu_intrinsics.h>
-#include <fenv.h>
-#include "headers/fefpscr.h"
-
-static __inline void _feraiseexcept(int excepts)
-{
- vec_uint4 fpscr, big_except;
-
- fpscr = spu_mffpscr();
- excepts = excepts & FE_ALL_EXCEPT;
- big_except = __unpack_fpscr(excepts);
- fpscr = spu_or(fpscr, big_except);
- spu_mtfpscr(fpscr);
-}
-
-#endif /* _FERAISEEXCEPT_H_ */
diff --git a/newlib/libm/machine/spu/headers/fesetenv.h b/newlib/libm/machine/spu/headers/fesetenv.h
deleted file mode 100644
index 4f8eee305..000000000
--- a/newlib/libm/machine/spu/headers/fesetenv.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FESETENV_H_
-#define _FESETENV_H_ 1
-
-#include <spu_intrinsics.h>
-#include <fenv.h>
-#include "headers/fefpscr.h"
-
-static __inline void _fesetenv(const fenv_t *envp)
-{
- vec_uint4 fpscr;
-
- fpscr = __unpack_fpscr(*envp);
- spu_mtfpscr(fpscr);
-}
-
-#endif /* _FESETENV_H_ */
diff --git a/newlib/libm/machine/spu/headers/fesetexceptflag.h b/newlib/libm/machine/spu/headers/fesetexceptflag.h
deleted file mode 100644
index 9a3760840..000000000
--- a/newlib/libm/machine/spu/headers/fesetexceptflag.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FESETEXCEPTFLAG_H_
-#define _FESETEXCEPTFLAG_H_ 1
-
-#include <spu_intrinsics.h>
-#include <fenv.h>
-#include "headers/fefpscr.h"
-
-static __inline void _fesetexceptflag(const fexcept_t *flagp, int excepts)
-{
- vec_uint4 fpscr;
- fenv_t mask, pack_fpscr;
-
- fpscr = spu_mffpscr();
- pack_fpscr = __pack_fpscr(fpscr);
- mask = excepts & FE_ALL_EXCEPT;
- fpscr = __unpack_fpscr((pack_fpscr & ~mask) | (*flagp & mask));
- spu_mtfpscr(fpscr);
-}
-
-#endif /* _FESETEXCEPTFLAG_H_ */
diff --git a/newlib/libm/machine/spu/headers/fesetround.h b/newlib/libm/machine/spu/headers/fesetround.h
deleted file mode 100644
index 3cda4c80d..000000000
--- a/newlib/libm/machine/spu/headers/fesetround.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FESETROUND_H_
-#define _FESETROUND_H_ 1
-
-#include <spu_intrinsics.h>
-#include <fenv.h>
-
-#define FE_MASK_ROUND (__FE_ROUND_ELE_0 | __FE_ROUND_ELE_1)
-
-#define SMALL (FE_MASK_ROUND - 1)
-#define LARGE (FE_MASK_ROUND + \
- ((__FE_SPU_DOWNWARD << 2) | __FE_SPU_DOWNWARD) + 1)
-
-static __inline int _fesetround(int mode)
-{
- unsigned int umode;
- vec_uint4 vec_mode;
- vec_uint4 valid, fail;
- vec_uint4 cur_fpscr, new_fpscr, mask_fpscr;
- vec_uint4 const valid_ele0 =
- { FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD, FE_DOWNWARD };
- vec_uint4 const valid_ele1 =
- { FE_TONEAREST_1, FE_TOWARDZERO_1, FE_UPWARD_1, FE_DOWNWARD_1 };
- vec_uint4 const too_large = { LARGE, LARGE, LARGE, LARGE };
- vec_uchar16 const splat_ele0 =
- { 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3 };
- vec_uint4 const clear_non_ele0 = { 0xffffffff, 0, 0, 0 };
-
- /*
- * There are 24 valid values, check for a range plus the other 8
- * rather than check for specific bit settings.
- *
- * These are all the valid values:
- * 0xf00 through 0xf0f (SMALL + 1 through LARGE - 1, 16 values)
- * 0xc00 0xc04 0xc08 0xc0c (in ele0)
- * 0x300 0x301 0x302 0x303 (in ele1)
- */
- umode = mode;
- vec_mode = spu_splats(umode);
- valid = spu_cmpeq(vec_mode, valid_ele0);
- valid = spu_or(valid, spu_cmpeq(vec_mode, valid_ele1));
- valid = spu_or(valid, spu_cmpgt(vec_mode, SMALL));
- valid = spu_and(valid, spu_cmpgt(too_large, vec_mode));
-
- fail = spu_gather(valid);
- fail = spu_cmpeq(fail, 0);
- /*
- * set all elements of fail to the value of fail's element 0, so
- * we can select the current fpscr values on failure.
- */
- fail = spu_shuffle(fail, fail, splat_ele0);
-
- cur_fpscr = spu_mffpscr();
- /*
- * We don't have to mask the round element selection out since it
- * is shifted out.
- */
- new_fpscr = spu_promote(umode << 8, 0);
- new_fpscr = spu_and(new_fpscr, clear_non_ele0);
- /*
- * Use the element bits of the mode to set the mask.
- */
- mask_fpscr = spu_promote((umode & FE_MASK_ROUND), 0);
- new_fpscr = spu_sel(cur_fpscr, new_fpscr, mask_fpscr);
- /*
- * Use the current fpscr value if the round mode was invalid
- */
- new_fpscr = spu_sel(new_fpscr, cur_fpscr, fail);
- spu_mtfpscr(new_fpscr);
-
- return spu_extract(fail, 0);
-}
-#endif /* _FESETROUND_H_ */
diff --git a/newlib/libm/machine/spu/headers/fetestexcept.h b/newlib/libm/machine/spu/headers/fetestexcept.h
deleted file mode 100644
index e89049d00..000000000
--- a/newlib/libm/machine/spu/headers/fetestexcept.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FETESTEXCEPT_H_
-#define _FETESTEXCEPT_H_ 1
-
-#include <spu_intrinsics.h>
-#include <fenv.h>
-#include "headers/fefpscr.h"
-
-static __inline int _fetestexcept(int excepts)
-{
- vec_uint4 fpscr;
-
- excepts &= FE_ALL_EXCEPT;
- fpscr = spu_mffpscr();
- return (__pack_fpscr(fpscr) & excepts);
-}
-
-#endif /* _FETESTEXCEPT_H_ */
diff --git a/newlib/libm/machine/spu/headers/feupdateenv.h b/newlib/libm/machine/spu/headers/feupdateenv.h
deleted file mode 100644
index a946608c4..000000000
--- a/newlib/libm/machine/spu/headers/feupdateenv.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FEUPDATEENV_H_
-#define _FEUPDATEENV_H_ 1
-
-#include <spu_intrinsics.h>
-#include <fenv.h>
-#include "headers/fefpscr.h"
-
-static __inline void _feupdateenv(const fenv_t *envp)
-{
- vec_uint4 fpscr;
-
- fpscr = __unpack_fpscr(*envp);
- spu_mtfpscr(fpscr);
-}
-
-#endif /* _FEUPDATEENV_H_ */
diff --git a/newlib/libm/machine/spu/headers/floor.h b/newlib/libm/machine/spu/headers/floor.h
deleted file mode 100644
index 6675b948d..000000000
--- a/newlib/libm/machine/spu/headers/floor.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FLOOR_H_
-#define _FLOOR_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* Round the input downwards to the nearest integer.
- */
-static __inline double _floor(double x)
-{
- vec_uchar16 swap_words = VEC_LITERAL(vec_uchar16, 4,5,6,7, 0,1,2,3, 12,13,14,15, 8,9,10,11);
- vec_uchar16 splat_hi = VEC_LITERAL(vec_uchar16, 0,1,2,3,0,1,2,3, 8,9,10,11, 8,9,10,11);
- vec_uint4 one = VEC_LITERAL(vec_uint4, 0, 1, 0, 1);
- vec_int4 exp, shift;
- vec_uint4 mask, mask_1, frac_mask, addend, insert, pos, equal0;
- vec_ullong2 sign = VEC_SPLAT_U64(0x8000000000000000ULL);
- vec_double2 in, in_hi, out;
- vec_double2 minus_one = VEC_SPLAT_F64(-1.0);
-
- in = spu_promote(x, 0);
-
- /* This function generates the following component
- * based upon the inputs.
- *
- * mask = bits of the input that need to be replaced.
- * insert = value of the bits that need to be replaced
- * addend = value to be added to perform function.
- *
- * These are applied as follows:.
- *
- * out = ((in & mask) | insert) + addend
- */
- in_hi = spu_shuffle(in, in, splat_hi);
- pos = spu_cmpgt((vec_int4)in_hi, -1);
- exp = spu_and(spu_rlmask((vec_int4)in_hi, -20), 0x7FF);
- shift = spu_sub(VEC_LITERAL(vec_int4, 1023, 1043, 1023, 1043), exp);
-
- /* clamp shift to the range 0 to -31.
- */
- shift = spu_sel(VEC_SPLAT_S32(-32), spu_andc(shift, (vec_int4)spu_cmpgt(shift, 0)), spu_cmpgt(shift, -32));
-
- frac_mask = spu_rlmask(VEC_LITERAL(vec_uint4, 0xFFFFF, -1, 0xFFFFF, -1), shift);
- mask = spu_orc(frac_mask, spu_cmpgt(exp, 0x3FE));
-
- /* addend = ((in & mask) && (in >= 0)) ? mask+1 : 0
- */
- mask_1 = spu_addx(mask, one, spu_rlqwbyte(spu_genc(mask, one), 4));
-
- equal0 = spu_cmpeq(spu_and((vec_uint4)in, mask), 0);
- addend = spu_andc(spu_andc(mask_1, pos),
- spu_and(equal0, spu_shuffle(equal0, equal0, swap_words)));
-
- insert = spu_andc(spu_andc((vec_uint4)minus_one, pos),
- spu_cmpgt((vec_uint4)spu_add(exp, -1), 1022));
-
- in = spu_sel(in, (vec_double2)insert, spu_andc((vec_ullong2)mask, sign));
- out = (vec_double2)spu_addx((vec_uint4)in, addend,
- spu_rlqwbyte(spu_genc((vec_uint4)in, addend), 4));
-
- return (spu_extract(out, 0));
-}
-#endif /* _FLOOR_H_ */
diff --git a/newlib/libm/machine/spu/headers/floord2.h b/newlib/libm/machine/spu/headers/floord2.h
deleted file mode 100644
index 247884d51..000000000
--- a/newlib/libm/machine/spu/headers/floord2.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _FLOORD2_H_
-#define _FLOORD2_H_ 1
-
-#include <spu_intrinsics.h>
-
-
-/*
- * FUNCTION
- * vector double _floord2(vector double x)
- *
- * DESCRIPTION
- * The _floord2 function rounds the elements of an vector double
- * input vector downwards to their nearest integer representable
- * as a double.
- *
- */
-static __inline vector double _floord2(vector double in)
-{
- vec_uchar16 swap_words = (vec_uchar16) { 4,5,6,7, 0,1,2,3, 12,13,14,15, 8,9,10,11 };
- vec_uchar16 splat_hi = (vec_uchar16) { 0,1,2,3, 0,1,2,3, 8,9,10,11, 8,9,10,11 };
- vec_uint4 one = (vec_uint4) { 0, 1, 0, 1 };
- vec_int4 exp, shift;
- vec_uint4 mask, mask_1, frac_mask, addend, insert, pos, equal0;
- vec_ullong2 sign = spu_splats(0x8000000000000000ULL);
- vec_double2 in_hi, out;
- vec_double2 minus_one = spu_splats(-1.0);
-
- /* This function generates the following component
- * based upon the inputs.
- *
- * mask = bits of the input that need to be replaced.
- * insert = value of the bits that need to be replaced
- * addend = value to be added to perform function.
- *
- * These are applied as follows:.
- *
- * out = ((in & mask) | insert) + addend
- */
- in_hi = spu_shuffle(in, in, splat_hi);
- pos = spu_cmpgt((vec_int4)in_hi, -1);
- exp = spu_and(spu_rlmask((vec_int4)in_hi, -20), 0x7FF);
- shift = spu_sub(((vec_int4) { 1023, 1043, 1023, 1043 } ), exp);
-
- /* clamp shift to the range 0 to -31.
- */
- shift = spu_sel(spu_splats(-32), spu_andc(shift, (vec_int4)spu_cmpgt(shift, 0)), spu_cmpgt(shift, -32));
-
- frac_mask = spu_rlmask(((vec_uint4) { 0xFFFFF, -1, 0xFFFFF, -1 } ), shift);
- mask = spu_orc(frac_mask, spu_cmpgt(exp, 0x3FE));
-
- /* addend = ((in & mask) && (in >= 0)) ? mask+1 : 0
- */
- mask_1 = spu_addx(mask, one, spu_rlqwbyte(spu_genc(mask, one), 4));
-
- equal0 = spu_cmpeq(spu_and((vec_uint4)in, mask), 0);
- addend = spu_andc(spu_andc(mask_1, pos), spu_and(equal0, spu_shuffle(equal0, equal0, swap_words)));
-
- insert = spu_andc(spu_andc((vec_uint4)minus_one, pos),
- spu_cmpgt((vec_uint4)spu_add(exp, -1), 1022));
-
- in = spu_sel(in, (vec_double2)insert, spu_andc((vec_ullong2)mask, sign));
- out = (vec_double2)spu_addx((vec_uint4)in, addend, spu_rlqwbyte(spu_genc((vec_uint4)in, addend), 4));
-
- return (out);
-}
-
-#endif /* _FLOORD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/floorf.h b/newlib/libm/machine/spu/headers/floorf.h
deleted file mode 100644
index e6cc0f89e..000000000
--- a/newlib/libm/machine/spu/headers/floorf.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FLOORF_H_
-#define _FLOORF_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/*
- * FUNCTION
- * float _floorf(float value)
- *
- * DESCRIPTION
- * The _floorf routine round the input value "value" downwards to the
- * nearest integer returning the result as a float. Two forms of the
- * floor function are provided - full range and limited (integer)
- * range.
- *
- * The full range form (default) provides floor computation on
- * all IEEE floating point values. The floor of NANs remain NANs.
- * The floor of denorms results in zero.
- *
- * The limited range form (selected by defining FLOOR_INTEGER_RANGE)
- * compute ths floor of all floating-point values in the 32-bit
- * signed integer range. Values outside this range get clamped.
- */
-
-static __inline float _floorf(float value)
-{
-#ifdef FLOOR_INTEGER_RANGE
- /* 32-BIT INTEGER DYNAMIC RANGE
- */
- union {
- float f;
- signed int i;
- unsigned int ui;
- } bias;
-
- bias.f = value;
-
- /* If positive, bias the input value to truncate towards
- * positive infinity, instead of zero.
- */
- bias.ui = (unsigned int)(bias.i >> 31) & 0x3F7FFFFF;
- value -= bias.f;
-
- /* Remove fraction bits by casting to an integer and back
- * to a floating-point value.
- */
- return ((float)((int)value));
-
-#else /* !FLOOR_INTEGER_RANGE */
- /* FULL FLOATING-POINT RANGE
- */
- vec_int4 exp, shift;
- vec_uint4 mask, frac_mask, addend, insert, pos;
- vec_float4 in, out;
-
- in = spu_promote(value, 0);
-
- /* This function generates the following component
- * based upon the inputs.
- *
- * mask = bits of the input that need to be replaced.
- * insert = value of the bits that need to be replaced
- * addend = value to be added to perform function.
- *
- * These are applied as follows:.
- *
- * out = ((in & mask) | insert) + addend
- */
- pos = spu_cmpgt((vec_int4)in, -1);
- exp = spu_and(spu_rlmask((vec_int4)in, -23), 0xFF);
-
- shift = spu_sub(127, exp);
-
- frac_mask = spu_and(spu_rlmask(VEC_SPLAT_U32(0x7FFFFF), shift),
- spu_cmpgt((vec_int4)shift, -31));
-
- mask = spu_orc(frac_mask, spu_cmpgt(exp, 126));
-
- addend = spu_andc(spu_andc(spu_add(mask, 1), pos),
- spu_cmpeq(spu_and((vec_uint4)in, mask), 0));
-
- insert = spu_andc(spu_andc(VEC_SPLAT_U32(0xBF800000), pos),
- spu_cmpgt((vec_uint4)spu_add(exp, -1), 126));
-
- out = (vec_float4)spu_add(spu_sel((vec_uint4)in, insert, mask), addend);
-
- return (spu_extract(out, 0));
-#endif /* FLOOR_INTEGER_RANGE */
-}
-#endif /* _FLOORF_H_ */
diff --git a/newlib/libm/machine/spu/headers/floorf4.h b/newlib/libm/machine/spu/headers/floorf4.h
deleted file mode 100644
index e816f0359..000000000
--- a/newlib/libm/machine/spu/headers/floorf4.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _FLOORF4_H_
-#define _FLOORF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-
-/*
- * FUNCTION
- * vector float _floorf4(vector float value)
- *
- * DESCRIPTION
- * The _floorf4 routine rounds a vector of input values "value" downwards
- * to their nearest integer returning the result as a vector of floats.
- *
- * The full range form (default) provides floor computation on
- * all IEEE floating point values. The floor of NANs remain NANs.
- * The floor of denorms results in zero.
- *
- */
-static __inline vector float _floorf4(vector float value)
-{
-
- /* FULL FLOATING-POINT RANGE
- */
- vec_int4 exp, shift;
- vec_uint4 mask, frac_mask, addend, insert, pos;
- vec_float4 out;
-
- /* This function generates the following component
- * based upon the inputs.
- *
- * mask = bits of the input that need to be replaced.
- * insert = value of the bits that need to be replaced
- * addend = value to be added to perform function.
- *
- * These are applied as follows:.
- *
- * out = ((in & mask) | insert) + addend
- */
- pos = spu_cmpgt((vec_int4)value, -1);
- exp = spu_and(spu_rlmask((vec_int4)value, -23), 0xFF);
-
- shift = spu_sub(127, exp);
-
- frac_mask = spu_and(spu_rlmask(spu_splats((unsigned int)0x7FFFFF), shift),
- spu_cmpgt((vec_int4)shift, -31));
-
- mask = spu_orc(frac_mask, spu_cmpgt(exp, 126));
-
- addend = spu_andc(spu_andc(spu_add(mask, 1), pos), spu_cmpeq(spu_and((vec_uint4)value, mask), 0));
-
- insert = spu_andc(spu_andc(spu_splats((unsigned int)0xBF800000), pos),
- spu_cmpgt((vec_uint4)spu_add(exp, -1), 126));
-
- out = (vec_float4)spu_add(spu_sel((vec_uint4)value, insert, mask), addend);
-
- /* Preserve orignal sign bit (for -0 case)
- */
- out = spu_sel(out, value, spu_splats((unsigned int)0x80000000));
-
- return (out);
-}
-#endif /* _FLOORF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/fma.h b/newlib/libm/machine/spu/headers/fma.h
deleted file mode 100644
index c3e910696..000000000
--- a/newlib/libm/machine/spu/headers/fma.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef _FMA_H_
-#define _FMA_H_ 1
-
-#include <spu_intrinsics.h>
-
-static __inline double _fma(double x, double y, double z)
-{
- vec_double2 vx, vy, vz, vout;;
-
- vx = spu_promote(x, 0);
- vy = spu_promote(y, 0);
- vz = spu_promote(z, 0);
- vout = spu_madd(vx, vy, vz);
- return (spu_extract(vout, 0));
-}
-#endif /* _FMA_H_ */
diff --git a/newlib/libm/machine/spu/headers/fmaf.h b/newlib/libm/machine/spu/headers/fmaf.h
deleted file mode 100644
index 7ae09e337..000000000
--- a/newlib/libm/machine/spu/headers/fmaf.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FMAF_H_
-#define _FMAF_H_ 1
-
-#include <spu_intrinsics.h>
-
-static __inline float _fmaf(float x, float y, float z)
-{
- return (spu_extract(spu_madd(spu_promote(x, 0), spu_promote(y, 0),
- spu_promote(z, 0)), 0));
-}
-#endif /* _FMAF_H_ */
diff --git a/newlib/libm/machine/spu/headers/fmax.h b/newlib/libm/machine/spu/headers/fmax.h
deleted file mode 100644
index f3e3358e6..000000000
--- a/newlib/libm/machine/spu/headers/fmax.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FMAX_H_
-#define _FMAX_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* Return the maximum numeric value of their arguments. If one argument
- * is a NaN, fmax returns the other value. If both are NaNs, then a NaN
- * is returned.
- *
- * Notes:
- * 1) Double precision denorms equate to zero so two denorms compare
- * equal thereby making the following true for two denorm inputs
- * fmax(a, b) != fmax(b, a);
- */
-static __inline double _fmax(double x, double y)
-{
- vec_uint4 nan_x, selector, abs_x, gt, eq;
- vec_uint4 sign = VEC_LITERAL(vec_uint4, 0x80000000, 0, 0x80000000, 0);
- vec_uint4 infinity = VEC_LITERAL(vec_uint4, 0x7FF00000, 0, 0x7FF00000, 0);
- vec_double2 vx, vy, diff, max;
-
- vx = spu_promote(x, 0);
- vy = spu_promote(y, 0);
-
- /* If x is a NaN, then select y as max
- */
- abs_x = spu_andc((vec_uint4)vx, sign);
- gt = spu_cmpgt(abs_x, infinity);
- eq = spu_cmpeq(abs_x, infinity);
-
- nan_x = spu_or(gt, spu_and(eq, spu_rlqwbyte(gt, 4)));
-
- diff = spu_sub(vx, vy);
- selector = spu_orc(nan_x, spu_cmpgt((vec_int4)diff, -1));
- selector = spu_maskw(spu_extract(selector, 0));
-
- max = spu_sel(vx, vy, (vec_ullong2)selector);
-
- return (spu_extract(max, 0));
-}
-
-#endif /* _FMAX_H_ */
diff --git a/newlib/libm/machine/spu/headers/fmaxf.h b/newlib/libm/machine/spu/headers/fmaxf.h
deleted file mode 100644
index e1c2352f2..000000000
--- a/newlib/libm/machine/spu/headers/fmaxf.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FMAXF_H_
-#define _FMAXF_H_ 1
-
-#include <spu_intrinsics.h>
-
-/* Return the maximum numeric value of their arguments.
- */
-static __inline float _fmaxf(float x, float y)
-{
- vec_float4 vx, vy;
-
- vx = spu_promote(x, 0);
- vy = spu_promote(y, 0);
- return (spu_extract(spu_sel(vx, vy, spu_cmpgt(vy, vx)), 0));
-}
-#endif /* _FMAXF_H_ */
diff --git a/newlib/libm/machine/spu/headers/fmin.h b/newlib/libm/machine/spu/headers/fmin.h
deleted file mode 100644
index 45db5191e..000000000
--- a/newlib/libm/machine/spu/headers/fmin.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FMIN_H_
-#define _FMIN_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* Return the minimum numeric value of their arguments. If one argument
- * is a NaN, fmin returns the other value. If both are NaNs, then a NaN
- * is returned.
- *
- * Notes:
- * 1) Double precision denorms equate to zero so two denorms compare
- * equal thereby making the following true for two denorm inputs
- * fmin(a, b) != fmin(b, a);
- */
-
-static __inline double _fmin(double x, double y)
-{
- vec_uint4 nan_x, selector, abs_x, gt, eq;
- vec_uint4 sign = VEC_LITERAL(vec_uint4, 0x80000000, 0, 0x80000000, 0);
- vec_uint4 infinity = VEC_LITERAL(vec_uint4, 0x7FF00000, 0, 0x7FF00000, 0);
- vec_double2 vx, vy, diff, min;
-
- vx = spu_promote(x, 0);
- vy = spu_promote(y, 0);
-
- /* If x is a NaN, then select y as min
- */
- abs_x = spu_andc((vec_uint4)vx, sign);
- gt = spu_cmpgt(abs_x, infinity);
- eq = spu_cmpeq(abs_x, infinity);
-
- nan_x = spu_or(gt, spu_and(eq, spu_rlqwbyte(gt, 4)));
-
- diff = spu_sub(vy, vx);
- selector = spu_orc(nan_x, spu_cmpgt((vec_int4)diff, -1));
- selector = spu_maskw(spu_extract(selector, 0));
-
- min = spu_sel(vx, vy, (vec_ullong2)selector);
-
- return (spu_extract(min, 0));
-}
-#endif /* _FMIN_H_ */
diff --git a/newlib/libm/machine/spu/headers/fminf.h b/newlib/libm/machine/spu/headers/fminf.h
deleted file mode 100644
index 56fa556af..000000000
--- a/newlib/libm/machine/spu/headers/fminf.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FMINF_H_
-#define _FMINF_H_ 1
-
-#include <spu_intrinsics.h>
-
-/* Return the minimum numeric value of their arguments.
- */
-static __inline float _fminf(float x, float y)
-{
- vec_float4 vx, vy;
-
- vx = spu_promote(x, 0);
- vy = spu_promote(y, 0);
- return (spu_extract(spu_sel(vx, vy, spu_cmpgt(vx, vy)), 0));
-}
-#endif /* _FMINF_H_ */
diff --git a/newlib/libm/machine/spu/headers/fmod.h b/newlib/libm/machine/spu/headers/fmod.h
deleted file mode 100644
index 0236da187..000000000
--- a/newlib/libm/machine/spu/headers/fmod.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FMOD_H_
-#define _FMOD_H_ 1
-
-#include <spu_intrinsics.h>
-#include <errno.h>
-#include "headers/vec_literal.h"
-
-/* This implementation returns zero if y is a denorm or zero.
- */
-static __inline double _fmod(double x, double y)
-{
- int n, shift;
- vec_uchar16 swap_words = VEC_LITERAL(vec_uchar16, 4,5,6,7, 0,1,2,3, 12,13,14,15, 8,9,10,11);
- vec_uchar16 propagate = VEC_LITERAL(vec_uchar16, 4,5,6,7, 192,192,192,192, 12,13,14,15, 192,192,192,192);
- vec_uchar16 splat_hi = VEC_LITERAL(vec_uchar16, 0,1,2,3,0,1,2,3, 8,9,10,11, 8,9,10,11);
- vec_uint4 vx, vy, z;
- vec_uint4 x_hi, y_hi;
- vec_uint4 abs_x, abs_y;
- vec_uint4 exp_x, exp_y;
- vec_uint4 zero_x, zero_y;
- vec_uint4 logb_x, logb_y;
- vec_uint4 mant_x, mant_y;
- vec_uint4 normal, norm, denorm;
- vec_uint4 result, result0, resultx, cnt, sign, borrow;
- vec_uint4 lsb = (vec_uint4)(VEC_SPLAT_U64(0x0000000000000001ULL));
- vec_uint4 sign_mask = (vec_uint4)(VEC_SPLAT_U64(0x8000000000000000ULL));
- vec_uint4 implied_1 = (vec_uint4)(VEC_SPLAT_U64(0x0010000000000000ULL));
- vec_uint4 mant_mask = (vec_uint4)(VEC_SPLAT_U64(0x000FFFFFFFFFFFFFULL));
- vec_ullong2 domain;
- vec_int4 verrno;
- vec_double2 vc = { 0.0, 0.0 };
- vec_int4 fail = { EDOM, EDOM, EDOM, EDOM };
-
- vx = (vec_uint4)spu_promote(x, 0);
- vy = (vec_uint4)spu_promote(y, 0);
-
- abs_x = spu_andc(vx, sign_mask);
- abs_y = spu_andc(vy, sign_mask);
-
- sign = spu_and(vx, sign_mask);
-
- x_hi = spu_shuffle(abs_x, abs_x, splat_hi);
- y_hi = spu_shuffle(abs_y, abs_y, splat_hi);
-
- /* Determine ilogb of abs_x and abs_y and
- * extract the mantissas (mant_x, mant_y)
- */
- exp_x = spu_rlmask(x_hi, -20);
- exp_y = spu_rlmask(y_hi, -20);
-
- resultx = spu_cmpgt(y_hi, x_hi);
-
- zero_x = spu_cmpeq(exp_x, 0);
- zero_y = spu_cmpeq(exp_y, 0);
-
- logb_x = spu_add(exp_x, -1023);
- logb_y = spu_add(exp_y, -1023);
-
- mant_x = spu_andc(spu_sel(implied_1, abs_x, mant_mask), zero_x);
- mant_y = spu_andc(spu_sel(implied_1, abs_y, mant_mask), zero_y);
-
- /* Compute fixed point fmod of mant_x and mant_y. Set the flag,
- * result0, to all ones if we detect that the final result is
- * ever 0.
- */
- result0 = spu_or(zero_x, zero_y);
-
- n = spu_extract(spu_sub(logb_x, logb_y), 0);
-
- while (n-- > 0) {
- borrow = spu_genb(mant_x, mant_y);
- borrow = spu_shuffle(borrow, borrow, propagate);
- z = spu_subx(mant_x, mant_y, borrow);
-
- result0 = spu_or(spu_cmpeq(spu_or(z, spu_shuffle(z, z, swap_words)), 0), result0);
-
- mant_x = spu_sel(spu_slqw(mant_x, 1), spu_andc(spu_slqw(z, 1), lsb),
- spu_cmpgt((vec_int4)spu_shuffle(z, z, splat_hi), -1));
- }
-
- borrow = spu_genb(mant_x, mant_y);
- borrow = spu_shuffle(borrow, borrow, propagate);
- z = spu_subx(mant_x, mant_y, borrow);
-
- mant_x = spu_sel(mant_x, z,
- spu_cmpgt((vec_int4)spu_shuffle(z, z, splat_hi), -1));
- mant_x = spu_andc(mant_x, VEC_LITERAL(vec_uint4, 0,0,-1,-1));
-
- result0 = spu_or(spu_cmpeq(spu_or(mant_x, spu_shuffle(mant_x, mant_x, swap_words)), 0), result0);
-
- /* Convert the result back to floating point and restore
- * the sign. If we flagged the result to be zero (result0),
- * zero it. If we flagged the result to equal its input x,
- * (resultx) then return x.
- *
- * Double precision generates a denorm for an output.
- */
- cnt = spu_cntlz(mant_x);
- cnt = spu_add(cnt, spu_and(spu_rlqwbyte(cnt, 4), spu_cmpeq(cnt, 32)));
- cnt = spu_add(spu_shuffle(cnt, cnt, splat_hi), -11);
-
- shift = spu_extract(exp_y, 0) - 1;
- denorm = spu_slqwbytebc(spu_slqw(mant_x, shift), shift);
-
- exp_y = spu_sub(exp_y, cnt);
-
- normal = spu_cmpgt((vec_int4)exp_y, 0);
-
- /* Normalize normal results, denormalize denorm results.
- */
- shift = spu_extract(cnt, 0);
- norm = spu_slqwbytebc(spu_slqw(spu_andc(mant_x, VEC_LITERAL(vec_uint4, 0x00100000, 0, -1, -1)), shift), shift);
-
- mant_x = spu_sel(denorm, norm, normal);
-
- exp_y = spu_and(spu_rl(exp_y, 20), normal);
-
- result = spu_sel(exp_y, spu_or(sign, mant_x), VEC_LITERAL(vec_uint4, 0x800FFFFF, -1, 0x800FFFFF, -1));
-
- result = spu_sel(spu_andc(result, spu_rlmask(result0, -1)), vx,
- resultx);
-
-#ifndef _IEEE_LIBM
- /*
- * If y is zero, set errno to EDOM
- */
- domain = spu_cmpeq(vc, (vec_double2) vy);
- verrno = spu_splats(errno);
- errno = spu_extract(spu_sel(verrno, fail, (vector unsigned int) domain), 0);
-#endif
-
- return (spu_extract((vec_double2)result, 0));
-}
-#endif /* _FMOD_H_ */
diff --git a/newlib/libm/machine/spu/headers/fmodf.h b/newlib/libm/machine/spu/headers/fmodf.h
deleted file mode 100644
index a62141f97..000000000
--- a/newlib/libm/machine/spu/headers/fmodf.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FMODF_H_
-#define _FMODF_H_ 1
-
-#include <errno.h>
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-#include "fabsf.h"
-
-/*
- * FUNCTION
- * float _fmodf(float x, float y)
- *
- * DESCRIPTION
- * The _fmodf subroutine computes the remainder of
- * dividing x by y. The return value is x - n*y, where n is
- * the quotient of x/y, rounded towards zero.
- *
- * The full range form (default) provides fmod computation on
- * all IEEE floating point values (excluding floating overflow
- * or underflow).
- *
- * The limited range form (selected by defining FMODF_INTEGER_RANGE)
- * compute fmod of all floating-point x/y values in the 32-bit
- * signed integer range. Values outside this range get clamped.
- */
-
-static __inline float _fmodf(float x, float y)
-{
-#ifdef FMODF_INTEGER_RANGE
- /* 32-BIT INTEGER DYNAMIC RANGE
- */
- float abs_y;
- float quotient;
-
- abs_y = _fabsf(y);
- quotient = x/abs_y;
-
- return (abs_y*(quotient - ((float)((int)quotient))));
-
-#else /* !FMODF_INTEGER_RANGE */
- /* FULL FLOATING-POINT RANGE
- */
- int n;
- vec_uint4 vx, vy, z;
- vec_uint4 abs_x, abs_y;
- vec_uint4 exp_x, exp_y;
- vec_uint4 zero_x, zero_y;
- vec_uint4 logb_x, logb_y;
- vec_uint4 mant_x, mant_y;
- vec_uint4 result, result0, resultx, cnt, sign;
- vec_uint4 sign_mask = VEC_SPLAT_U32(0x80000000);
- vec_uint4 implied_1 = VEC_SPLAT_U32(0x00800000);
- vec_uint4 mant_mask = VEC_SPLAT_U32(0x007FFFFF);
- vec_uint4 domain;
- vec_int4 verrno;
- vec_float4 vc = { 0.0, 0.0, 0.0, 0.0 };
- vec_int4 fail = { EDOM, EDOM, EDOM, EDOM };
-
- vx = (vec_uint4)spu_promote(x, 0);
- vy = (vec_uint4)spu_promote(y, 0);
-
- abs_x = spu_andc(vx, sign_mask);
- abs_y = spu_andc(vy, sign_mask);
-
- sign = spu_and(vx, sign_mask);
-
- /* Determine ilogb of abs_x and abs_y and
- * extract the mantissas (mant_x, mant_y)
- */
- exp_x = spu_rlmask(abs_x, -23);
- exp_y = spu_rlmask(abs_y, -23);
-
- resultx = spu_cmpgt(abs_y, abs_x);
-
- zero_x = spu_cmpeq(exp_x, 0);
- zero_y = spu_cmpeq(exp_y, 0);
-
- logb_x = spu_add(exp_x, -127);
- logb_y = spu_add(exp_y, -127);
-
- mant_x = spu_andc(spu_sel(implied_1, abs_x, mant_mask), zero_x);
- mant_y = spu_andc(spu_sel(implied_1, abs_y, mant_mask), zero_y);
-
- /* Compute fixed point fmod of mant_x and mant_y. Set the flag,
- * result0, to all ones if we detect that the final result is
- * ever 0.
- */
- result0 = spu_or(zero_x, zero_y);
-
- n = spu_extract(spu_sub(logb_x, logb_y), 0);
-
- while (n-- > 0) {
- z = spu_sub(mant_x, mant_y);
-
- result0 = spu_or(spu_cmpeq(z, 0), result0);
-
- mant_x = spu_sel(spu_add(mant_x, mant_x), spu_add(z, z),
- spu_cmpgt((vec_int4)z, -1));
- }
-
- z = spu_sub(mant_x, mant_y);
- mant_x = spu_sel(mant_x, z, spu_cmpgt((vec_int4)z, -1));
-
- result0 = spu_or(spu_cmpeq(mant_x, 0), result0);
-
- /* Convert the result back to floating point and restore
- * the sign. If we flagged the result to be zero (result0),
- * zero it. If we flagged the result to equal its input x,
- * (resultx) then return x.
- */
- cnt = spu_add(spu_cntlz(mant_x), -8);
-
- mant_x = spu_rl(spu_andc(mant_x, implied_1), (vec_int4)cnt);
-
- exp_y = spu_sub(exp_y, cnt);
- result0 = spu_orc(result0, spu_cmpgt((vec_int4)exp_y, 0)); /* zero denorm results */
- exp_y = spu_rl(exp_y, 23);
-
-
- result = spu_sel(exp_y, spu_or(sign, mant_x), VEC_SPLAT_U32(0x807FFFFF));
-
- result = spu_sel(spu_andc(result, spu_rlmask(result0, -1)), vx,
- resultx);
-
-#ifndef _IEEE_LIBM
- /*
- * If y is zero, set errno to EDOM
- */
- domain = spu_cmpeq(vc, (vec_float4) vy);
- verrno = spu_splats(errno);
- errno = spu_extract(spu_sel(verrno, fail, (vector unsigned int) domain), 0);
-#endif
-
- return (spu_extract((vec_float4)result, 0));
-#endif /* FMODF_INTEGER_RANGE */
-}
-#endif /* _FMODF_H_ */
diff --git a/newlib/libm/machine/spu/headers/frexp.h b/newlib/libm/machine/spu/headers/frexp.h
deleted file mode 100644
index 8b525c76e..000000000
--- a/newlib/libm/machine/spu/headers/frexp.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FREXP_H_
-#define _FREXP_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* Return the normalized fraction and exponent to the number x.
- * Double precision denorms treated as zero and return a 0
- * fraction and 0 exponent. The results are undefined for infinities
- * and NaNs (double precision only).
- */
-static __inline double _frexp(double x, int *pexp)
-{
- vec_int4 exp;
- vec_uint4 denorm, mask;
- vec_double2 in, mant;
- vec_double2 half = VEC_SPLAT_F64(0.5);
- vec_ullong2 exp_mask = VEC_SPLAT_U64(0x7FF0000000000000ULL);
-
- in = spu_promote(x, 0);
-
- /* Normalize the mantissa (fraction part).
- */
- mant = spu_sel(in, half, exp_mask);
-
- /* Zero the mantissa if the input is a denorm or zero
- */
- exp = spu_and(spu_rlmask((vec_int4)in, -20), 0x7FF);
- denorm = spu_cmpeq(exp, 0);
- mask = spu_shuffle(denorm, denorm, VEC_SPLAT_U8(0));
- mant = spu_andc(mant, (vec_double2)mask);
-
- /* Zero exponent if zero or denorm input. Otherwise, compute
- * exponent by removing the bias.
- */
- exp = spu_andc(spu_add(exp, -1022), (vec_int4)mask);
-
- *pexp = spu_extract(exp, 0);
-
- return (spu_extract(mant, 0));
-}
-#endif /* _FREXPF_H_ */
diff --git a/newlib/libm/machine/spu/headers/frexpf.h b/newlib/libm/machine/spu/headers/frexpf.h
deleted file mode 100644
index 5de31da98..000000000
--- a/newlib/libm/machine/spu/headers/frexpf.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _FREXPF_H_
-#define _FREXPF_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* Return the normalized fraction and exponent to the number x.
- */
-static __inline float _frexpf(float x, int *pexp)
-{
- vec_int4 exp;
- vec_uint4 mask;
- vec_uint4 exp_mask = VEC_SPLAT_U32(0x7F800000);
- vec_float4 half = VEC_SPLAT_F32(0.5f);
- vec_float4 in, mant;
-
- in = spu_promote(x, 0);
-
- /* Normalize the mantissa (fraction part).
- */
- mant = spu_sel(in, half, exp_mask);
-
- /* Zero the mantissa if the input is a denorm or zero
- */
- exp = spu_and(spu_rlmask((vec_int4)in, -23), 0xFF);
- mask = spu_cmpeq(exp, 0);
- mant = spu_andc(mant, (vec_float4)mask);
-
- /* Zero exponent if zero or denorm input. Otherwise, compute
- * exponent by removing the bias.
- */
- exp = spu_andc(spu_add(exp, -126), (vec_int4)mask);
- *pexp = spu_extract(exp, 0);
-
- return (spu_extract(mant, 0));
-}
-#endif /* _FREXPF_H_ */
diff --git a/newlib/libm/machine/spu/headers/hypot.h b/newlib/libm/machine/spu/headers/hypot.h
deleted file mode 100644
index e0fafb38c..000000000
--- a/newlib/libm/machine/spu/headers/hypot.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/hypotd2.h"
-
-static __inline double _hypot(double x, double y)
-{
- return spu_extract(_hypotd2(spu_promote(x, 0), spu_promote(y, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/hypotd2.h b/newlib/libm/machine/spu/headers/hypotd2.h
deleted file mode 100644
index c0f3f747e..000000000
--- a/newlib/libm/machine/spu/headers/hypotd2.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2006,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _HYPOTD2_H_
-#define _HYPOTD2_H_ 1
-
-#include <spu_intrinsics.h>
-#include "sqrtd2.h"
-
-/*
- * FUNCTION
- * vector double hypotd2(vector double x, vector double y)
- *
- * DESCRIPTION
- * The function hypotd2 returns a double vector in which each element is
- * the square root of the sum of the squares of the corresponding
- * elements of x and y.
- *
- * The purpose of this function is to avoid overflow during
- * intermediate calculations, and therefore it is slower than
- * simply calcualting sqrt(x^2 + y^2).
- *
- * This function is performed by factoring out the larger of the 2
- * input exponents and moving this factor outside of the sqrt calculation.
- * This will minimize the possibility of over/underflow when the square
- * of the values are calculated. Think of it as normalizing the larger
- * input to the range [1,2).
- *
- * Special Cases:
- * - hypot(x, +/-0) returns |x|
- * - hypot(+/- infinity, y) returns +infinity
- * - hypot(+/- infinity, NaN) returns +infinity
- *
- */
-static __inline vector double _hypotd2(vector double x, vector double y)
-{
- vector unsigned long long emask = spu_splats(0x7FF0000000000000ull);
- vector unsigned long long mmask = spu_splats(0x000FFFFFFFFFFFFFull);
- vector signed long long bias = spu_splats(0x3FF0000000000000ll);
- vector double oned = spu_splats(1.0);
- vector double sbit = spu_splats(-0.0);
- vector double inf = (vector double)spu_splats(0x7FF0000000000000ull);
- vector double max, max_e, max_m;
- vector double min, min_e, min_m;
- vector unsigned long long xgty;
- vector double sum;
- vector double result;
-
- /* Only need absolute values for this function */
- x = spu_andc(x, sbit);
- y = spu_andc(y, sbit);
- xgty = spu_cmpgt(x,y);
-
- max = spu_sel(y,x,xgty);
- min = spu_sel(x,y,xgty);
-
- /* Extract the exponents and mantissas */
- max_e = (vec_double2)spu_and((vec_ullong2)max, emask);
- max_m = (vec_double2)spu_and((vec_ullong2)max, mmask);
- min_e = (vec_double2)spu_and((vec_ullong2)min, emask);
- min_m = (vec_double2)spu_and((vec_ullong2)min, mmask);
-
- /* Factor-out max exponent here by subtracting from min exponent */
- vec_llong2 min_e_int = (vec_llong2)spu_sub((vec_int4)min_e, (vec_int4)max_e);
- min_e = (vec_double2)spu_add((vec_int4)min_e_int, (vec_int4)bias);
-
- /* If the new min exponent is too small, just set it to 0. It
- * wouldn't contribute to the final result in either case.
- */
- min_e = spu_sel(min_e, sbit, spu_cmpgt(sbit, min_e));
-
- /* Combine new exponents with original mantissas */
- max = spu_or(oned, max_m);
- min = spu_or(min_e, min_m);
-
- sum = _sqrtd2(spu_madd(max, max, spu_mul(min, min)));
- sum = spu_mul(max_e, sum);
-
- /* Special case: x = +/- infinity */
- result = spu_sel(sum, inf, spu_cmpeq(x, inf));
-
- return result;
-}
-
-#endif /* _HYPOTD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/hypotf.h b/newlib/libm/machine/spu/headers/hypotf.h
deleted file mode 100644
index 373b9d005..000000000
--- a/newlib/libm/machine/spu/headers/hypotf.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/hypotf4.h"
-
-static __inline float _hypotf(float x, float y)
-{
- return spu_extract(_hypotf4(spu_promote(x, 0), spu_promote(y, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/hypotf4.h b/newlib/libm/machine/spu/headers/hypotf4.h
deleted file mode 100644
index bc46b8ba0..000000000
--- a/newlib/libm/machine/spu/headers/hypotf4.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _HYPOTF4_H_
-#define _HYPOTF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "sqrtf4.h"
-
-/*
- * FUNCTION
- * vector float _hypotf4(vector float x, vector float y)
- *
- * DESCRIPTION
- * The function hypotf4 returns a float vector in which each element is
- * the square root of the sum of the squares of the corresponding
- * elements of x and y. In other words, each element is sqrt(x^2 + y^2).
- *
- * The purpose of this function is to avoid overflow during
- * intermediate calculations, and therefore it is slower than
- * simply calcualting sqrt(x^2 + y^2).
- *
- * This function is performed by factoring out the larger of the 2
- * input exponents and moving this factor outside of the sqrt calculation.
- * This will minimize the possibility of over/underflow when the square
- * of the values are calculated. Think of it as normalizing the larger
- * input to the range [1,2).
- *
- *
- * Special Cases:
- * - hypot(x, +/-0) returns |x|
- * - hypot(+/- infinity, y) returns +infinity
- * - hypot(+/- infinity, NaN) returns +infinity
- *
- */
-
-
-static __inline vector float _hypotf4(vector float x, vector float y)
-{
- vector unsigned int emask = spu_splats(0x7F800000u);
- vector unsigned int mmask = spu_splats(0x007FFFFFu);
- vector signed int bias = spu_splats(0x3F800000);
- vector float inf = (vec_float4)spu_splats(0x7F800000);
- vector float onef = spu_splats(1.0f);
- vector float sbit = spu_splats(-0.0f);
- vector float max, max_e, max_m;
- vector float min, min_e, min_m;
- vector unsigned int xgty;
- vector float sum;
- vector float result;
-
- /* Only need absolute values for this function */
- x = spu_andc(x, sbit);
- y = spu_andc(y, sbit);
- xgty = spu_cmpgt(x,y);
-
- max = spu_sel(y,x,xgty);
- min = spu_sel(x,y,xgty);
-
- /* Extract exponents and mantissas */
- max_e = (vec_float4)spu_and((vec_uint4)max, emask);
- max_m = (vec_float4)spu_and((vec_uint4)max, mmask);
- min_e = (vec_float4)spu_and((vec_uint4)min, emask);
- min_m = (vec_float4)spu_and((vec_uint4)min, mmask);
-
- /* Adjust the exponent of the smaller of the 2 input values by
- * subtracting max_exp from min_exp.
- */
- vec_int4 min_e_int = spu_sub((vec_int4)min_e, (vec_int4)max_e);
- min_e = (vec_float4)spu_add(min_e_int, bias);
-
- /* If the new min exponent is too small, just set it to 0. It
- * wouldn't contribute to the final result in either case.
- */
- min_e = spu_sel(min_e, sbit, spu_cmpgt(sbit, min_e));
-
- /* Combine new exponents with original mantissas */
- max = spu_or(onef, max_m);
- min = spu_or(min_e, min_m);
-
- sum = _sqrtf4(spu_madd(max, max, spu_mul(min, min)));
- sum = spu_mul(max_e, sum);
-
- /* Special case: x = +/- infinity */
- result = spu_sel(sum, inf, spu_cmpeq(x, inf));
-
- return result;
-}
-
-#endif /* _HYPOTF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/ilogb.h b/newlib/libm/machine/spu/headers/ilogb.h
deleted file mode 100644
index c0699a19a..000000000
--- a/newlib/libm/machine/spu/headers/ilogb.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _ILOGB_H_
-#define _ILOGB_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-#include <limits.h>
-#include <math.h>
-
-/* ilogb returns the signed exponent in the floating-point
- * input. Special numbers include:
- * Input Output
- * ===== =====================
- * INF FP_ILOGBNAN (INT_MAX)
- * NAN FP_ILOGBNAN (INT_MAX)
- * denorm exponent - leading zeros
- * 0 FP_ILOGB0 (INT_MIN)
- * else signed exponent
- */
-
-static __inline int _ilogb(double x)
-{
- vec_uint4 v, exp, exp_0, mant, mask, count;
- vec_uint4 flg_exp_0, flg_exp_max;
-
- mask = VEC_SPLAT_U32(0x7FF);
-
- /* Extract the exponent and mantissa.
- */
- v = (vec_uint4)spu_promote(x, 0);
-
- exp = spu_and(spu_rlmask(v, -20), mask);
-
- mant = spu_and(v, VEC_LITERAL(vec_uint4, 0x000FFFFF, 0xFFFFFFFF, 0, 0));
-
- /* Count the leading zeros in the mantissa for denorm handling
- * and zero identification.
- */
- count = spu_cntlz(mant);
- count = spu_add(count, spu_and(spu_rlqwbyte(count, 4), spu_cmpeq(count, 32)));
-
- flg_exp_0 = spu_cmpeq(exp, 0);
- flg_exp_max = spu_cmpeq(exp, mask);
-
- exp = spu_add(exp, -1023);
-
- /* Determine the exponent if the input is a denorm or zero.
- */
- exp_0 = spu_sel(spu_sub(spu_add(exp, 12), count), VEC_SPLAT_U32(FP_ILOGB0), spu_cmpeq(count, 64));
-
- exp = spu_sel(spu_sel(exp, VEC_SPLAT_U32(FP_ILOGBNAN), flg_exp_max), exp_0, flg_exp_0);
-
- return (spu_extract((vec_int4)(exp), 0));
-}
-#endif /* _ILOGB_H_ */
diff --git a/newlib/libm/machine/spu/headers/ilogbf.h b/newlib/libm/machine/spu/headers/ilogbf.h
deleted file mode 100644
index 5c591f04f..000000000
--- a/newlib/libm/machine/spu/headers/ilogbf.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _ILOGBF_H_
-#define _ILOGBF_H_ 1
-
-#include <spu_intrinsics.h>
-#include <limits.h>
-#include <math.h>
-#include "headers/vec_literal.h"
-
-/* Single precision floats do not support infinities and NANs, and
- * denorms are treated as zero.
- */
-static __inline int _ilogbf(float x)
-{
- vec_uint4 v, exp;
-
- v = (vec_uint4)spu_promote(x, 0);
- exp = spu_and(spu_rlmask(v, -23), 0xFF);
- exp = spu_sel(spu_add(exp, -127), VEC_SPLAT_U32(FP_ILOGB0), spu_cmpeq(exp, 0));
- return (spu_extract((vec_int4)(exp), 0));
-}
-#endif /* _ILOGBF_H_ */
diff --git a/newlib/libm/machine/spu/headers/isnan.h b/newlib/libm/machine/spu/headers/isnan.h
deleted file mode 100644
index ada7e6e8d..000000000
--- a/newlib/libm/machine/spu/headers/isnan.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/isnand2.h"
-
-static __inline int _isnan(double x)
-{
- return spu_extract(_isnand2(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/isnand2.h b/newlib/libm/machine/spu/headers/isnand2.h
deleted file mode 100644
index 2d05e80c6..000000000
--- a/newlib/libm/machine/spu/headers/isnand2.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2006,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _ISNAND2_H_
-#define _ISNAND2_H_ 1
-
-#include <spu_intrinsics.h>
-
-/*
- * FUNCTION
- * vector unsigned long long _isnand2(vector double x)
- *
- * DESCRIPTION
- * The _isnand2 function returns a vector in which each element indicates
- * if the corresponding element of x is not a number. (NaN)
- *
- * RETURNS
- * The function _isnand2 returns an unsigned long long vector in which
- * each element is defined as:
- *
- * - ULLONG_MAX if the element of x is NaN
- * - 0 otherwise
- *
- */
-static __inline vector unsigned long long _isnand2(vector double x)
-{
-
-#ifndef __SPU_EDP__
-
- vec_uint4 sign_mask = (vec_uint4) { 0x7FFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF, 0xFFFFFFFF };
- vec_uint4 test_mask = (vec_uint4) { 0x7FF00000, 0x00000000, 0x7FF00000, 0x00000000 };
- vec_uchar16 hi_promote = (vec_uchar16) { 0, 1, 2, 3, 0, 1, 2, 3, 8, 9, 10, 11, 8, 9, 10, 11 };
-
- // Remove the sign bits
- vec_uint4 signless = spu_and((vec_uint4)x,sign_mask);
-
- // Check if the high word is equal to the max_exp
- vec_uint4 x2 = spu_cmpeq(signless,test_mask);
-
- // This checks two things:
- // 1) If the high word is greater than max_exp (indicates a NaN)
- // 2) If the low word is non-zero (indicates a NaN in conjunction with an
- // exp equal to max_exp)
- vec_uint4 x1 = spu_cmpgt(signless,test_mask);
-
- // rotate the low word test of x1 into the high word slot, then and it
- // with the high word of x2 (checking for #2 above)
- vec_uint4 exp_and_lw = spu_and(spu_rlqwbyte(x1,4),x2);
-
- // All the goodies are in the high words, so if the high word of either x1
- // or exp_and_lw is set, then we have a NaN, so we "or" them together
- vec_uint4 result = spu_or(x1,exp_and_lw);
-
- // And then promote the resulting high word to 64 bit length
- result = spu_shuffle(result,result,hi_promote);
-
- return (vec_ullong2) result;
-
-#else
-
- return spu_testsv(x, SPU_SV_NAN);
-
-#endif /* __SPU_EDP__ */
-}
-
-#endif // _ISNAND2_H_
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/isnanf.h b/newlib/libm/machine/spu/headers/isnanf.h
deleted file mode 100644
index 61b1703c9..000000000
--- a/newlib/libm/machine/spu/headers/isnanf.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/isnanf4.h"
-
-static __inline unsigned int _isnanf(float x)
-{
- return spu_extract(_isnanf4(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/isnanf4.h b/newlib/libm/machine/spu/headers/isnanf4.h
deleted file mode 100644
index d877a6523..000000000
--- a/newlib/libm/machine/spu/headers/isnanf4.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2006,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _ISNANF4_H_
-#define _ISNANF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-/*
- * FUNCTION
- * vector unsigned int _isnanf4(vector float x)
- *
- * DESCRIPTION
- * The _isnanf4 function returns a vector in which each element indicates
- * if the corresponding element of x is NaN.
- *
- * On the SPU, this function always returns 0, since NaNs are not
- * supported.
- *
- * RETURNS
- * UINT_MAX (0xFFFFFFFF) if the element of x is a NaN
- * 0 (0x00000000) otherwise (always on the SPU)
- *
- */
-static __inline vector unsigned int _isnanf4(vector float __attribute__((__unused__))x)
-{
- return spu_splats((unsigned int)0);
-}
-
-#endif // _ISNANF4_H_
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/ldexp.h b/newlib/libm/machine/spu/headers/ldexp.h
deleted file mode 100644
index 811059c1d..000000000
--- a/newlib/libm/machine/spu/headers/ldexp.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _LDEXP_H_
-#define _LDEXP_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* ldexp computes x * 2^exp. This function variant computes the result
- * and handles overflow, underflow, and denorms by breaking the problem
- * into:
- * exp = MAX(exp, -2044)
- * exp = MIN(exp, 2046)
- * e1 = exp / 2
- * e2 = exp - e1;
- * x * 2^e1 * 2^e2
- */
-static __inline double _ldexp(double x, int exp)
-{
- vec_int4 e, e1, e2;
- vec_int4 min = VEC_SPLAT_S32(-2044);
- vec_int4 max = VEC_SPLAT_S32(2046);
- vec_uint4 cmp_min, cmp_max;
- vec_uint4 shift = VEC_LITERAL(vec_uint4, 20, 32, 20, 32);
- vec_double2 f1, f2;
- vec_double2 in, out;
-
- in = spu_promote(x, 0);
- e = spu_promote(exp, 0);
-
- /* Clamp the specified exponent to the range -2044 to 2046.
- */
- cmp_min = spu_cmpgt(e, min);
- cmp_max = spu_cmpgt(e, max);
- e = spu_sel(min, e, cmp_min);
- e = spu_sel(e, max, cmp_max);
-
- /* Generate the factors f1 = 2^e1 and f2 = 2^e2
- */
- e1 = spu_rlmaska(e, -1);
- e2 = spu_sub(e, e1);
-
- f1 = (vec_double2)spu_sl(spu_add(e1, 1023), shift);
- f2 = (vec_double2)spu_sl(spu_add(e2, 1023), shift);
-
- /* Compute the product x * 2^e1 * 2^e2
- */
- out = spu_mul(spu_mul(in, f1), f2);
-
- return (spu_extract(out, 0));
-}
-
-#endif /* _LDEXP_H_ */
diff --git a/newlib/libm/machine/spu/headers/ldexpd2.h b/newlib/libm/machine/spu/headers/ldexpd2.h
deleted file mode 100644
index 145e4371e..000000000
--- a/newlib/libm/machine/spu/headers/ldexpd2.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _LDEXPD2_H_
-#define _LDEXPD2_H_ 1
-
-#include <spu_intrinsics.h>
-
-/*
- * FUNCTION
- * vector double _ldexpd2(vector double x, vector signed long long exp)
- *
- * DESCRIPTION
- * The _ldexpd2 function Computes x * 2^exp for each of the two elements
- * of x using the corresponding elements of exp.
- *
- */
-static __inline vector double _ldexpd2(vector double x, vector signed long long llexp)
-{
- vec_uchar16 odd_to_even = ((vec_uchar16) { 4,5,6,7, 0x80,0x80,0x80,0x80,
- 12,13,14,15, 0x80,0x80,0x80,0x80 });
- vec_int4 exp;
- vec_int4 e1, e2;
- vec_int4 min = spu_splats(-2044);
- vec_int4 max = spu_splats(2046);
- vec_uint4 cmp_min, cmp_max;
- vec_uint4 shift = (vec_uint4) { 20, 32, 20, 32 };
- vec_double2 f1, f2;
- vec_double2 out;
-
- exp = (vec_int4)spu_shuffle(llexp, llexp, odd_to_even);
-
- /* Clamp the specified exponent to the range -2044 to 2046.
- */
-
- cmp_min = spu_cmpgt(exp, min);
- cmp_max = spu_cmpgt(exp, max);
- exp = spu_sel(min, exp, cmp_min);
- exp = spu_sel(exp, max, cmp_max);
-
- /* Generate the factors f1 = 2^e1 and f2 = 2^e2
- */
- e1 = spu_rlmaska(exp, -1);
- e2 = spu_sub(exp, e1);
-
- f1 = (vec_double2)spu_sl(spu_add(e1, 1023), shift);
- f2 = (vec_double2)spu_sl(spu_add(e2, 1023), shift);
-
- /* Compute the product x * 2^e1 * 2^e2
- */
- out = spu_mul(spu_mul(x, f1), f2);
-
- return (out);
-}
-
-#endif /* _LDEXPD2_H_ */
-#endif /* __SPU__ */
-
diff --git a/newlib/libm/machine/spu/headers/ldexpf.h b/newlib/libm/machine/spu/headers/ldexpf.h
deleted file mode 100644
index f04f85345..000000000
--- a/newlib/libm/machine/spu/headers/ldexpf.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _LDEXPF_H_
-#define _LDEXPF_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* ldexpf computes x * 2^exp. This function is computed without
- * the assistence of any floating point operations and as such does
- * not set any floating point exceptions.
- */
-static __inline float _ldexpf(float x, int exp)
-{
- vec_int4 x_exp;
- vec_uint4 zero, overflow;
- vec_uint4 exp_mask = VEC_SPLAT_U32(0x7F800000);
- vec_float4 in, out;
-
- in = spu_promote(x, 0);
-
- /* Extract exponent from x. If the exponent is 0, then
- * x is either 0 or a denorm and x*2^exp is a zero.
- */
- x_exp = spu_and(spu_rlmask((vec_int4)in, -23), 0xFF);
-
- zero = spu_cmpeq(x_exp, 0);
-
- /* Compute the expected exponent and determine if the
- * result is within range.
- */
- x_exp = spu_add(spu_promote(exp, 0), x_exp);
-
- zero = spu_orc(zero, spu_cmpgt(x_exp, 0));
-
- overflow = spu_rlmask(spu_cmpgt(x_exp, 255), -1);
-
- /* Merge the expect exponent with x's mantissa. Zero the
- * result if underflow and force to max if overflow.
- */
- out = spu_sel(in, (vec_float4)spu_rl(x_exp, 23), exp_mask);
- out = spu_andc(out, (vec_float4)zero);
- out = spu_or(out, (vec_float4)overflow);
-
- return (spu_extract(out, 0));
-}
-#endif /* _LDEXPF_H_ */
diff --git a/newlib/libm/machine/spu/headers/ldexpf4.h b/newlib/libm/machine/spu/headers/ldexpf4.h
deleted file mode 100644
index 9933e5431..000000000
--- a/newlib/libm/machine/spu/headers/ldexpf4.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _LDEXPF4_H_
-#define _LDEXPF4_H_ 1
-
-#include <spu_intrinsics.h>
-#include "scalbnf4.h"
-
-/*
- * FUNCTION
- * vector float _ldexpf4(vector float x, vector signed int exp)
- *
- * DESCRIPTION
- * The _ldexpf4 function returns a vector containing each element of x
- * multiplied by 2^exp computed efficiently. This function is computed
- * without the assistance of any floating point operations and as such
- * does not set any floating point exceptions.
- *
- * RETURNS
- * - if the exponent of x is 0, then x is either 0 or a subnormal,
- * and the result will be returned as 0.
- * - if the result if underflows, it will be returned as 0.
- * - if the result overflows, it will be returned as FLT_MAX.
- *
- */
-static __inline vector float _ldexpf4(vector float x, vector signed int exp)
-{
- return _scalbnf4(x, exp);
-}
-
-#endif /* _LDEXPF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/lgamma.h b/newlib/libm/machine/spu/headers/lgamma.h
deleted file mode 100644
index 513e3ebed..000000000
--- a/newlib/libm/machine/spu/headers/lgamma.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/lgammad2.h"
-
-static __inline double _lgamma(double x)
-{
- return spu_extract(_lgammad2(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/lgammad2.h b/newlib/libm/machine/spu/headers/lgammad2.h
deleted file mode 100644
index 2e8a31a98..000000000
--- a/newlib/libm/machine/spu/headers/lgammad2.h
+++ /dev/null
@@ -1,318 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _LGAMMAD2_H_
-#define _LGAMMAD2_H_ 1
-
-#include <spu_intrinsics.h>
-#include "divd2.h"
-#include "recipd2.h"
-#include "logd2.h"
-#include "sind2.h"
-#include "truncd2.h"
-
-
-/*
- * FUNCTION
- * vector double _lgammad2(vector double x) - Natural Log of Gamma Function
- *
- * DESCRIPTION
- * _lgammad2 calculates the natural logarithm of the absolute value of the gamma
- * function for the corresponding elements of the input vector.
- *
- * C99 Special Cases:
- * lgamma(0) returns +infinite
- * lgamma(1) returns +0
- * lgamma(2) returns +0
- * lgamma(negative integer) returns +infinite
- * lgamma(+infinite) returns +infinite
- * lgamma(-infinite) returns +infinite
- *
- * Other Cases:
- * lgamma(Nan) returns Nan
- * lgamma(Denorm) treated as lgamma(0) and returns +infinite
- *
- */
-
-#define PI 3.1415926535897932384626433832795028841971693993751058209749445923078164
-#define HALFLOG2PI 9.1893853320467274178032973640561763986139747363778341281715154048276570E-1
-
-#define EULER_MASCHERONI 0.5772156649015328606065
-
-/*
- * Zeta constants for Maclaurin approx. near zero
- */
-#define ZETA_02_DIV_02 8.2246703342411321823620758332301E-1
-#define ZETA_03_DIV_03 -4.0068563438653142846657938717048E-1
-#define ZETA_04_DIV_04 2.7058080842778454787900092413529E-1
-#define ZETA_05_DIV_05 -2.0738555102867398526627309729141E-1
-#define ZETA_06_DIV_06 1.6955717699740818995241965496515E-1
-
-/*
- * More Maclaurin coefficients
- */
-/*
-#define ZETA_07_DIV_07 -1.4404989676884611811997107854997E-1
-#define ZETA_08_DIV_08 1.2550966952474304242233565481358E-1
-#define ZETA_09_DIV_09 -1.1133426586956469049087252991471E-1
-#define ZETA_10_DIV_10 1.0009945751278180853371459589003E-1
-#define ZETA_11_DIV_11 -9.0954017145829042232609298411497E-2
-#define ZETA_12_DIV_12 8.3353840546109004024886499837312E-2
-#define ZETA_13_DIV_13 -7.6932516411352191472827064348181E-2
-#define ZETA_14_DIV_14 7.1432946295361336059232753221795E-2
-#define ZETA_15_DIV_15 -6.6668705882420468032903448567376E-2
-#define ZETA_16_DIV_16 6.2500955141213040741983285717977E-2
-#define ZETA_17_DIV_17 -5.8823978658684582338957270605504E-2
-#define ZETA_18_DIV_18 5.5555767627403611102214247869146E-2
-#define ZETA_19_DIV_19 -5.2631679379616660733627666155673E-2
-#define ZETA_20_DIV_20 5.0000047698101693639805657601934E-2
- */
-
-/*
- * Coefficients for Stirling's Series for Lgamma()
- */
-#define STIRLING_01 8.3333333333333333333333333333333333333333333333333333333333333333333333E-2
-#define STIRLING_02 -2.7777777777777777777777777777777777777777777777777777777777777777777778E-3
-#define STIRLING_03 7.9365079365079365079365079365079365079365079365079365079365079365079365E-4
-#define STIRLING_04 -5.9523809523809523809523809523809523809523809523809523809523809523809524E-4
-#define STIRLING_05 8.4175084175084175084175084175084175084175084175084175084175084175084175E-4
-#define STIRLING_06 -1.9175269175269175269175269175269175269175269175269175269175269175269175E-3
-#define STIRLING_07 6.4102564102564102564102564102564102564102564102564102564102564102564103E-3
-#define STIRLING_08 -2.9550653594771241830065359477124183006535947712418300653594771241830065E-2
-#define STIRLING_09 1.7964437236883057316493849001588939669435025472177174963552672531000704E-1
-#define STIRLING_10 -1.3924322169059011164274322169059011164274322169059011164274322169059011E0
-#define STIRLING_11 1.3402864044168391994478951000690131124913733609385783298826777087646653E1
-#define STIRLING_12 -1.5684828462600201730636513245208897382810426288687158252375643679991506E2
-#define STIRLING_13 2.1931033333333333333333333333333333333333333333333333333333333333333333E3
-#define STIRLING_14 -3.6108771253724989357173265219242230736483610046828437633035334184759472E4
-#define STIRLING_15 6.9147226885131306710839525077567346755333407168779805042318946657100161E5
-/*
- * More Stirling's coefficients
- */
-/*
-#define STIRLING_16 -1.5238221539407416192283364958886780518659076533839342188488298545224541E7
-#define STIRLING_17 3.8290075139141414141414141414141414141414141414141414141414141414141414E8
-#define STIRLING_18 -1.0882266035784391089015149165525105374729434879810819660443720594096534E10
-#define STIRLING_19 3.4732028376500225225225225225225225225225225225225225225225225225225225E11
-#define STIRLING_20 -1.2369602142269274454251710349271324881080978641954251710349271324881081E13
-#define STIRLING_21 4.8878806479307933507581516251802290210847053890567382180703629532735764E14
-*/
-
-
-static __inline vector double _lgammad2(vector double x)
-{
- vec_uchar16 dup_even = ((vec_uchar16) { 0,1,2,3, 0,1,2,3, 8, 9,10,11, 8, 9,10,11 });
- vec_uchar16 dup_odd = ((vec_uchar16) { 4,5,6,7, 4,5,6,7, 12,13,14,15, 12,13,14,15 });
- vec_uchar16 swap_word = ((vec_uchar16) { 4,5,6,7, 0,1,2,3, 12,13,14,15, 8, 9,10,11 });
- vec_double2 infinited = (vec_double2)spu_splats(0x7FF0000000000000ull);
- vec_double2 zerod = spu_splats(0.0);
- vec_double2 oned = spu_splats(1.0);
- vec_double2 twod = spu_splats(2.0);
- vec_double2 pi = spu_splats(PI);
- vec_double2 sign_maskd = spu_splats(-0.0);
-
- /* This is where we switch from near zero approx. */
- vec_float4 zero_switch = spu_splats(0.001f);
- vec_float4 shift_switch = spu_splats(6.0f);
-
- vec_float4 xf;
- vec_double2 inv_x, inv_xsqu;
- vec_double2 xtrunc, xstirling;
- vec_double2 sum, xabs;
- vec_uint4 xhigh, xlow, xthigh, xtlow;
- vec_uint4 x1, isnaninf, isnposint, iszero, isint, isneg, isshifted, is1, is2;
- vec_double2 result, stresult, shresult, mresult, nresult;
-
-
- /* Force Denorms to 0 */
- x = spu_add(x, zerod);
-
- xabs = spu_andc(x, sign_maskd);
- xf = spu_roundtf(xabs);
- xf = spu_shuffle(xf, xf, dup_even);
-
-
- /*
- * For 0 < x <= 0.001.
- * Approximation Near Zero
- *
- * Use Maclaurin Expansion of lgamma()
- *
- * lgamma(z) = -ln(z) - z * EulerMascheroni + Sum[(-1)^n * z^n * Zeta(n)/n]
- */
- mresult = spu_madd(xabs, spu_splats(ZETA_06_DIV_06), spu_splats(ZETA_05_DIV_05));
- mresult = spu_madd(xabs, mresult, spu_splats(ZETA_04_DIV_04));
- mresult = spu_madd(xabs, mresult, spu_splats(ZETA_03_DIV_03));
- mresult = spu_madd(xabs, mresult, spu_splats(ZETA_02_DIV_02));
- mresult = spu_mul(xabs, spu_mul(xabs, mresult));
- mresult = spu_sub(mresult, spu_add(_logd2(xabs), spu_mul(xabs, spu_splats(EULER_MASCHERONI))));
-
-
- /*
- * For 0.001 < x <= 6.0, we are going to push value
- * out to an area where Stirling's approximation is
- * accurate. Let's use a constant of 6.
- *
- * Use the recurrence relation:
- * lgamma(x + 1) = ln(x) + lgamma(x)
- *
- * Note that we shift x here, before Stirling's calculation,
- * then after Stirling's, we adjust the result.
- *
- */
-
- isshifted = spu_cmpgt(shift_switch, xf);
- xstirling = spu_sel(xabs, spu_add(xabs, spu_splats(6.0)), (vec_ullong2)isshifted);
- inv_x = _recipd2(xstirling);
- inv_xsqu = spu_mul(inv_x, inv_x);
-
- /*
- * For 6.0 < x < infinite
- *
- * Use Stirling's Series.
- *
- * 1 1 1 1 1
- * lgamma(x) = --- ln (2*pi) + (z - ---) ln(x) - x + --- - ----- + ------ ...
- * 2 2 12x 360x^3 1260x^5
- *
- * Taking 10 terms of the sum gives good results for x > 6.0
- *
- */
- sum = spu_madd(inv_xsqu, spu_splats(STIRLING_15), spu_splats(STIRLING_14));
- sum = spu_madd(sum, inv_xsqu, spu_splats(STIRLING_13));
- sum = spu_madd(sum, inv_xsqu, spu_splats(STIRLING_12));
- sum = spu_madd(sum, inv_xsqu, spu_splats(STIRLING_11));
- sum = spu_madd(sum, inv_xsqu, spu_splats(STIRLING_10));
- sum = spu_madd(sum, inv_xsqu, spu_splats(STIRLING_09));
- sum = spu_madd(sum, inv_xsqu, spu_splats(STIRLING_08));
- sum = spu_madd(sum, inv_xsqu, spu_splats(STIRLING_07));
- sum = spu_madd(sum, inv_xsqu, spu_splats(STIRLING_06));
- sum = spu_madd(sum, inv_xsqu, spu_splats(STIRLING_05));
- sum = spu_madd(sum, inv_xsqu, spu_splats(STIRLING_04));
- sum = spu_madd(sum, inv_xsqu, spu_splats(STIRLING_03));
- sum = spu_madd(sum, inv_xsqu, spu_splats(STIRLING_02));
- sum = spu_madd(sum, inv_xsqu, spu_splats(STIRLING_01));
- sum = spu_mul(sum, inv_x);
-
- stresult = spu_madd(spu_sub(xstirling, spu_splats(0.5)), _logd2(xstirling), spu_splats(HALFLOG2PI));
- stresult = spu_sub(stresult, xstirling);
- stresult = spu_add(stresult, sum);
-
- /*
- * Adjust result if we shifted x into Stirling range.
- *
- * lgamma(x) = lgamma(x + n) - ln(x(x+1)(x+2)...(x+n-1)
- *
- */
- shresult = spu_mul(xabs, spu_add(xabs, spu_splats(1.0)));
- shresult = spu_mul(shresult, spu_add(xabs, spu_splats(2.0)));
- shresult = spu_mul(shresult, spu_add(xabs, spu_splats(3.0)));
- shresult = spu_mul(shresult, spu_add(xabs, spu_splats(4.0)));
- shresult = spu_mul(shresult, spu_add(xabs, spu_splats(5.0)));
- shresult = _logd2(shresult);
- shresult = spu_sub(stresult, shresult);
- stresult = spu_sel(stresult, shresult, (vec_ullong2)isshifted);
-
-
- /*
- * Select either Maclaurin or Stirling result before Negative X calc.
- */
- xf = spu_shuffle(xf, xf, dup_even);
- vec_uint4 useStirlings = spu_cmpgt(xf, zero_switch);
- result = spu_sel(mresult, stresult, (vec_ullong2)useStirlings);
-
-
- /*
- * Approximation for Negative X
- *
- * Use reflection relation
- *
- * gamma(x) * gamma(-x) = -pi/(x sin(pi x))
- *
- * lgamma(x) = log(pi/(-x sin(pi x))) - lgamma(-x)
- *
- */
- nresult = spu_mul(x, _sind2(spu_mul(x, pi)));
- nresult = spu_andc(nresult, sign_maskd);
- nresult = _logd2(_divd2(pi, nresult));
- nresult = spu_sub(nresult, result);
-
-
- /*
- * Select between the negative or positive x approximations.
- */
- isneg = (vec_uint4)spu_shuffle(x, x, dup_even);
- isneg = spu_rlmaska(isneg, -32);
- result = spu_sel(result, nresult, (vec_ullong2)isneg);
-
-
- /*
- * Finally, special cases/errors.
- */
- xhigh = (vec_uint4)spu_shuffle(xabs, xabs, dup_even);
- xlow = (vec_uint4)spu_shuffle(xabs, xabs, dup_odd);
-
- /* x = zero, return infinite */
- x1 = spu_or(xhigh, xlow);
- iszero = spu_cmpeq(x1, 0);
-
- /* x = negative integer, return infinite */
- xtrunc = _truncd2(xabs);
- xthigh = (vec_uint4)spu_shuffle(xtrunc, xtrunc, dup_even);
- xtlow = (vec_uint4)spu_shuffle(xtrunc, xtrunc, dup_odd);
- isint = spu_and(spu_cmpeq(xthigh, xhigh), spu_cmpeq(xtlow, xlow));
- isnposint = spu_or(spu_and(isint, isneg), iszero);
- result = spu_sel(result, infinited, (vec_ullong2)isnposint);
-
- /* x = 1.0 or 2.0, return 0.0 */
- is1 = spu_cmpeq((vec_uint4)x, (vec_uint4)oned);
- is1 = spu_and(is1, spu_shuffle(is1, is1, swap_word));
- is2 = spu_cmpeq((vec_uint4)x, (vec_uint4)twod);
- is2 = spu_and(is2, spu_shuffle(is2, is2, swap_word));
- result = spu_sel(result, zerod, (vec_ullong2)spu_or(is1,is2));
-
- /* x = +/- infinite or nan, return |x| */
- isnaninf = spu_cmpgt(xhigh, 0x7FEFFFFF);
- result = spu_sel(result, xabs, (vec_ullong2)isnaninf);
-
- return result;
-}
-
-#endif /* _LGAMMAD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/lgammaf.h b/newlib/libm/machine/spu/headers/lgammaf.h
deleted file mode 100644
index cf19ab383..000000000
--- a/newlib/libm/machine/spu/headers/lgammaf.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/lgammaf4.h"
-
-static __inline float _lgammaf(float x)
-{
- return spu_extract(_lgammaf4(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/lgammaf4.h b/newlib/libm/machine/spu/headers/lgammaf4.h
deleted file mode 100644
index 36aea5b16..000000000
--- a/newlib/libm/machine/spu/headers/lgammaf4.h
+++ /dev/null
@@ -1,517 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _LGAMMAF4_H_
-#define _LGAMMAF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "logf4.h"
-#include "divf4.h"
-#include "recipf4.h"
-#include "truncf4.h"
-#include "sinf4.h"
-
-
-/*
- * FUNCTION
- * vector float _lgammaf4(vector float x) - Natural Log of Gamma Function
- *
- * DESCRIPTION
- * _lgammaf4 calculates the natural logarithm of the absolute value of the gamma
- * function for the corresponding elements of the input vector.
- *
- * C99 Special Cases:
- * lgamma(0) returns +infinity
- * lgamma(1) returns +0
- * lgamma(2) returns +0
- * lgamma(negative integer) returns +infinity
- * lgamma(+infinity) returns +infinity
- * lgamma(-infinity) returns +infinity
- *
- * Other Cases:
- * lgamma(Nan) returns Nan
- * lgamma(Denorm) treated as lgamma(0) and returns +infinity
- *
- */
-
-static __inline vector float _lgammaf4(vector float x)
-{
- vec_float4 result;
- vec_float4 halflog2pi = spu_splats(9.189385332046727417803297364056E-1f);
- vec_float4 logpi = spu_splats(1.1447298858494001741434273513530587116472948129153f);
- vec_float4 inff = (vec_float4)spu_splats(0x7F800000);
- vec_float4 zerof = spu_splats(0.0f);
- vec_float4 onef = spu_splats(1.0f);
- vec_float4 twof = spu_splats(2.0f);
- vec_float4 sign_maskf = spu_splats(-0.0f);
- vec_float4 pi = spu_splats(3.14159265358979323846264338328f);
-
-
- /*
- * Unfortunately, some of the approximation methods for lgamma require
- * other basic math computations. Get those out of the way now. The
- * compiler seems to good a good job of scheduling this code with
- * the code that follows.
- */
- vec_uint4 gt0 = spu_cmpgt(x, zerof);
- vec_float4 xabs = spu_andc(x, sign_maskf);
- vec_float4 ln_x = _logf4(xabs);
- vec_float4 inv_x = _recipf4(xabs);
- vec_float4 xtrunc = _truncf4(x);
- vec_float4 inv_xsqu = spu_mul(inv_x, inv_x);
- vec_uint4 isnaninf = spu_cmpgt((vec_uint4)xabs, 0x7F7FFFFF);
- vec_uint4 ret_zero = spu_or(spu_cmpeq(x, onef), spu_cmpeq(x, twof));
-
-
- /*
- * First thing we do is setup the description of each partition.
- * This consists of:
- * - Start x of partition
- * - Offset (used for evaluating power series expanded around a point)
- * - Truncation adjustment.
- * - Is approx method in region a rational approximation or just a polynomial
- * - The coefficients used in the poly or rational approximation
- */
-
-
- /***************************************************************
- * REGION 0: Approximation Near 0 from Above
- *
- * Use Maclaurin Expansion of lgamma()
- *
- * lgamma(z) = -ln(z) - z * EulerMascheroni + Sum[(-1)^n * z^n * Zeta(n)/n]
- */
-
-#define SDM_LGF4_0_START 0.0f
-#define SDM_LGF4_0_OFF 0.0f
-#define SDM_LGF4_0_TRUNC 2u
-#define SDM_LGF4_0_RATIONAL 0x0u
-
-#define SDM_LGF4_0_00 0.0f
-#define SDM_LGF4_0_01 -0.5772156649015328606065121f
-#define SDM_LGF4_0_02 0.8224670334241132182362076f
-#define SDM_LGF4_0_03 -0.4006856343865314284665794f
-#define SDM_LGF4_0_04 0.2705808084277845478790009f
-#define SDM_LGF4_0_05 -0.2073855510286739852662731f
-#define SDM_LGF4_0_06 1.6955717699740818995241965496515E-1f
-#define SDM_LGF4_0_07 -1.4404989676884611811997107854997E-1f
-#define SDM_LGF4_0_08 1.2550966952474304242233565481358E-1f
-#define SDM_LGF4_0_09 -1.1133426586956469049087252991471E-1f
-#define SDM_LGF4_0_10 1.0009945751278180853371459589003E-1f
-#define SDM_LGF4_0_11 -9.0954017145829042232609298411497E-2f
-
-
-
- /***************************************************************
- * REGION 1: Above 0 and Below 1
- */
-#define SDM_LGF4_1_START 0.20f
-#define SDM_LGF4_1_OFF 0.0f
-#define SDM_LGF4_1_TRUNC 0u
-#define SDM_LGF4_1_RATIONAL 0xFFFFFFFFu
-
-/* Numerator */
-#define SDM_LGF4_1_06 5.5247592697706124892083167601451981186889952720891079f
-#define SDM_LGF4_1_07 188.42248906442882644741346270888237140890625699348872f
-#define SDM_LGF4_1_08 730.89115027907050579364152184942040244662318995470771f
-#define SDM_LGF4_1_09 -517.93391251349155395618464682404141737699116911423096f
-#define SDM_LGF4_1_10 -866.81293419754982917624255525168901081630973644141406f
-#define SDM_LGF4_1_11 459.90872804523394478152324135956113729930154636775805f
-
-/* Denominator */
-#define SDM_LGF4_1_00 1.0f
-#define SDM_LGF4_1_01 62.356015559548850893358835861387218304619374633480009f
-#define SDM_LGF4_1_02 553.64875642095755724931612658933597252336243693499682f
-#define SDM_LGF4_1_03 997.28805670393557265195865662557219661414263910835386f
-#define SDM_LGF4_1_04 257.10520661440946455560646958565998121417179154677712f
-#define SDM_LGF4_1_05 -15.398409585547124178878369413880017200739911288666830f
-
-
-
- /***************************************************************
- * REGION 2: Above 0 and Below 1
- */
-#define SDM_LGF4_2_START 0.60f
-#define SDM_LGF4_2_OFF 0.69f
-#define SDM_LGF4_2_TRUNC 1u
-#define SDM_LGF4_2_RATIONAL 0x0u
-
-/* This is a power series expanson of LogGamma around 0.69 */
-#define SDM_LGF4_2_00 0.27321026793030387025442491383648273204234f
-#define SDM_LGF4_2_01 -1.24869016926209356266849815723905575347988f
-#define SDM_LGF4_2_02 1.44985879780363867173410158693003578927407f
-#define SDM_LGF4_2_03 -1.11686573274718166516744313082147691068190f
-#define SDM_LGF4_2_04 1.14079150485439143731395820215710950729505f
-#define SDM_LGF4_2_05 -1.29512166953091144888197173527810141620764f
-#define SDM_LGF4_2_06 1.55206382120790061136858894716459302629069f
-#define SDM_LGF4_2_07 -1.92227237154565289482911310272968704445560f
-#define SDM_LGF4_2_08 2.43478939488445894670349784581009987461638f
-#define SDM_LGF4_2_09 -3.13512449573283650741385084753752461908870f
-#define SDM_LGF4_2_10 4.08851456399492725127969680590409811177590f
-#define SDM_LGF4_2_11 5.38629680478093362448042704719642976375265f
-
-
-
- /***************************************************************
- * REGION 3: Around 1
- */
-#define SDM_LGF4_3_START 0.74f
-#define SDM_LGF4_3_OFF 1.0f
-#define SDM_LGF4_3_TRUNC 2u
-#define SDM_LGF4_3_RATIONAL 0x0u
-
-#define SDM_LGF4_3_11 -0.90954017145829042232609298411497266951691494159836e-1f
-#define SDM_LGF4_3_10 0.10009945751278180853371459589003190170060195315645f
-#define SDM_LGF4_3_09 -0.11133426586956469049087252991471245116506731682165f
-#define SDM_LGF4_3_08 0.12550966952474304242233565481358155815737009883123f
-#define SDM_LGF4_3_07 -0.14404989676884611811997107854997096565712336579503f
-#define SDM_LGF4_3_06 0.16955717699740818995241965496515342131696958167214f
-#define SDM_LGF4_3_05 -0.20738555102867398526627309729140683361141618390038f
-#define SDM_LGF4_3_04 0.27058080842778454787900092413529197569368773797968f
-#define SDM_LGF4_3_03 -0.40068563438653142846657938717048333025499543078016f
-#define SDM_LGF4_3_02 0.82246703342411321823620758332301259460947495060340f
-#define SDM_LGF4_3_01 -0.57721566490153286060651209008240243104215933593992f
-#define SDM_LGF4_3_00 0.0f
-
-
-
- /***************************************************************
- * REGION 4: Above 1 to Below 2
- */
-
-#define SDM_LGF4_4_START 1.25f
-#define SDM_LGF4_4_OFF 1.4616321449683623412626595423257213284681962040064f
-#define SDM_LGF4_4_TRUNC 1u
-#define SDM_LGF4_4_RATIONAL 0x0u
-
-#define SDM_LGF4_4_00 -0.12148629053584960809551455717769158215135617313000f
-#define SDM_LGF4_4_01 0.0f
-#define SDM_LGF4_4_02 0.48383612272381058521372238085482537020562860838860f
-#define SDM_LGF4_4_03 -0.14758772299453070203095509395083641661852764909458f
-#define SDM_LGF4_4_04 0.064624940238912752656100346425238557063086033931734f
-#define SDM_LGF4_4_05 -0.032788541088481305500850258549331278505894787737970f
-#define SDM_LGF4_4_06 0.017970675115210394292863824811126161810628596070981f
-#define SDM_LGF4_4_07 -0.010314223036636387275160254800730296612070784399082f
-#define SDM_LGF4_4_08 0.0061005360205178884031365656884883648099463048507839f
-#define SDM_LGF4_4_09 -0.0036845696083163732546953776004972425913603137160767f
-#define SDM_LGF4_4_10 0.00225976482322181046596248251178293952686321035f
-#define SDM_LGF4_4_11 -0.00140225144590445083080002880374741201782467331f
-
-
-
- /***************************************************************
- * REGION 5: Around 2
- */
-
-#define SDM_LGF4_5_START 1.50f
-#define SDM_LGF4_5_OFF 2.0f
-#define SDM_LGF4_5_TRUNC 1u
-#define SDM_LGF4_5_RATIONAL 0x0u
-
-#define SDM_LGF4_5_00 0.0f
-#define SDM_LGF4_5_01 0.42278433509846713939348790991759756895784066406008f
-#define SDM_LGF4_5_02 0.32246703342411321823620758332301259460947495060340f
-#define SDM_LGF4_5_03 -0.6735230105319809513324605383714999692166209744683e-1f
-#define SDM_LGF4_5_04 0.2058080842778454787900092413529197569368773797968e-1f
-#define SDM_LGF4_5_05 -0.738555102867398526627309729140683361141618390038e-2f
-#define SDM_LGF4_5_06 0.289051033074152328575298829848675465030291500547e-2f
-#define SDM_LGF4_5_07 -0.119275391170326097711393569282810851426622293789e-2f
-#define SDM_LGF4_5_08 0.50966952474304242233565481358155815737009883123e-3f
-#define SDM_LGF4_5_09 -0.22315475845357937976141880360134005395620571054e-3f
-#define SDM_LGF4_5_10 0.9945751278180853371459589003190170060195315645e-4f
-#define SDM_LGF4_5_11 -0.44926236738133141700207502406357860782403250745e-4f
-
-
-
- /***************************************************************
- * REGION 6: Above 2 to Below Stirlings
- */
-
-#define SDM_LGF4_6_START 2.48f
-#define SDM_LGF4_6_OFF 0.0f
-#define SDM_LGF4_6_TRUNC 2u
-#define SDM_LGF4_6_RATIONAL 0xFFFFFFFFu
-
-/* Numerator */
-#define SDM_LGF4_6_06 2.8952045264375719070927153893062450394256201846894266f
-#define SDM_LGF4_6_07 0.9017557380149600532583460408941390566399250566546766f
-#define SDM_LGF4_6_08 -5.0120743649109868270726470406381462995568837028633266f
-#define SDM_LGF4_6_09 0.5723176665030477945174549923532715487712277062412760f
-#define SDM_LGF4_6_10 0.6107282478237180956153912232438073421489100296366786f
-#define SDM_LGF4_6_11 0.0312308625200519550078820867041868696010490562277303f
-
-/* Denominator */
-#define SDM_LGF4_6_00 1.0f
-#define SDM_LGF4_6_01 4.3592151369378598515798083402849838078885877442021500f
-#define SDM_LGF4_6_02 2.6245676641191702420707093818412405820501009602499853f
-#define SDM_LGF4_6_03 0.3438846837443412565179153619145215759074092780311669f
-#define SDM_LGF4_6_04 0.0078092905528158343621764949220712317164193605131159f
-#define SDM_LGF4_6_05 -0.000015217018272713076443927141674684568030697337620f
-
-
-
- /***************************************************************
- * REGION 7: Stirlings - Above 6.0
- *
- */
-
-#define SDM_LGF4_7_START 7.80f
-#define SDM_LGF4_7_OFF 0.0f
-#define SDM_LGF4_7_TRUNC 5u
-#define SDM_LGF4_7_RATIONAL 0x0u
-
-#define SDM_LGF4_7_00 8.3333333333333333333333333333333333333333333333333333333333333333333333E-2f
-#define SDM_LGF4_7_01 -2.7777777777777777777777777777777777777777777777777777777777777777777778E-3f
-#define SDM_LGF4_7_02 7.9365079365079365079365079365079365079365079365079365079365079365079365E-4f
-#define SDM_LGF4_7_03 -5.9523809523809523809523809523809523809523809523809523809523809523809524E-4f
-#define SDM_LGF4_7_04 8.4175084175084175084175084175084175084175084175084175084175084175084175E-4f
-#define SDM_LGF4_7_05 -1.9175269175269175269175269175269175269175269175269175269175269175269175E-3f
-#define SDM_LGF4_7_06 6.4102564102564102564102564102564102564102564102564102564102564102564103E-3f
-#define SDM_LGF4_7_07 0.0f
-#define SDM_LGF4_7_08 0.0f
-#define SDM_LGF4_7_09 0.0f
-#define SDM_LGF4_7_10 0.0f
-#define SDM_LGF4_7_11 0.0f
-
-
- /*
- * Now we load the description of each partition.
- */
-
- /* Start point for each partition */
- vec_float4 r1start = spu_splats(SDM_LGF4_1_START);
- vec_float4 r2start = spu_splats(SDM_LGF4_2_START);
- vec_float4 r3start = spu_splats(SDM_LGF4_3_START);
- vec_float4 r4start = spu_splats(SDM_LGF4_4_START);
- vec_float4 r5start = spu_splats(SDM_LGF4_5_START);
- vec_float4 r6start = spu_splats(SDM_LGF4_6_START);
- vec_float4 r7start = spu_splats(SDM_LGF4_7_START);
-
- /* X Offset for each partition */
- vec_float4 xoffseta = (vec_float4) {SDM_LGF4_0_OFF, SDM_LGF4_1_OFF, SDM_LGF4_2_OFF, SDM_LGF4_3_OFF};
- vec_float4 xoffsetb = (vec_float4) {SDM_LGF4_4_OFF, SDM_LGF4_5_OFF, SDM_LGF4_6_OFF, SDM_LGF4_7_OFF};
-
- /* Truncation Correction for each partition */
- vec_uint4 tcorra = (vec_uint4) {SDM_LGF4_0_TRUNC, SDM_LGF4_1_TRUNC, SDM_LGF4_2_TRUNC, SDM_LGF4_3_TRUNC};
- vec_uint4 tcorrb = (vec_uint4) {SDM_LGF4_4_TRUNC, SDM_LGF4_5_TRUNC, SDM_LGF4_6_TRUNC, SDM_LGF4_7_TRUNC};
-
- /* Is partition a Rational Approximation */
- vec_uint4 israta = (vec_uint4) {SDM_LGF4_0_RATIONAL, SDM_LGF4_1_RATIONAL, SDM_LGF4_2_RATIONAL, SDM_LGF4_3_RATIONAL};
- vec_uint4 isratb = (vec_uint4) {SDM_LGF4_4_RATIONAL, SDM_LGF4_5_RATIONAL, SDM_LGF4_6_RATIONAL, SDM_LGF4_7_RATIONAL};
-
- /* The polynomial coefficients for all partitions */
- vec_float4 c00a = (vec_float4) {SDM_LGF4_0_00, SDM_LGF4_1_00, SDM_LGF4_2_00, SDM_LGF4_3_00};
- vec_float4 c01a = (vec_float4) {SDM_LGF4_0_01, SDM_LGF4_1_01, SDM_LGF4_2_01, SDM_LGF4_3_01};
- vec_float4 c02a = (vec_float4) {SDM_LGF4_0_02, SDM_LGF4_1_02, SDM_LGF4_2_02, SDM_LGF4_3_02};
- vec_float4 c03a = (vec_float4) {SDM_LGF4_0_03, SDM_LGF4_1_03, SDM_LGF4_2_03, SDM_LGF4_3_03};
- vec_float4 c04a = (vec_float4) {SDM_LGF4_0_04, SDM_LGF4_1_04, SDM_LGF4_2_04, SDM_LGF4_3_04};
- vec_float4 c05a = (vec_float4) {SDM_LGF4_0_05, SDM_LGF4_1_05, SDM_LGF4_2_05, SDM_LGF4_3_05};
- vec_float4 c06a = (vec_float4) {SDM_LGF4_0_06, SDM_LGF4_1_06, SDM_LGF4_2_06, SDM_LGF4_3_06};
- vec_float4 c07a = (vec_float4) {SDM_LGF4_0_07, SDM_LGF4_1_07, SDM_LGF4_2_07, SDM_LGF4_3_07};
- vec_float4 c08a = (vec_float4) {SDM_LGF4_0_08, SDM_LGF4_1_08, SDM_LGF4_2_08, SDM_LGF4_3_08};
- vec_float4 c09a = (vec_float4) {SDM_LGF4_0_09, SDM_LGF4_1_09, SDM_LGF4_2_09, SDM_LGF4_3_09};
- vec_float4 c10a = (vec_float4) {SDM_LGF4_0_10, SDM_LGF4_1_10, SDM_LGF4_2_10, SDM_LGF4_3_10};
- vec_float4 c11a = (vec_float4) {SDM_LGF4_0_11, SDM_LGF4_1_11, SDM_LGF4_2_11, SDM_LGF4_3_11};
-
- vec_float4 c00b = (vec_float4) {SDM_LGF4_4_00, SDM_LGF4_5_00, SDM_LGF4_6_00, SDM_LGF4_7_00};
- vec_float4 c01b = (vec_float4) {SDM_LGF4_4_01, SDM_LGF4_5_01, SDM_LGF4_6_01, SDM_LGF4_7_01};
- vec_float4 c02b = (vec_float4) {SDM_LGF4_4_02, SDM_LGF4_5_02, SDM_LGF4_6_02, SDM_LGF4_7_02};
- vec_float4 c03b = (vec_float4) {SDM_LGF4_4_03, SDM_LGF4_5_03, SDM_LGF4_6_03, SDM_LGF4_7_03};
- vec_float4 c04b = (vec_float4) {SDM_LGF4_4_04, SDM_LGF4_5_04, SDM_LGF4_6_04, SDM_LGF4_7_04};
- vec_float4 c05b = (vec_float4) {SDM_LGF4_4_05, SDM_LGF4_5_05, SDM_LGF4_6_05, SDM_LGF4_7_05};
- vec_float4 c06b = (vec_float4) {SDM_LGF4_4_06, SDM_LGF4_5_06, SDM_LGF4_6_06, SDM_LGF4_7_06};
- vec_float4 c07b = (vec_float4) {SDM_LGF4_4_07, SDM_LGF4_5_07, SDM_LGF4_6_07, SDM_LGF4_7_07};
- vec_float4 c08b = (vec_float4) {SDM_LGF4_4_08, SDM_LGF4_5_08, SDM_LGF4_6_08, SDM_LGF4_7_08};
- vec_float4 c09b = (vec_float4) {SDM_LGF4_4_09, SDM_LGF4_5_09, SDM_LGF4_6_09, SDM_LGF4_7_09};
- vec_float4 c10b = (vec_float4) {SDM_LGF4_4_10, SDM_LGF4_5_10, SDM_LGF4_6_10, SDM_LGF4_7_10};
- vec_float4 c11b = (vec_float4) {SDM_LGF4_4_11, SDM_LGF4_5_11, SDM_LGF4_6_11, SDM_LGF4_7_11};
-
-
- vec_uchar16 shuffle0 = (vec_uchar16) spu_splats(0x00010203);
- vec_uchar16 shuffle1 = (vec_uchar16) spu_splats(0x04050607);
- vec_uchar16 shuffle2 = (vec_uchar16) spu_splats(0x08090A0B);
- vec_uchar16 shuffle3 = (vec_uchar16) spu_splats(0x0C0D0E0F);
- vec_uchar16 shuffle4 = (vec_uchar16) spu_splats(0x10111213);
- vec_uchar16 shuffle5 = (vec_uchar16) spu_splats(0x14151617);
- vec_uchar16 shuffle6 = (vec_uchar16) spu_splats(0x18191A1B);
- vec_uchar16 shuffle7 = (vec_uchar16) spu_splats(0x1C1D1E1F);
-
-
- /*
- * Determine the shuffle pattern based on which partition
- * each element of x is in.
- */
-
- vec_uchar16 gt_r1start = (vec_uchar16)spu_cmpgt(xabs, r1start);
- vec_uchar16 gt_r2start = (vec_uchar16)spu_cmpgt(xabs, r2start);
- vec_uchar16 gt_r3start = (vec_uchar16)spu_cmpgt(xabs, r3start);
- vec_uchar16 gt_r4start = (vec_uchar16)spu_cmpgt(xabs, r4start);
- vec_uchar16 gt_r5start = (vec_uchar16)spu_cmpgt(xabs, r5start);
- vec_uchar16 gt_r6start = (vec_uchar16)spu_cmpgt(xabs, r6start);
- vec_uchar16 gt_r7start = (vec_uchar16)spu_cmpgt(xabs, r7start);
-
- vec_uchar16 shufflepattern;
- shufflepattern = spu_sel(shuffle0, shuffle1, gt_r1start);
- shufflepattern = spu_sel(shufflepattern, shuffle2, gt_r2start);
- shufflepattern = spu_sel(shufflepattern, shuffle3, gt_r3start);
- shufflepattern = spu_sel(shufflepattern, shuffle4, gt_r4start);
- shufflepattern = spu_sel(shufflepattern, shuffle5, gt_r5start);
- shufflepattern = spu_sel(shufflepattern, shuffle6, gt_r6start);
- shufflepattern = spu_sel(shufflepattern, shuffle7, gt_r7start);
-
-
-
- /* Use the shuffle pattern to select the coefficients */
-
- vec_float4 coeff_00 = spu_shuffle(c00a, c00b, shufflepattern);
- vec_float4 coeff_01 = spu_shuffle(c01a, c01b, shufflepattern);
- vec_float4 coeff_02 = spu_shuffle(c02a, c02b, shufflepattern);
- vec_float4 coeff_03 = spu_shuffle(c03a, c03b, shufflepattern);
- vec_float4 coeff_04 = spu_shuffle(c04a, c04b, shufflepattern);
- vec_float4 coeff_06 = spu_shuffle(c06a, c06b, shufflepattern);
- vec_float4 coeff_07 = spu_shuffle(c07a, c07b, shufflepattern);
- vec_float4 coeff_05 = spu_shuffle(c05a, c05b, shufflepattern);
- vec_float4 coeff_08 = spu_shuffle(c08a, c08b, shufflepattern);
- vec_float4 coeff_09 = spu_shuffle(c09a, c09b, shufflepattern);
- vec_float4 coeff_10 = spu_shuffle(c10a, c10b, shufflepattern);
- vec_float4 coeff_11 = spu_shuffle(c11a, c11b, shufflepattern);
-
- vec_float4 xoffset = spu_shuffle(xoffseta, xoffsetb, shufflepattern);
- vec_uint4 tcorrection = spu_shuffle(tcorra, tcorrb, shufflepattern);
- vec_uint4 isrational = spu_shuffle(israta, isratb, shufflepattern);
-
- /*
- * We've completed the coeff. setup. Now we actually do the
- * approximation below.
- */
-
- /* Adjust x value here (for approximations about a point) */
- vec_float4 xappr = spu_sub(xabs, xoffset);
-
- /* If in Stirling partition, do some setup before the madds */
- xappr = spu_sel(xappr, inv_xsqu, (vector unsigned int)gt_r7start);
-
-
-
- /* Now we do the multiplies - either a big polynomial or
- * a rational approximation. Use Horner's method.
- */
- result = coeff_11;
- result = spu_madd(xappr, result, coeff_10);
- result = spu_madd(xappr, result, coeff_09);
- result = spu_madd(xappr, result, coeff_08);
- result = spu_madd(xappr, result, coeff_07);
- result = spu_madd(xappr, result, coeff_06);
-
- /* For rational approximations, we save numerator. */
- vec_float4 resultn = result;
-
- /* For rational appr,, reset result for calculation of denominator. */
- result = spu_sel(result, spu_splats(0.0f), isrational);
-
- result = spu_madd(xappr, result, coeff_05);
- result = spu_madd(xappr, result, coeff_04);
- result = spu_madd(xappr, result, coeff_03);
- result = spu_madd(xappr, result, coeff_02);
- result = spu_madd(xappr, result, coeff_01);
- result = spu_madd(xappr, result, coeff_00);
-
- /* Select either the polynomial or rational result */
- result = spu_sel(result, _divf4(resultn, result), isrational);
-
- /*
- * Now we have to do a bit of additional calculations for
- * partitions that weren't simple polynomial or rational
- * approximations.
- */
-
- /* Finish the Near 0 formula */
- result = spu_sel(spu_sub(result, ln_x), result, (vector unsigned int)gt_r1start);
-
- /* Finish Stirling's Approximation */
- vec_float4 resultstirling = spu_madd(spu_sub(xabs, spu_splats(0.5f)), ln_x, halflog2pi);
- resultstirling = spu_sub(resultstirling, xabs);
- resultstirling = spu_add(spu_mul(result,inv_x), resultstirling);
- result = spu_sel(result, resultstirling, (vector unsigned int)gt_r7start);
-
-
- /* Adjust due to systematic truncation */
- result = (vec_float4)spu_add((vec_uint4)result, tcorrection);
-
-
- /*
- * Approximation for Negative X
- *
- * Use reflection relation:
- *
- * gamma(x) * gamma(-x) = -pi/(x sin(pi x))
- *
- * lgamma(x) = log(pi/(-x sin(pi x))) - lgamma(-x)
- *
- */
- vec_float4 nresult = spu_mul(x, _sinf4(spu_mul(x, pi)));
- nresult = spu_andc(nresult, sign_maskf);
- nresult = spu_sub(logpi, spu_add(result, _logf4(nresult)));
- nresult = (vec_float4)spu_add((vec_uint4)nresult, spu_splats(1u));
-
- result = spu_sel(nresult, result, gt0);
-
-
- /*
- * Special Cases
- */
-
- /* x = non-positive integer, return infinity */
- vec_uint4 isnonposint = spu_andc(spu_cmpeq(x, xtrunc), gt0);
- result = spu_sel(result, inff, spu_or(isnonposint, spu_cmpgt(x, spu_splats(4.2e36f))));
- result = spu_sel(result, inff, spu_andc(spu_cmpeq(x, xtrunc), gt0));
-
- /* Zeros of function */
- result = spu_sel(result, zerof, ret_zero);
-
- /* x = +/- infinity or nan, return |x| */
- result = spu_sel(result, xabs, isnaninf);
-
-
- return result;
-}
-
-#endif /* _LGAMMAF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/llrint.h b/newlib/libm/machine/spu/headers/llrint.h
deleted file mode 100644
index 656322255..000000000
--- a/newlib/libm/machine/spu/headers/llrint.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _LLRINT_H_
-#define _LLRINT_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-static __inline long long int _llrint(double x)
-{
- int shift;
- vec_int4 exp;
- vec_uint4 mant, sign, mask, borrow;
- vec_double2 in, bias;
-
- in = spu_promote(x, 0);
-
- /* Round the input according to the current rounding mode.
- */
- bias = spu_sel((vec_double2)(VEC_SPLAT_U64(0x4330000000000000ULL)), in,
- VEC_SPLAT_U64(0x8000000000000000ULL));
- mant = (vec_uint4)(spu_sub(spu_add(in, bias), bias));
-
- /* Determine how many bits to shift the mantissa to correctly
- * align it into long long element 0.
- */
- exp = spu_and(spu_rlmask((vec_int4)mant, -20), 0x7FF);
- exp = spu_add(exp, -1011);
- shift = spu_extract(exp, 0);
-
- mask = spu_cmpgt(exp, 0);
- mask = (vec_uint4)spu_maskw(spu_extract(mask, 0));
-
- /* Algn mantissa bits
- */
- mant = spu_sel(spu_rlmaskqwbyte(mant, -8), VEC_SPLAT_U32(0x00100000),
- VEC_LITERAL(vec_uint4, 0,0,0xFFF00000,0));
-
- mant = spu_and(spu_slqwbytebc(spu_slqw(mant, shift), shift), mask);
-
- /* Compute the two's complement of the mantissa if the
- * input is negative.
- */
- sign = spu_maskw(spu_extract(spu_rlmaska((vec_int4)in, -31), 0));
-
- mant = spu_xor(mant, sign);
- borrow = spu_genb(mant, sign);
- borrow = spu_shuffle(borrow, borrow,
- VEC_LITERAL(vec_uchar16, 4,5,6,7, 192,192,192,192,
- 4,5,6,7, 192,192,192,192));
- mant = spu_subx(mant, sign, borrow);
-
- return (spu_extract((vec_llong2)(mant), 0));
-}
-#endif /* _LLRINT_H_ */
diff --git a/newlib/libm/machine/spu/headers/llrintf.h b/newlib/libm/machine/spu/headers/llrintf.h
deleted file mode 100644
index 76b6d70ef..000000000
--- a/newlib/libm/machine/spu/headers/llrintf.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _LLRINTF_H_
-#define _LLRINTF_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-static __inline long long int _llrintf(float x)
-{
- int shift;
- vec_int4 exp;
- vec_uint4 mant, sign, borrow;
- vec_float4 in;
-
- in = spu_promote(x, 0);
-
- /* Place mantissa bits (including implied most signficant
- * bit) into the most significant bits of element 3. Elements
- * 0, 1, and 2 are zeroed.
- */
- mant = spu_sel(spu_rlmaskqwbyte((vec_uint4)in, -11),
- VEC_SPLAT_U32(0x80000000),
- VEC_LITERAL(vec_uint4, 0,0,0xFF,0x800000FF));
-
- /* Determine how many bits to shift the mantissa to correctly
- * align it into long long element 0.
- */
- exp = spu_and(spu_rlmask((vec_int4)in, -23), 0xFF);
- shift = spu_extract(spu_add(exp, -94), 0);
-
- /* Algn mantissa bits
- */
- mant = spu_slqwbytebc(spu_slqw(mant, shift), shift);
-
- /* Compute the two's complement of the mantissa if the
- * input is negative.
- */
- sign = spu_maskw(spu_extract(spu_rlmaska((vec_int4)in, -31), 0));
-
- mant = spu_xor(mant, sign);
- borrow = spu_genb(mant, sign);
- borrow = spu_shuffle(borrow, borrow,
- VEC_LITERAL(vec_uchar16, 4,5,6,7, 192,192,192,192,
- 4,5,6,7, 192,192,192,192));
- mant = spu_subx(mant, sign, borrow);
-
- return (spu_extract((vec_llong2)(mant), 0));
-}
-#endif /* _LLRINTF_H_ */
diff --git a/newlib/libm/machine/spu/headers/llround.h b/newlib/libm/machine/spu/headers/llround.h
deleted file mode 100644
index 04969503b..000000000
--- a/newlib/libm/machine/spu/headers/llround.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _LLROUND_H_
-#define _LLROUND_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-static __inline long long int _llround(double x)
-{
- int shift;
- vec_int4 exp;
- vec_uint4 mant, sign, mask, borrow, addend;
- vec_double2 in;
-
- in = spu_promote(x, 0);
-
- /* Determine how many bits to shift the mantissa to correctly
- * align it into long long element 0.
- */
- exp = spu_and(spu_rlmask((vec_int4)in, -20), 0x7FF);
- exp = spu_add(exp, -1011);
- shift = spu_extract(exp, 0);
-
- mask = spu_cmpgt(exp, 0);
- mask = (vec_uint4)spu_maskw(spu_extract(mask, 0));
-
- /* Algn mantissa bits
- */
- mant = spu_sel(spu_rlmaskqwbyte((vec_uint4)in, -8), VEC_SPLAT_U32(0x00100000),
- VEC_LITERAL(vec_uint4, 0,0,0xFFF00000,0));
-
- mant = spu_and(spu_slqwbytebc(spu_slqw(mant, shift), shift), mask);
-
- /* Perform round by adding 1 if the fraction bits are
- * greater than or equal to .5
- */
- addend = spu_and(spu_rlqw(mant, 1), VEC_LITERAL(vec_uint4, 0,1,0,0));
- mant = spu_addx(mant, addend, spu_rlqwbyte(spu_genc(mant, addend), 4));
-
- /* Compute the two's complement of the mantissa if the
- * input is negative.
- */
- sign = spu_maskw(spu_extract(spu_rlmaska((vec_int4)in, -31), 0));
-
- mant = spu_xor(mant, sign);
- borrow = spu_genb(mant, sign);
- borrow = spu_shuffle(borrow, borrow,
- VEC_LITERAL(vec_uchar16, 4,5,6,7, 192,192,192,192,
- 4,5,6,7, 192,192,192,192));
- mant = spu_subx(mant, sign, borrow);
-
- return (spu_extract((vec_llong2)(mant), 0));
-}
-#endif /* _LLROUND_H_ */
diff --git a/newlib/libm/machine/spu/headers/llroundf.h b/newlib/libm/machine/spu/headers/llroundf.h
deleted file mode 100644
index cfdebba2a..000000000
--- a/newlib/libm/machine/spu/headers/llroundf.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _LLROUNDF_H_
-#define _LLROUNDF_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-static __inline long long int _llroundf(float x)
-{
- int shift;
- vec_int4 exp;
- vec_uint4 mant, sign, borrow;
- vec_float4 in;
-
- in = spu_promote(x, 0);
-
- /* Place mantissa bits (including implied most signficant
- * bit) into the most significant bits of element 3. Elements
- * 0, 1, and 2 are zeroed.
- */
- mant = spu_sel(spu_rlmaskqwbyte((vec_uint4)in, -11),
- VEC_SPLAT_U32(0x80000000),
- VEC_LITERAL(vec_uint4, 0,0,0xFF,0x800000FF));
-
- /* Determine how many bits to shift the mantissa to correctly
- * align it into long long element 0.
- */
- exp = spu_and(spu_rlmask((vec_int4)in, -23), 0xFF);
- shift = spu_extract(spu_add(exp, -94), 0);
-
- /* Algn mantissa bits
- */
- mant = spu_slqwbytebc(spu_slqw(mant, shift), shift);
-
- /* Perform round by adding 1 if the fraction bits are
- * greater than or equal to .5
- */
- mant = spu_add(mant, spu_and(spu_rlqw(mant, 1), VEC_LITERAL(vec_uint4, 0,1,0,0)));
-
- /* Compute the two's complement of the mantissa if the
- * input is negative.
- */
- sign = spu_maskw(spu_extract(spu_rlmaska((vec_int4)in, -31), 0));
-
- mant = spu_xor(mant, sign);
- borrow = spu_genb(mant, sign);
-
- borrow = spu_shuffle(borrow, borrow,
- VEC_LITERAL(vec_uchar16, 4,5,6,7, 192,192,192,192,
- 4,5,6,7, 192,192,192,192));
- mant = spu_subx(mant, sign, borrow);
-
- return (spu_extract((vec_llong2)(mant), 0));
-}
-
-#endif /* _LLROUNDF_H_ */
diff --git a/newlib/libm/machine/spu/headers/log.h b/newlib/libm/machine/spu/headers/log.h
deleted file mode 100644
index 9bb5e3bff..000000000
--- a/newlib/libm/machine/spu/headers/log.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "headers/logd2.h"
-#include "headers/dom_chkd_less_than.h"
-
-static __inline double _log(double x)
-{
- double res;
- vector double vx;
- vector double vc = { 0.0, 0.0 };
-
- vx = spu_promote(x, 0);
- res = spu_extract(_logd2(vx), 0);
-#ifndef _IEEE_LIBM
- dom_chkd_less_than(vx, vc);
-#endif
- return res;
-}
diff --git a/newlib/libm/machine/spu/headers/log10.h b/newlib/libm/machine/spu/headers/log10.h
deleted file mode 100644
index c3c6f9f80..000000000
--- a/newlib/libm/machine/spu/headers/log10.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "headers/log10d2.h"
-#include "headers/dom_chkd_less_than.h"
-
-static __inline double _log10(double x)
-{
- double res;
- vector double vx;
- vector double vc = { 0.0, 0.0 };
-
- vx = spu_promote(x, 0);
- res = spu_extract(_log10d2(vx), 0);
-#ifndef _IEEE_LIBM
- dom_chkd_less_than(vx, vc);
-#endif
- return res;
-}
diff --git a/newlib/libm/machine/spu/headers/log10d2.h b/newlib/libm/machine/spu/headers/log10d2.h
deleted file mode 100644
index 935a76cc6..000000000
--- a/newlib/libm/machine/spu/headers/log10d2.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _LOG10D2_H_
-#define _LOG10D2_H_ 1
-
-#include <spu_intrinsics.h>
-
-
-#include "log2d2.h"
-
-/*
- * FUNCTION
- * vector double _log10d2(vector double x)
- *
- * DESCRIPTION
- * _log10d2 computes log (base 10) for each of the double word
- * elements the input vector x. log10_v
- * is computed using log2d2 as follows:
- *
- * log10d2(x) = log2d2(x) / log2d2(10);
- */
-static __inline vector double _log10d2(vector double x)
-{
- return (spu_mul(_log2d2(x), spu_splats(0.301029995663981195213)));
-}
-
-#endif /* _LOG10D2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/log10f.h b/newlib/libm/machine/spu/headers/log10f.h
deleted file mode 100644
index 202cb7c0d..000000000
--- a/newlib/libm/machine/spu/headers/log10f.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _LOG10F_H_
-#define _LOG10F_H_ 1
-
-#include "log2f.h"
-
-/*
- * FUNCTION
- * float _log10f(float x)
- *
- * DESCRIPTION
- * _log10f computes log (base 10) of the input value x. log10
- * is computed using log2 as follows:
- *
- * log10f(x) = log2(x) / log2(10);
- */
-
-static __inline float _log10f(float x)
-{
- return (_log2f(x) * 0.30102999566398f);
-}
-
-#endif /* _LOG10F_H_ */
diff --git a/newlib/libm/machine/spu/headers/log1p.h b/newlib/libm/machine/spu/headers/log1p.h
deleted file mode 100644
index 758be8d37..000000000
--- a/newlib/libm/machine/spu/headers/log1p.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "headers/log1pd2.h"
-#include "headers/dom_chkd_less_than.h"
-
-static __inline double _log1p(double x)
-{
- double res;
- vector double vx;
- vector double vc = { -1.0, -1.0 };
-
- vx = spu_promote(x, 0);
- res = spu_extract(_log1pd2(vx), 0);
-#ifndef _IEEE_LIBM
- dom_chkd_less_than(vx, vc);
-#endif
- return res;
-}
diff --git a/newlib/libm/machine/spu/headers/log1pd2.h b/newlib/libm/machine/spu/headers/log1pd2.h
deleted file mode 100644
index 099f7b44e..000000000
--- a/newlib/libm/machine/spu/headers/log1pd2.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-
-#ifdef __SPU__
-#ifndef _LOG1PD2_H_
-#define _LOG1PD2_H_ 1
-
-#include <spu_intrinsics.h>
-#include "simdmath.h"
-
-#include "logd2.h"
-#include "divd2.h"
-
-
-
-#define LOG1PD2_P0 0.0000000000000000000000000e+00
-#define LOG1PD2_P1 1.0000000000000000000000000e+00
-#define LOG1PD2_P2 2.3771612265431403265836252e+00
-#define LOG1PD2_P3 2.0034423569559494104908026e+00
-#define LOG1PD2_P4 7.1309327316770110272159400e-01
-#define LOG1PD2_P5 9.8219761968547217301228613e-02
-#define LOG1PD2_P6 3.4385125174546914139650511e-03
-
-#define LOG1PD2_Q0 1.0000000000000000000000000e+00
-#define LOG1PD2_Q1 2.8771612265431403265836252e+00
-#define LOG1PD2_Q2 3.1086896368941925317130881e+00
-#define LOG1PD2_Q3 1.5583843494335058998956356e+00
-#define LOG1PD2_Q4 3.6047236436186669283898709e-01
-#define LOG1PD2_Q5 3.2620075387969869884496887e-02
-#define LOG1PD2_Q6 6.8047193336239690346356479e-04
-
-
-/*
- * FUNCTION
- * vector double _log1pd2(vector double x)
- *
- * DESCRIPTION
- * The function _log1pd2 computes the natural logarithm of x + 1
- * for each of the double word elements of x.
- *
- */
-
-static __inline vector double _log1pd2(vector double x)
-{
- vector double oned = spu_splats(1.0);
- vector double rangehi = spu_splats(0.35);
- vector double rangelo = spu_splats(0.0);
- vector unsigned long long use_log;
- vector double pr, qr;
- vector double eresult;
- vector double rresult;
- vector double result;
-
- /* Compiler Bug. Replace xbug with x when spu_cmp*() doesn't
- * modify it's arguments! */
- volatile vector double xbug = x;
- use_log = spu_or(spu_cmpgt(xbug, rangehi), spu_cmpgt(rangelo, xbug));
-
- /*
- * Calculate directly using log(x+1)
- */
- eresult = _logd2(spu_add(x, oned));
-
- /*
- * For x in [0.0,0.35], use a rational approximation.
- */
- pr = spu_madd(x, spu_splats(LOG1PD2_P6), spu_splats(LOG1PD2_P5));
- qr = spu_madd(x, spu_splats(LOG1PD2_Q6), spu_splats(LOG1PD2_Q5));
- pr = spu_madd(pr, x, spu_splats(LOG1PD2_P4));
- qr = spu_madd(qr, x, spu_splats(LOG1PD2_Q4));
- pr = spu_madd(pr, x, spu_splats(LOG1PD2_P3));
- qr = spu_madd(qr, x, spu_splats(LOG1PD2_Q3));
- pr = spu_madd(pr, x, spu_splats(LOG1PD2_P2));
- qr = spu_madd(qr, x, spu_splats(LOG1PD2_Q2));
- pr = spu_madd(pr, x, spu_splats(LOG1PD2_P1));
- qr = spu_madd(qr, x, spu_splats(LOG1PD2_Q1));
- pr = spu_madd(pr, x, spu_splats(LOG1PD2_P0));
- qr = spu_madd(qr, x, spu_splats(LOG1PD2_Q0));
- rresult = _divd2(pr, qr);
-
- /*
- * Select either direct calculation or rational approximation.
- */
- result = spu_sel(rresult, eresult, use_log);
-
- return result;
-}
-
-#endif /* _LOG1PD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/log1pf.h b/newlib/libm/machine/spu/headers/log1pf.h
deleted file mode 100644
index b2af48669..000000000
--- a/newlib/libm/machine/spu/headers/log1pf.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "headers/log1pf4.h"
-#include "headers/dom_chkf_less_than.h"
-
-static __inline float _log1pf(float x)
-{
- float res;
- vector float vx;
- vector float vc = { -1.0, -1.0, -1.0, -1.0 };
-
- vx = spu_promote(x, 0);
- res = spu_extract(_log1pf4(vx), 0);
-#ifndef _IEEE_LIBM
- dom_chkf_less_than(vx, vc);
-#endif
- return res;
-}
diff --git a/newlib/libm/machine/spu/headers/log1pf4.h b/newlib/libm/machine/spu/headers/log1pf4.h
deleted file mode 100644
index 0aa4f5c6c..000000000
--- a/newlib/libm/machine/spu/headers/log1pf4.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-
-#ifdef __SPU__
-#ifndef _LOG1PF4_H_
-#define _LOG1PF4_H_ 1
-
-#include <spu_intrinsics.h>
-#include "simdmath.h"
-
-#include "logf4.h"
-#include "divf4.h"
-
-/*
- * FUNCTION
- * vector float _log1pf4(vector float x)
- *
- * DESCRIPTION
- * The function _log1pf4 computes the natural logarithm of x + 1
- * for each of the float word elements of x.
- *
- *
- */
-
-#define LOG1PF4_P0 0.0000000000000000000000000e+00f
-#define LOG1PF4_P1 1.0000000000000000000000000e+00f
-#define LOG1PF4_P2 1.4220868022897381610647471e+00f
-#define LOG1PF4_P3 5.4254553902256308361984338e-01f
-#define LOG1PF4_P4 4.5971908823142115796400731e-02f
-
-#define LOG1PF4_Q0 1.0000000000000000000000000e+00f
-#define LOG1PF4_Q1 1.9220868007537357247116461e+00f
-#define LOG1PF4_Q2 1.1702556461286610645089468e+00f
-#define LOG1PF4_Q3 2.4040413392943396631018516e-01f
-#define LOG1PF4_Q4 1.0637426466449625625521058e-02f
-
-
-static __inline vector float _log1pf4(vector float x)
-{
- vector float onef = spu_splats(1.0f);
- vector float range = spu_splats(0.35f);
- vector unsigned int use_log;
- vector float pr, qr;
- vector float eresult;
- vector float rresult;
- vector float result;
-
- use_log = spu_cmpabsgt(x, range);
-
- /*
- * Calculate directly using log(x+1)
- */
- eresult = _logf4(spu_add(x, onef));
-
- /*
- * For x in [-0.35,0.35], use a rational approximation.
- */
- pr = spu_madd(x, spu_splats((float)LOG1PF4_P4), spu_splats((float)LOG1PF4_P3));
- qr = spu_madd(x, spu_splats((float)LOG1PF4_Q4), spu_splats((float)LOG1PF4_Q3));
- pr = spu_madd(pr, x, spu_splats((float)LOG1PF4_P2));
- qr = spu_madd(qr, x, spu_splats((float)LOG1PF4_Q2));
- pr = spu_madd(pr, x, spu_splats((float)LOG1PF4_P1));
- qr = spu_madd(qr, x, spu_splats((float)LOG1PF4_Q1));
- pr = spu_madd(pr, x, spu_splats((float)LOG1PF4_P0));
- qr = spu_madd(qr, x, spu_splats((float)LOG1PF4_Q0));
- rresult = _divf4(pr, qr);
-
- /*
- * Select either direct calculation or rational approximation.
- */
- result = spu_sel(rresult, eresult, use_log);
-
- return result;
-}
-
-#endif /* _LOG1PF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/log2.h b/newlib/libm/machine/spu/headers/log2.h
deleted file mode 100644
index 696bf9fae..000000000
--- a/newlib/libm/machine/spu/headers/log2.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "headers/log2d2.h"
-#include "headers/dom_chkd_less_than.h"
-
-static __inline double _log2(double x)
-{
- double res;
- vector double vx;
- vector double vc = { 0.0, 0.0 };
-
- vx = spu_promote(x, 0);
- res = spu_extract(_log2d2(vx), 0);
-#ifndef _IEEE_LIBM
- dom_chkd_less_than(vx, vc);
-#endif
- return res;
-}
diff --git a/newlib/libm/machine/spu/headers/log2d2.h b/newlib/libm/machine/spu/headers/log2d2.h
deleted file mode 100644
index 25841af32..000000000
--- a/newlib/libm/machine/spu/headers/log2d2.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-
-#ifdef __SPU__
-#ifndef _LOG2D2_H_
-#define _LOG2D2_H_ 1
-
-#include <spu_intrinsics.h>
-
-/*
- * FUNCTION
- * vector double _log2d2(vector double x)
- *
- * DESCRIPTION
- * The function _log2d2 computes log base 2 of the input x for each
- * of the double word elements of x. The log2 is decomposed
- * into two parts, log2 of the exponent and log2 of the
- * fraction. The log2 of the fraction is approximated
- * using a 21st order polynomial of the form:
- *
- * __20_
- * \
- * log(x) = x * (1 + \ (Ci * x^i))
- * /
- * /____
- * i=0
- *
- * for x in the range 0-1.
- */
-#define LOG_C00
-#define LOG_C01
-#define LOG_C02
-
-static __inline vector double _log2d2(vector double vx)
-{
- vec_int4 addval;
- vec_ullong2 exp_mask = spu_splats(0x7FF0000000000000ULL);
- vec_double2 vy, vxw;
- vec_double2 v1 = spu_splats(1.0);
- vec_double2 x2, x4, x8, x10, p1, p2;
-
- /* Extract the fraction component of input by forcing
- * its exponent so that input is in the range [1.0, 2.0)
- * and then subtract 1.0 to force it in the range
- * [0.0, 1.0).
- */
- vxw = spu_sub(spu_sel(vx, v1, exp_mask), v1);
-
- /* Compute the log2 of the exponent as exp - 1023.
- */
- addval = spu_add(spu_rlmask((vec_int4)vx, -20), -1023);
-
- /* Compute the log2 of the fractional component using a 21st
- * order polynomial. The polynomial is evaluated in two halves
- * to improve efficiency.
- */
- p1 = spu_madd(spu_splats(3.61276447184348752E-05), vxw, spu_splats(-4.16662127033480827E-04));
- p2 = spu_madd(spu_splats(-1.43988260692073185E-01), vxw, spu_splats(1.60245637034704267E-01));
- p1 = spu_madd(vxw, p1, spu_splats(2.28193656337578229E-03));
- p2 = spu_madd(vxw, p2, spu_splats(-1.80329036970820794E-01));
- p1 = spu_madd(vxw, p1, spu_splats(-7.93793829370930689E-03));
- p2 = spu_madd(vxw, p2, spu_splats(2.06098446037376922E-01));
- p1 = spu_madd(vxw, p1, spu_splats(1.98461565426430164E-02));
- p2 = spu_madd(vxw, p2, spu_splats(-2.40449108727688962E-01));
- p1 = spu_madd(vxw, p1, spu_splats(-3.84093543662501949E-02));
- p2 = spu_madd(vxw, p2, spu_splats(2.88539004851839364E-01));
- p1 = spu_madd(vxw, p1, spu_splats(6.08335872067172597E-02));
- p2 = spu_madd(vxw, p2, spu_splats(-3.60673760117245982E-01));
- p1 = spu_madd(vxw, p1, spu_splats(-8.27937055456904317E-02));
- p2 = spu_madd(vxw, p2, spu_splats(4.80898346961226595E-01));
- p1 = spu_madd(vxw, p1, spu_splats(1.01392360727236079E-01));
- p2 = spu_madd(vxw, p2, spu_splats(-7.21347520444469934E-01));
- p1 = spu_madd(vxw, p1, spu_splats(-1.16530490533844182E-01));
- p2 = spu_madd(vxw, p2, spu_splats(0.44269504088896339E+00));
- p1 = spu_madd(vxw, p1, spu_splats(1.30009193360025350E-01));
-
- x2 = spu_mul(vxw, vxw);
- x4 = spu_mul(x2, x2);
- x8 = spu_mul(x4, x4);
- x10 = spu_mul(x8, x2);
-
- vy = spu_madd(spu_madd(x10, p1, p2), vxw, vxw);
-
- /* Add the log2(exponent) and the log2(fraction) to
- * compute the final result.
- */
- vy = spu_add(vy, spu_extend(spu_convtf(addval, 0)));
-
- vxw = spu_extend(spu_convtf(addval, 20));
-
- return(vy);
-}
-
-#endif /* _LOG2D2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/log2f.h b/newlib/libm/machine/spu/headers/log2f.h
deleted file mode 100644
index 26717c7c0..000000000
--- a/newlib/libm/machine/spu/headers/log2f.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _LOG2F_H_
-#define _LOG2F_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/dom_chkf_less_than.h"
-
-/*
- * FUNCTION
- * float _log2f(float x)
- *
- * DESCRIPTION
- * _log2f computes log (base 2) of the input value x. The log2f
- * function is approximated as a polynomial of order 8
- * (C. Hastings, Jr, 1955).
- *
- * __8__
- * \
- * \
- * log2f(1+x) = / Ci*x^i
- * /____
- * i=1
- *
- * for x in the range 0.0 to 1.0
- *
- * C1 = 1.4426898816672
- * C2 = -0.72116591947498
- * C3 = 0.47868480909345
- * C4 = -0.34730547155299
- * C5 = 0.24187369696082
- * C6 = -0.13753123777116
- * C7 = 0.052064690894143
- * C8 = -0.0093104962134977
- *
- * This function assumes that x is a non-zero positive value.
- */
-
-static __inline float _log2f(float x)
-{
- union {
- unsigned int ui;
- float f;
- } in;
- int exponent;
- float result;
- float x2, x4;
- float hi, lo;
- vector float vx;
- vector float vc = { 0.0, 0.0, 0.0, 0.0 };
-
- in.f = x;
-
- /* Extract the exponent from the input X.
- */
- exponent = (signed)((in.ui >> 23) & 0xFF) - 127;
-
- /* Compute the remainder after removing the exponent.
- */
- in.ui -= exponent << 23;
-
- /* Calculate the log2 of the remainder using the polynomial
- * approximation.
- */
- x = in.f - 1.0f;
-
- /* Instruction counts can be reduced if the polynomial was
- * computed entirely from nested (dependent) fma's. However,
- * to reduce the number of pipeline stalls, the polygon is evaluated
- * in two halves (hi amd lo).
- */
- x2 = x * x;
- x4 = x2 * x2;
- hi = -0.0093104962134977f*x + 0.052064690894143f;
- hi = hi*x - 0.13753123777116f;
- hi = hi*x + 0.24187369696082f;
- hi = hi*x - 0.34730547155299f;
- lo = 0.47868480909345f *x - 0.72116591947498f;
- lo = lo*x + 1.4426898816672f;
- lo = lo*x;
- result = hi*x4 + lo;
-
- /* Add the exponent back into the result.
- */
- result += (float)(exponent);
-
-#ifndef _IEEE_LIBM
- vx = spu_promote(x, 0);
- dom_chkf_less_than(vx, vc);
-#endif
- return (result);
-}
-
-#endif /* _LOG2F_H_ */
diff --git a/newlib/libm/machine/spu/headers/log2f4.h b/newlib/libm/machine/spu/headers/log2f4.h
deleted file mode 100644
index 3853e91bb..000000000
--- a/newlib/libm/machine/spu/headers/log2f4.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _LOG2F4_H_
-#define _LOG2F4_H_ 1
-
-#include <spu_intrinsics.h>
-
-/*
- * FUNCTION
- * vector float _log2f4(vector float x)
- *
- * DESCRIPTION
- * The _log2f4 function computes log (base 2) on a vector if inputs
- * values x. The _log2f4 function is approximated as a polynomial of
- * order 8 (C. Hastings, Jr, 1955).
- *
- * __8__
- * \
- * \
- * log2f(1+x) = / Ci*x^i
- * /____
- * i=1
- *
- * for x in the range 0.0 to 1.0
- *
- * C1 = 1.4426898816672
- * C2 = -0.72116591947498
- * C3 = 0.47868480909345
- * C4 = -0.34730547155299
- * C5 = 0.24187369696082
- * C6 = -0.13753123777116
- * C7 = 0.052064690894143
- * C8 = -0.0093104962134977
- *
- * This function assumes that x is a non-zero positive value.
- *
- */
-static __inline vector float _log2f4(vector float x)
-{
- vector signed int exponent;
- vector float result;
- vector float x2, x4;
- vector float hi, lo;
-
- /* Extract the exponent from the input X.
- */
- exponent = (vector signed int)spu_and(spu_rlmask((vector unsigned int)(x), -23), 0xFF);
- exponent = spu_add(exponent, -127);
-
- /* Compute the remainder after removing the exponent.
- */
- x = (vector float)spu_sub((vector signed int)(x), spu_sl(exponent, 23));
-
- /* Calculate the log2 of the remainder using the polynomial
- * approximation.
- */
- x = spu_sub(x, spu_splats(1.0f));
-
- /* Instruction counts can be reduced if the polynomial was
- * computed entirely from nested (dependent) fma's. However,
- * to reduce the number of pipeline stalls, the polygon is evaluated
- * in two halves (hi amd lo).
- */
- x2 = spu_mul(x, x);
- x4 = spu_mul(x2, x2);
-
- hi = spu_madd(x, spu_splats(-0.0093104962134977f), spu_splats(0.052064690894143f));
- hi = spu_madd(x, hi, spu_splats(-0.13753123777116f));
- hi = spu_madd(x, hi, spu_splats( 0.24187369696082f));
- hi = spu_madd(x, hi, spu_splats(-0.34730547155299f));
- lo = spu_madd(x, spu_splats(0.47868480909345f), spu_splats(-0.72116591947498f));
- lo = spu_madd(x, lo, spu_splats(1.4426898816672f));
- lo = spu_mul(x, lo);
- result = spu_madd(x4, hi, lo);
-
- /* Add the exponent back into the result.
- */
- result = spu_add(result, spu_convtf(exponent, 0));
-
- return (result);
-}
-
-#endif /* _LOG2F4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/logbf.h b/newlib/libm/machine/spu/headers/logbf.h
deleted file mode 100644
index b98256f19..000000000
--- a/newlib/libm/machine/spu/headers/logbf.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/logbf4.h"
-
-static __inline float _logbf(float x)
-{
- return spu_extract(_logbf4(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/logbf4.h b/newlib/libm/machine/spu/headers/logbf4.h
deleted file mode 100644
index 6b5321cac..000000000
--- a/newlib/libm/machine/spu/headers/logbf4.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2006,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _LOGBF4_H_
-#define _LOGBF4_H_ 1
-
-#include <spu_intrinsics.h>
-#include <vec_types.h>
-
-/*
- * FUNCTION
- * vector float _logbf4(vector float x)
- *
- * DESCRIPTION
- * The _logbf4 function returns a vector float that contains the exponent
- * of the corresponding elements of the input vector x. The exponent is
- * defined by:
- * x = frac * FLT_RADIX^exp, with frac in [1, FLT_RADIX).
- *
- * Special Cases:
- * x = 0, result is undefined.
- * x = NaN, result is NaN.
- * x = infinity, +infinity is returned.
- *
- */
-static __inline vector float _logbf4(vector float x)
-{
- vec_uint4 lzero = (vector unsigned int) {0, 0, 0, 0};
- vec_uint4 exp_mask = (vector unsigned int) {0xFF, 0xFF, 0xFF, 0xFF};
- vec_int4 exp_shift = (vector signed int) { -23, -23, -23, -23};
- vec_int4 exp_bias = (vector signed int) {-127, -127, -127, -127};
- vec_uint4 sign_mask = (vector unsigned int) {0x80000000, 0x80000000,
- 0x80000000, 0x80000000};
- vec_uint4 linf = (vector unsigned int) {0x7F800000, 0x7F800000,
- 0x7F800000, 0x7F800000};
- vec_uint4 lminf = (vector unsigned int) {0xFF800000, 0xFF800000,
- 0xFF800000, 0xFF800000};
- vec_uint4 exp;
- vec_uint4 xabs;
- vec_float4 exp_unbias;
-
-
- xabs = spu_andc((vec_uint4)x, sign_mask);
-
- exp = spu_and(spu_rlmask((vec_uint4)x, exp_shift), exp_mask);
- exp_unbias = spu_convtf(spu_add((vec_int4)exp, exp_bias), 0);
-
- /* Zero */
- exp_unbias = spu_sel(exp_unbias, (vec_float4)lminf, (vec_uint4)spu_cmpeq(xabs, lzero));
-
- /* NaN */
- exp_unbias = spu_sel(exp_unbias, x, (vec_uint4)spu_cmpgt(xabs, linf));
-
- /* Infinite */
- exp_unbias = spu_sel(exp_unbias, (vec_float4)linf, (vec_uint4)spu_cmpeq(xabs, linf));
-
- return (exp_unbias);
-}
-
-#endif /* _LOGBF4_H_ */
-
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/logd2.h b/newlib/libm/machine/spu/headers/logd2.h
deleted file mode 100644
index a770c3c46..000000000
--- a/newlib/libm/machine/spu/headers/logd2.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _LOGD2_H_
-#define _LOGD2_H_ 1
-
-#include <spu_intrinsics.h>
-#include "simdmath.h"
-#include "log2d2.h"
-
-
-/*
- * FUNCTION
- * vector double _logd2(vector double x)
- *
- * DESCRIPTION
- * The _logd2 function computes the natural log for each double word
- * element of the input x. _logd2 is computed using log2d2 as follows:
- *
- * logd2(x) = log2d2(x) / log2d2(e) = log2d2(x) * logd2(2)
- *
- */
-static __inline vector double _logd2(vector double x)
-{
- return (spu_mul(_log2d2(x), spu_splats(SM_LN2)));
-}
-
-#endif /* _LOGD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/logf.h b/newlib/libm/machine/spu/headers/logf.h
deleted file mode 100644
index e841d2135..000000000
--- a/newlib/libm/machine/spu/headers/logf.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _LOGF_H_
-#define _LOGF_H_ 1
-
-#include "log2f.h"
-
-/*
- * FUNCTION
- * float _logf(float x)
- *
- * DESCRIPTION
- * _logf computes the natural log (base e) of the input value x. log
- * is computed using log2 as follows:
- *
- * logf(x) = log2f(x) / log2f(e);
- */
-
-static __inline float _logf(float x)
-{
- return (_log2f(x) * 0.69314718055995f);
-}
-
-#endif /* _LOGF_H_ */
diff --git a/newlib/libm/machine/spu/headers/logf4.h b/newlib/libm/machine/spu/headers/logf4.h
deleted file mode 100644
index 3bd5d7935..000000000
--- a/newlib/libm/machine/spu/headers/logf4.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _LOGF4_H_
-#define _LOGF4_H_ 1
-
-#include "log2f4.h"
-
-/*
- * FUNCTION
- * vector float _logf4(vector float x)
- *
- * DESCRIPTION
- * The _logf4 function computes the natural log (base e) of the input
- * vector of values x. logf4 is computed using log2f4 as follows:
- *
- * logf4(x) = log2f4(x) / log2f4(e);
- *
- */
-static __inline vector float _logf4(vector float x)
-{
- return (spu_mul(_log2f4(x), spu_splats(0.69314718055995f)));
-}
-
-#endif /* _LOGF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/lrint.h b/newlib/libm/machine/spu/headers/lrint.h
deleted file mode 100644
index 818720a12..000000000
--- a/newlib/libm/machine/spu/headers/lrint.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _LRINT_H_
-#define _LRINT_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* Round the input to the nearest integer according to the current
- * rounding mode.
- */
-static __inline long int _lrint(double x)
-{
- vec_int4 out, sign;
- vec_double2 in, addend;
-
- in = spu_promote(x, 0);
-
- /* Add 2^53 affect a round to be performed by the hardware.
- */
- addend = spu_sel((vec_double2)(VEC_SPLAT_U64(0x4330000000000000ULL)),
- in, VEC_SPLAT_U64(0x8000000000000000ULL));
- out = (vec_int4)spu_rlqwbyte(spu_add(in, addend), 4);
-
- /* Correct the output sign.
- */
- sign = spu_rlmaska((vec_int4)in, -31);
-
- out = spu_sub(spu_xor(out, sign), sign);
-
- return ((long int)spu_extract(out, 0));
-}
-#endif /* _LRINT_H_ */
diff --git a/newlib/libm/machine/spu/headers/lrintf.h b/newlib/libm/machine/spu/headers/lrintf.h
deleted file mode 100644
index dc04227bb..000000000
--- a/newlib/libm/machine/spu/headers/lrintf.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _LRINTF_H_
-#define _LRINTF_H_ 1
-
-#include <spu_intrinsics.h>
-
-/* Round the input to the nearest integer according to the current
- * rounding mode. No special handling is performed when values are
- * outside the 32-bit range.
- */
-static __inline long int _lrintf(float x)
-{
- return ((long int)spu_extract(spu_convts(spu_promote(x, 0), 0), 0));
-}
-#endif /* _LRINTF_H_ */
diff --git a/newlib/libm/machine/spu/headers/lround.h b/newlib/libm/machine/spu/headers/lround.h
deleted file mode 100644
index 2a1e3269a..000000000
--- a/newlib/libm/machine/spu/headers/lround.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _LROUND_H_
-#define _LROUND_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* Round the input to the nearest integer value, rounding halfway cases
- * away from zero. No special handling is performed when values are
- * outside the 32-bit range.
- */
-
-static __inline long int _lround(double x)
-{
- int shift;
- vec_int4 exp;
- vec_uint4 mant, sign, mask, addend;
- vec_double2 in;
-
- in = spu_promote(x, 0);
-
- /* Determine how many bits to shift the mantissa to correctly
- * align it into long long element 0.
- */
- exp = spu_and(spu_rlmask((vec_int4)in, -20), 0x7FF);
- exp = spu_add(exp, -979);
- shift = spu_extract(exp, 0);
-
- mask = spu_cmpgt(exp, 0);
-
- /* Algn mantissa bits
- */
- mant = spu_sel(spu_rlmaskqwbyte((vec_uint4)in, -8), VEC_SPLAT_U32(0x00100000),
- VEC_LITERAL(vec_uint4, 0,0,0xFFF00000,0));
-
- mant = spu_slqwbytebc(spu_slqw(mant, shift), shift);
-
- /* Perform round by adding 1 if the fraction bits are
- * greater than or equal to .5
- */
- addend = spu_and(spu_rlqw(mant, 1), 1);
- mant = spu_and(spu_add(mant, addend), mask);
-
- /* Compute the two's complement of the mantissa if the
- * input is negative.
- */
- sign = (vec_uint4)spu_rlmaska((vec_int4)in, -31);
-
- mant = spu_sub(spu_xor(mant, sign), sign);
-
- return ((long int)spu_extract(mant, 0));
-}
-#endif /* _LROUND_H_ */
diff --git a/newlib/libm/machine/spu/headers/lroundf.h b/newlib/libm/machine/spu/headers/lroundf.h
deleted file mode 100644
index b9651a56a..000000000
--- a/newlib/libm/machine/spu/headers/lroundf.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _LROUNDF_H_
-#define _LROUNDF_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* Round the input to the nearest integer value, rounding halfway cases
- * away from zero. No special handling is performed when values are
- * outside the 32-bit range.
- */
-static __inline long int _lroundf(float x)
-{
- vec_int4 out;
- vec_float4 in, addend;
-
- in = spu_promote(x, 0);
-
- /* Add signed 0.5 */
- addend = spu_sel(VEC_SPLAT_F32(0.5f), in, VEC_SPLAT_U32(0x80000000));
- out = spu_convts(spu_add(in, addend), 0);
-
- return ((long int)spu_extract(out, 0));
-}
-#endif /* _LROUNDF_H_ */
diff --git a/newlib/libm/machine/spu/headers/nearbyint.h b/newlib/libm/machine/spu/headers/nearbyint.h
deleted file mode 100644
index beef45932..000000000
--- a/newlib/libm/machine/spu/headers/nearbyint.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _NEARBYINT_H_
-#define _NEARBYINT_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* Round the input to the nearest integer according to the current
- * rounding mode without raising an inexact exception.
- */
-static __inline double _nearbyint(double x)
-{
- vec_uint4 fpscr;
- vec_ullong2 sign = VEC_SPLAT_U64(0x8000000000000000ULL);
- vec_double2 in, out, addend;
-
- fpscr = spu_mffpscr();
-
- in = spu_promote(x, 0);
-
- /* Add 2^53 and then subtract 2^53 to affect a round to be performed by the
- * hardware. Also preserve the input sign so that negative inputs that
- * round to zero generate a -0.0.
- */
- addend = spu_sel((vec_double2)(VEC_SPLAT_U64(0x4330000000000000ULL)),
- in, sign);
- out = spu_sel(spu_sub(spu_add(in, addend), addend), in, sign);
-
- spu_mtfpscr(fpscr);
-
- return (spu_extract(out, 0));
-}
-#endif /* _NEARBYINT_H_ */
diff --git a/newlib/libm/machine/spu/headers/nearbyintf.h b/newlib/libm/machine/spu/headers/nearbyintf.h
deleted file mode 100644
index b82572022..000000000
--- a/newlib/libm/machine/spu/headers/nearbyintf.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/nearbyintf4.h"
-
-static __inline float _nearbyintf(float x)
-{
- return spu_extract(_nearbyintf4(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/nearbyintf4.h b/newlib/libm/machine/spu/headers/nearbyintf4.h
deleted file mode 100644
index eb97ab4f5..000000000
--- a/newlib/libm/machine/spu/headers/nearbyintf4.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2006,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _NEARBYINTF4_H_
-#define _NEARBYINTF4_H_ 1
-
-#include "truncf4.h"
-
-/*
- * FUNCTION
- * vector float _nearbyintf4(vector float x)
- *
- * DESCRIPTION
- * The SPU doesn't support directed rounding. Within the simdmath
- * library, nearbyintf4 is aliased to truncf4. This header merely
- * provides inlinable compatibility
- *
- */
-static __inline vector float _nearbyintf4(vector float x)
-{
- return _truncf4(x);
-}
-#endif /* _NEARBYINTF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/nextafter.h b/newlib/libm/machine/spu/headers/nextafter.h
deleted file mode 100644
index 0dfbb8285..000000000
--- a/newlib/libm/machine/spu/headers/nextafter.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/nextafterd2.h"
-
-static __inline double _nextafter(double x, double y)
-{
- return spu_extract(_nextafterd2(spu_promote(x, 0), spu_promote(y, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/nextafterd2.h b/newlib/libm/machine/spu/headers/nextafterd2.h
deleted file mode 100644
index aac9408a1..000000000
--- a/newlib/libm/machine/spu/headers/nextafterd2.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _NEXTAFTERD2_H_
-#define _NEXTAFTERD2_H_ 1
-
-#include <spu_intrinsics.h>
-
-/*
- * FUNCTION
- * vector double _nextafterd2(vector double x, vector double y)
- *
- * DESCRIPTION
- * The nextafterf4 function returns a vector containing the next representable
- * floating-point number after the element of x, in the direction of the
- * corresponding element y.
- *
- * Special Cases:
- * - nextafter(NaN, y) = NaN
- * - nextafter(x, NaN) = NaN
- * - x = largest finite value, y = infinity, result is undefined
- * - x = largest finite negative value, y = -infinity, result is undefined
- * - x != y, and result = 0, considered an underflow
- *
- */
-
-static __inline vector double _nextafterd2(vector double x, vector double y)
-{
- vec_double2 n1ulp = (vec_double2)spu_splats(0x8000000000000001ull);
- vector unsigned char mov_carry = {0x80,0x80,0x80, 7, 0x80,0x80,0x80,0x80,
- 0x80,0x80,0x80,15, 0x80,0x80,0x80,0x80};
- vec_double2 zerod = spu_splats(0.0);
- vec_llong2 one = spu_splats(1ll);
- vec_ullong2 xlt0, xgty, xeqy, xeq0;
- vec_llong2 xllong;
- vec_int4 carry;
- vec_llong2 delta, deltap1;
- vec_double2 result;
-
- /* Compiler Bug. Replace xtmp/ytmp with x/y when spu_cmpgt(x,y) doesn't change x/y!*/
- volatile vec_double2 xtmp = x;
- volatile vec_double2 ytmp = y;
-
- /*
- * The idea here is to treat x as a signed long long value, which allows us to
- * add or subtact one to/from it to get the next representable value.
- */
-
- xeq0 = spu_cmpeq(xtmp, zerod);
- xlt0 = spu_cmpgt(zerod, xtmp);
- xeqy = spu_cmpeq(xtmp, ytmp);
- xgty = spu_cmpgt(xtmp, ytmp);
-
- /* If x = -0.0, set x = 0.0 */
- x = spu_andc(x, (vec_double2)xeq0);
-
- xllong = (vec_llong2)x;
-
- /* Determine value to add to x */
- delta = (vec_llong2)spu_xor(xgty, xlt0);
-
- //deltap1 = delta + one;
- carry = spu_genc((vec_int4)delta, (vec_int4)one);
- carry = spu_shuffle(carry, carry, mov_carry);
- deltap1 = (vec_llong2)spu_addx((vec_int4)delta, (vec_int4)one, (vec_int4)carry);
-
- delta = spu_sel(deltap1, delta, (vec_ullong2)delta);
-
- //xllong = xllong + delta;
- carry = spu_genc((vec_int4)xllong, (vec_int4)delta);
- carry = spu_shuffle(carry, carry, mov_carry);
- xllong = (vec_llong2)spu_addx((vec_int4)xllong, (vec_int4)delta, (vec_int4)carry);
-
- /* Fix the case of x = 0, and answer should be -1 ulp */
- result = spu_sel((vec_double2)xllong, n1ulp, spu_and((vec_ullong2)delta, xeq0));
-
- /*
- * Special Cases
- */
-
- /* x = y */
- result = spu_sel(result, y, xeqy);
-
- return result;
-}
-
-#endif /* _NEXTAFTERD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/nextafterf.h b/newlib/libm/machine/spu/headers/nextafterf.h
deleted file mode 100644
index a8c0418cf..000000000
--- a/newlib/libm/machine/spu/headers/nextafterf.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/nextafterf4.h"
-
-static __inline float _nextafterf(float x, float y)
-{
- return spu_extract(_nextafterf4(spu_promote(x, 0), spu_promote(y, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/nextafterf4.h b/newlib/libm/machine/spu/headers/nextafterf4.h
deleted file mode 100644
index 4493db58b..000000000
--- a/newlib/libm/machine/spu/headers/nextafterf4.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _NEXTAFTERF4_H_
-#define _NEXTAFTERF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-/*
- * FUNCTION
- * vector float _nextafterf4(vector float x, vector float y)
- *
- * DESCRIPTION
- * The nextafterf4 function returns a vector containing the next representable
- * floating-point number after the element of x, in the direction of the
- * corresponding element y.
- *
- * Special Cases:
- * - Infinity and NaN are not supported in single-precision on SPU. They are treated
- * as normal numbers.
- * - x != y, and result = 0 is considered an underflow.
- *
- *
- */
-
-static __inline vector float _nextafterf4(vector float x, vector float y)
-{
- vec_float4 n1ulp = (vec_float4)spu_splats(0x80000001);
- vec_float4 zerof = spu_splats(0.0f);
- vec_int4 one = spu_splats(1);
- vec_uint4 xlt0, xgty, xeqy, xeq0;
- vec_int4 xint;
- vec_int4 delta, deltap1;
- vec_float4 result;
-
- /*
- * The idea here is to treat x as a signed int value, which allows us to
- * add or subtact one to/from it to get the next representable value.
- */
-
- xeq0 = spu_cmpeq(x, zerof);
- xlt0 = spu_cmpgt(zerof, x);
- xeqy = spu_cmpeq(x, y);
- xgty = spu_cmpgt(x, y);
-
- /* If x = -0.0, set x = 0.0 */
- x = spu_andc(x, (vec_float4)xeq0);
-
- xint = (vec_int4)x;
-
- /* Determine value to add to x */
- delta = (vec_int4)spu_xor(xgty, xlt0);
- deltap1 = spu_add(delta,one);
- delta = spu_sel(deltap1, delta, (vec_uint4)delta);
-
- xint = spu_add(xint, delta);
-
- /* Fix the case of x = 0, and answer should be -1 ulp */
- result = spu_sel((vec_float4)xint, n1ulp, spu_and((vec_uint4)delta, xeq0));
-
- /*
- * Special Cases
- */
-
- /* x = y */
- result = spu_sel(result, y, xeqy);
-
- return result;
-
-}
-
-#endif /* _NEXTAFTERF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/pow.h b/newlib/libm/machine/spu/headers/pow.h
deleted file mode 100644
index 224d2f402..000000000
--- a/newlib/libm/machine/spu/headers/pow.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/powd2.h"
-
-static __inline double _pow(double x, double y)
-{
- return spu_extract(_powd2(spu_promote(x, 0), spu_promote(y, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/powd2.h b/newlib/libm/machine/spu/headers/powd2.h
deleted file mode 100644
index bbcafdfcb..000000000
--- a/newlib/libm/machine/spu/headers/powd2.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _POWD2_H_
-#define _POWD2_H_ 1
-
-#include "exp2d2.h"
-#include "log2d2.h"
-
-/*
- * FUNCTION
- * vector double _powd2(vector double x, vector double y)
- *
- * DESCRIPTION
- * The _powd2 function computes x raised to the power y for the set of
- * vectors. The powd2 function is computed as by decomposing
- * the problem into:
- *
- * x^y = 2^(y*log2(x))
- *
- *
- */
-static __inline vector double _powd2(vector double x, vector double y)
-{
- vec_uchar16 splat_hi = (vec_uchar16) { 0,1,2,3,0,1,2,3, 8,9,10,11, 8,9,10,11 };
- vec_int4 exp, shift;
- vec_uint4 sign = (vec_uint4) { 0x80000000, 0, 0x80000000, 0 };
- vec_uint4 or_mask, and_mask, evenmask, intmask;
- vec_double2 in_hi;
- vector double signmask = spu_splats(-0.0);
- vector signed int error = spu_splats(-1);
- vector double zero = spu_splats(0.0);
- vector unsigned int y_is_int, y_is_odd, y_is_even;
- vector unsigned int x_is_neg;
- vector double xabs, xsign;
- vector double out;
-
-
- xsign = spu_and(x, signmask);
- xabs = spu_andc(x, signmask);
- x_is_neg = (vec_uint4)spu_cmpgt(zero, x);
-
-
- /* First we solve assuming x was non-negative */
- out = _exp2d2(spu_mul(y, _log2d2(xabs)));
-
- in_hi = spu_shuffle(y, y, splat_hi);
- exp = spu_and(spu_rlmask((vec_int4)in_hi, -20), 0x7FF);
-
- /* Determine if y is an integer */
- shift = spu_sub(((vec_int4) { 1023, 1043, 1023, 1043 }), exp);
- or_mask = spu_andc(spu_cmpgt(shift, 0), sign);
- and_mask = spu_rlmask(((vec_uint4) { 0xFFFFF, -1, 0xFFFFF, -1 }), shift);
- intmask = spu_or(spu_and(and_mask, spu_cmpgt(shift, -32)), or_mask);
- y_is_int = (vec_uint4)spu_cmpeq(y, spu_andc(y, (vec_double2)(intmask)));
-
- /* Determine if y is an even integer */
- shift = spu_sub(((vec_int4) { 1024, 1044, 1024, 1044 }), exp);
- or_mask = spu_andc(spu_cmpgt(shift, 0), sign);
- and_mask = spu_rlmask(((vec_uint4) { 0xFFFFF, -1, 0xFFFFF, -1 }), shift);
- evenmask = spu_or(spu_and(and_mask, spu_cmpgt(shift, -32)), or_mask);
- y_is_even = (vec_uint4)spu_cmpeq(y, spu_andc(y, (vec_double2)(evenmask)));
-
- y_is_odd = spu_andc(y_is_int, y_is_even);
-
-
- /* Special Cases
- */
-
- /* x < 0 is only ok when y integer */
- out = spu_sel(out, (vec_double2)error, (vec_ullong2)spu_andc(x_is_neg, y_is_int));
-
- /* Preserve the sign of x if y is an odd integer */
- out = spu_sel(out, spu_or(out, xsign), (vec_ullong2)y_is_odd);
-
- /* x = anything, y = +/- 0, returns 1 */
- out = spu_sel(out, spu_splats(1.0), spu_cmpabseq(y, zero));
-
- return(out);
-}
-
-#endif /* _POWD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/powf.h b/newlib/libm/machine/spu/headers/powf.h
deleted file mode 100644
index fb0f98c43..000000000
--- a/newlib/libm/machine/spu/headers/powf.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/powf4.h"
-
-static __inline double _powf(float x, float y)
-{
- return spu_extract(_powf4(spu_promote(x, 0), spu_promote(y, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/powf4.h b/newlib/libm/machine/spu/headers/powf4.h
deleted file mode 100644
index 4fd2a229b..000000000
--- a/newlib/libm/machine/spu/headers/powf4.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _POWF4_H_
-#define _POWF4_H_ 1
-
-#include <spu_intrinsics.h>
-#include <vec_types.h>
-
-#include "exp2f4.h"
-#include "log2f4.h"
-
-/*
- * FUNCTION
- * vector float _powf4(vector float x, vector float y)
- *
- * DESCRIPTION
- * The _powf4 function computes x raised to the power y for the set of
- * vectors. The powf4 function is computed as by decomposing
- * the problem into:
- *
- * x^y = 2^(y*log2(x))
- *
- */
-static __inline vector float _powf4(vector float x, vector float y)
-{
- vec_uint4 y_exp;
- vec_uint4 y_mantissa;
- vec_uint4 mant_shift;
- vec_uint4 y_is_int;
- vec_uint4 y_is_odd;
- vec_uint4 x_sign_bit;
- vec_uint4 zero = (vec_uint4)spu_splats(0);
- vec_uint4 bit0 = (vec_uint4)spu_splats(0x80000000);
- vec_int4 error = spu_splats(-1);
- vec_float4 out;
-
- y_exp = spu_and(spu_rlmask((vec_uint4)y, -23), 0x000000FF);
-
- /* Need the implied bit in the mantissa to catch
- * y = 1 case later
- */
- y_mantissa = spu_or(spu_sl((vec_uint4)y, (unsigned int)8), bit0);
-
- x_sign_bit = spu_and((vec_uint4)x, bit0);
-
- /* We are going to shift the mantissa over enough to
- * determine if we have an integer.
- */
- mant_shift = spu_add(y_exp, -127);
-
-
- /* Leave the lowest-order integer bit of mantissa on the
- * high end so we can see if the integer is odd.
- */
- y_mantissa = spu_sl(y_mantissa, mant_shift);
-
- y_is_int = spu_cmpeq(spu_andc(y_mantissa, bit0), 0);
- y_is_int = spu_and(y_is_int, spu_cmpgt(y_exp, 126));
-
- y_is_odd = spu_and(spu_cmpeq(y_mantissa, bit0), y_is_int);
-
- out = _exp2f4(spu_mul(y, _log2f4(spu_andc(x, (vec_float4)bit0))));
-
- /* x < 0 is only ok when y integer
- */
- out = spu_sel(out, (vec_float4)error,
- spu_andc(spu_cmpeq(x_sign_bit, bit0), y_is_int));
-
- /* Preserve the sign of x if y is an odd integer
- */
- out = spu_sel(out, spu_or(out, (vec_float4)x_sign_bit), y_is_odd);
-
- /* x = anything, y = +/- 0, returns 1
- */
- out = spu_sel(out, spu_splats(1.0f), spu_cmpabseq(y, (vec_float4)zero));
-
- return(out);
-}
-
-#endif /* _POWF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/recipd2.h b/newlib/libm/machine/spu/headers/recipd2.h
deleted file mode 100644
index b53d4efc8..000000000
--- a/newlib/libm/machine/spu/headers/recipd2.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _RECIPD2_H_
-#define _RECIPD2_H_ 1
-
-#include <spu_intrinsics.h>
-
-
-/*
- * FUNCTION
- * vector double _recipd2(vector double value)
- *
- * DESCRIPTION
- * The _recipd2 function inverts "value" and returns the result.
- * Computation is performed using the single precision reciprocal
- * estimate and interpolate instructions to produce a 12 accurate
- * estimate.
- *
- * One (1) iteration of a Newton-Raphson is performed to improve
- * accuracy to single precision floating point. Two additional double
- * precision iterations are needed to achieve a full double
- * preicision result.
- *
- * The Newton-Raphson iteration is of the form:
- * a) X[i+1] = X[i] * (2.0 - b*X[i])
- * or
- * b) X[i+1] = X[i] + X[i]*(1.0 - X[i]*b)
- * where b is the input value to be inverted
- *
- * The later (b) form improves the accuracy to 99.95% correctly rounded.
- */
-static __inline vector double _recipd2(vector double value_in)
-{
- vec_float4 x0;
- vec_float4 value;
- vec_float4 one = spu_splats(1.0f);
- vec_double2 one_d = spu_splats(1.0);
- vec_double2 x1, x2, x3;
- vec_double2 scale;
- vec_double2 exp, value_d;
- vec_ullong2 expmask = spu_splats(0x7FF0000000000000ULL);
- vec_ullong2 is0inf;
-
-#ifdef __SPU_EDP__
- vec_ullong2 isdenorm;
- vec_ullong2 expmask_minus1 = spu_splats(0x7FE0000000000000ULL);
-
- /* Determine special input values. For example, if the input is a denorm, infinity or 0 */
-
- isdenorm = spu_testsv(value_in, (SPU_SV_POS_DENORM | SPU_SV_NEG_DENORM));
- is0inf = spu_testsv(value_in, (SPU_SV_NEG_ZERO | SPU_SV_POS_ZERO |
- SPU_SV_NEG_INFINITY | SPU_SV_POS_INFINITY));
-
- /* Scale the divisor to correct for double precision floating
- * point exponents that are out of single precision range.
- */
- exp = spu_and(value_in, (vec_double2)expmask);
- scale = spu_xor(exp, (vec_double2)spu_sel(expmask, expmask_minus1, isdenorm));
- value_d = spu_mul(value_in, scale);
- value = spu_roundtf(value_d);
-
- /* Perform reciprocal with 1 single precision and 2 double precision
- * Newton-Raphson iterations.
- */
- x0 = spu_re(value);
- x1 = spu_extend(spu_madd(spu_nmsub(value, x0, one), x0, x0));
- x2 = spu_madd(spu_nmsub(value_d, x1, one_d), x1, x1);
- x3 = spu_madd(spu_nmsub(value_d, x2, one_d), x2, x2);
- x3 = spu_sel(spu_mul(x3, scale), spu_xor(value_in, (vector double)expmask), is0inf);
-
-#else /* !__SPU_EDP__ */
-
- vec_uint4 isinf, iszero, isdenorm0;
- vec_double2 value_abs;
- vec_double2 sign = spu_splats(-0.0);
- vec_double2 denorm_scale = (vec_double2)spu_splats(0x4330000000000000ULL);
- vec_double2 exp_53 = (vec_double2)spu_splats(0x0350000000000000ULL);
- vec_uchar16 splat_hi = (vec_uchar16){0,1,2,3, 0,1,2,3, 8,9,10,11, 8,9,10,11};
- vec_uchar16 swap = (vec_uchar16){4,5,6,7, 0,1,2,3, 12,13,14,15, 8,9,10,11};
-
- value_abs = spu_andc(value_in, sign);
- exp = spu_and(value_in, (vec_double2)expmask);
-
- /* Determine if the input is a special value. These include:
- * denorm - then we must coerce it to a normal value.
- * zero - then we must return an infinity
- * infinity - then we must return a zero.
- */
- isdenorm0 = spu_cmpeq(spu_shuffle((vec_uint4)exp, (vec_uint4)exp, splat_hi), 0);
-
- isinf = spu_cmpeq((vec_uint4)value_abs, (vec_uint4)expmask);
- iszero = spu_cmpeq((vec_uint4)value_abs, 0);
- isinf = spu_and(isinf, spu_shuffle(isinf, isinf, swap));
- iszero = spu_and(iszero, spu_shuffle(iszero, iszero, swap));
- is0inf = (vec_ullong2)spu_or(isinf, iszero);
-
- /* If the inputs is a denorm, we must first convert it to a normal number since
- * arithmetic operations on denormals produces 0 on Cell/B.E.
- */
- value_d = spu_sub(spu_or(value_abs, exp_53), exp_53);
- value_d = spu_sel(value_abs, value_d, (vec_ullong2)isdenorm0);
-
- /* Scale the divisor to correct for double precision floating
- * point exponents that are out of single precision range.
- */
- scale = spu_xor(spu_and(value_d, (vec_double2)expmask), (vec_double2)expmask);
- value_d = spu_mul(value_d, scale);
- value = spu_roundtf(value_d);
-
- /* Perform reciprocal with 1 single precision and 2 double precision
- * Newton-Raphson iterations. The bias is removed after the single
- * precision iteration.
- */
- x0 = spu_re(value);
- x1 = spu_extend(spu_madd(spu_nmsub(value, x0, one), x0, x0));
- x2 = spu_madd(spu_nmsub(value_d, x1, one_d), x1, x1);
- x3 = spu_madd(spu_nmsub(value_d, x2, one_d), x2, x2);
- x3 = spu_mul(x3, spu_sel(scale, value_in, (vec_ullong2)sign));
- x3 = spu_sel(x3, spu_mul(x3, denorm_scale), (vec_ullong2)isdenorm0);
- x3 = spu_sel(x3, spu_xor(value_in, (vector double)expmask), is0inf);
-
-#endif /* __SPU_EDP__ */
-
- return (x3);
-}
-
-#endif /* _RECIPD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/recipf4.h b/newlib/libm/machine/spu/headers/recipf4.h
deleted file mode 100644
index d313c022e..000000000
--- a/newlib/libm/machine/spu/headers/recipf4.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _RECIPF4_H_
-#define _RECIPF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-/*
- * FUNCTION
- * vector float _recipf4(vector float value)
- *
- * DESCRIPTION
- * The _recipf4 function inverts the vector "value" and returns the
- * result.
- *
- */
-static __inline vector float _recipf4(vector float a)
-{
- /* This function has been designed to provide a
- * full function operation that presisely computes
- * the reciprocal for the entire range of extended
- * single precision input <a>. This includes:
- *
- * 1) Computing the reciprocal to full single precision
- * floating point accuracy.
- * 2) Round the result consistently with the rounding
- * mode of the processor - truncated toward zero.
- * 3) Underflow and overflow results are clamped to
- * Smin and Smax and flagged with the appropriate
- * UNF or OVF exception in the FPSCR.
- * 4) Divide By Zero (DBZ) exception is produced when
- * the input <a> has a zero exponent. A reciprocal
- * of correctly signed Smax is produced.
- * 5) Resulting denorm reciprocal will be coerced to +0.
- * 6) If a non-compliant IEEE result is produced, the
- * a DIFF exception is generated.
- */
- vector float err, x0, x1;
- vector float mult;
- vector float mant_a;
- vector float one = spu_splats(1.0f);
- vector unsigned int exp, exp_a;
- vector unsigned int exp_mask = (vec_uint4)spu_splats(0x7F800000);
-
- /* If a has a zero exponent, then set the divide by zero
- * (DBZ) exception flag. The estimate result is discarded.
- */
- (void)si_frest((qword)(a));
-
- /* For computing the reciprocal, force the value
- * into the range (1.0 <= 0 < 2.0).
- */
- mant_a = spu_sel(a, one, exp_mask);
-
- /* Compute the reciprocal using the reciprocal estimate
- * followed by one iteration of the Newton-Raphson.
- * Due to truncation error, the quotient result may be low
- * by 1 ulp (unit of least position). Conditionally add one
- * if the estimate is too small.
- */
- x0 = spu_re(mant_a);
- x0 = spu_madd(spu_nmsub(mant_a, x0, one), x0, x0);
-
- x1 = (vector float)(spu_add((vector unsigned int)(x0), 1));
- err = spu_nmsub(mant_a, x1, one);
-
- x1 = spu_sel(x0, x1, spu_cmpgt((vector signed int)(err), -1));
-
- /* Compute the reciprocal's expected exponent. If the exponent
- * is out of range, then force the resulting exponent to 0.
- * (127 with the bias). We correct for the out of range
- * values by computing a multiplier (mult) that will force the
- * result to the correct out of range value and set the
- * correct exception flag (UNF, OVF, or neither). The multiplier
- * is also conditioned to generate correctly signed Smax if the
- * inoput <a> is a denorm or zero.
- */
- exp_a = spu_and((vector unsigned int)a, exp_mask);
- exp = spu_add(spu_sub(spu_splats((unsigned int)0x7F000000), exp_a), spu_cmpabsgt(mant_a, one));
-
- /* The default multiplier is 1.0. If an underflow is detected (ie,
- * either the dividend <a> is a denorm/zero, or the computed exponent is
- * less than or equal to a biased 0), force the multiplier to 0.0.
- */
- mult = spu_and(one, (vector float)spu_cmpgt((vector signed int)(exp), 0));
-
- /* Force the multiplier to positive Smax (0x7FFFFFFF) and the biased exponent
- * to 127, if the divisor is denorm/zero or the computed biased exponent is
- * greater than 255.
- */
- mult = spu_or(mult, (vector float)spu_rlmask(spu_cmpeq(exp_a, 0), -1));
-
- /* Insert the exponent into the result and perform the
- * final multiplication.
- */
- x1 = spu_sel(x1, (vector float)exp, exp_mask);
- x1 = spu_mul(x1, mult);
-
- return (x1);
-}
-
-#endif /* _RECIPF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/remainder.h b/newlib/libm/machine/spu/headers/remainder.h
deleted file mode 100644
index bdcffa0d3..000000000
--- a/newlib/libm/machine/spu/headers/remainder.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _REMAINDER_H_
-#define _REMAINDER_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-static __inline double _remainder(double x, double y)
-{
- int n, shift;
- vec_uchar16 swap_words = VEC_LITERAL(vec_uchar16, 4,5,6,7, 0,1,2,3, 12,13,14,15, 8,9,10,11);
- vec_uchar16 propagate = VEC_LITERAL(vec_uchar16, 4,5,6,7, 192,192,192,192, 12,13,14,15, 192,192,192,192);
- vec_uchar16 splat_hi = VEC_LITERAL(vec_uchar16, 0,1,2,3,0,1,2,3, 8,9,10,11, 8,9,10,11);
- vec_uchar16 splat_lo = VEC_LITERAL(vec_uchar16, 4,5,6,7,4,5,6,7, 12,13,14,15, 12,13,14,15);
- vec_uint4 vx, vy, z;
- vec_uint4 x_hi, y_hi, y_lo;
- vec_uint4 abs_x, abs_y, abs_2x, abs_2y;
- vec_uint4 exp_x, exp_y;
- vec_uint4 zero_x, zero_y;
- vec_uint4 logb_x, logb_y;
- vec_uint4 mant_x, mant_y;
- vec_uint4 normal, norm, denorm;
- vec_uint4 gt, eq, bias, y2_hi;
- vec_uint4 nan_out;
- vec_uint4 result, result0, resultx, cnt, sign, borrow;
- vec_uint4 exp_special = VEC_SPLAT_U32(0x7FF00000);
- vec_uint4 half_smax = VEC_SPLAT_U32(0x7FEFFFFF);
- vec_uint4 lsb = (vec_uint4)(VEC_SPLAT_U64(0x0000000000000001ULL));
- vec_uint4 sign_mask = (vec_uint4)(VEC_SPLAT_U64(0x8000000000000000ULL));
- vec_uint4 implied_1 = (vec_uint4)(VEC_SPLAT_U64(0x0010000000000000ULL));
- vec_uint4 mant_mask = (vec_uint4)(VEC_SPLAT_U64(0x000FFFFFFFFFFFFFULL));
-
- vx = (vec_uint4)spu_promote(x, 0);
- vy = (vec_uint4)spu_promote(y, 0);
-
- abs_x = spu_andc(vx, sign_mask);
- abs_y = spu_andc(vy, sign_mask);
-
- abs_2y = spu_add(abs_y, implied_1);
-
- sign = spu_and(vx, sign_mask);
-
-
- /* Compute abs_x = fmodf(abs_x, 2*abs_y). If y is greater than 0.5*SMAX (SMAX is the maximum
- * representable float), then return abs_x.
- */
- {
- x_hi = spu_shuffle(abs_x, abs_x, splat_hi);
- y_lo = spu_shuffle(abs_y, abs_y, splat_lo);
- y_hi = spu_shuffle(abs_y, abs_y, splat_hi);
- y2_hi = spu_shuffle(abs_2y, abs_2y, splat_hi);
-
- /* Force a NaN output if (1) abs_x is infinity or NaN or (2)
- * abs_y is a NaN.
- */
- nan_out = spu_or(spu_cmpgt(x_hi, half_smax),
- spu_or(spu_cmpgt(y_hi, exp_special),
- spu_and(spu_cmpeq(y_hi, exp_special),
- spu_cmpgt(y_lo, 0))));
-
- /* Determine ilogb of abs_x and abs_y and
- * extract the mantissas (mant_x, mant_y)
- */
- exp_x = spu_rlmask(x_hi, -20);
- exp_y = spu_rlmask(y2_hi, -20);
-
- resultx = spu_or(spu_cmpgt(y2_hi, x_hi), spu_cmpgt(y_hi, half_smax));
-
- zero_x = spu_cmpeq(exp_x, 0);
- zero_y = spu_cmpeq(exp_y, 0);
-
- logb_x = spu_add(exp_x, -1023);
- logb_y = spu_add(exp_y, -1023);
-
- mant_x = spu_andc(spu_sel(implied_1, abs_x, mant_mask), zero_x);
- mant_y = spu_andc(spu_sel(implied_1, abs_2y, mant_mask), zero_y);
-
- /* Compute fixed point fmod of mant_x and mant_y. Set the flag,
- * result0, to all ones if we detect that the final result is
- * ever 0.
- */
- result0 = spu_or(zero_x, zero_y);
-
- n = spu_extract(spu_sub(logb_x, logb_y), 0);
-
- while (n-- > 0) {
- borrow = spu_genb(mant_x, mant_y);
- borrow = spu_shuffle(borrow, borrow, propagate);
- z = spu_subx(mant_x, mant_y, borrow);
-
- result0 = spu_or(spu_cmpeq(spu_or(z, spu_shuffle(z, z, swap_words)), 0), result0);
-
- mant_x = spu_sel(spu_slqw(mant_x, 1), spu_andc(spu_slqw(z, 1), lsb), spu_cmpgt((vec_int4)spu_shuffle(z, z, splat_hi), -1));
- }
-
-
- borrow = spu_genb(mant_x, mant_y);
- borrow = spu_shuffle(borrow, borrow, propagate);
- z = spu_subx(mant_x, mant_y, borrow);
-
- mant_x = spu_sel(mant_x, z, spu_cmpgt((vec_int4)spu_shuffle(z, z, splat_hi), -1));
- mant_x = spu_andc(mant_x, VEC_LITERAL(vec_uint4, 0,0,-1,-1));
-
- result0 = spu_or(spu_cmpeq(spu_or(mant_x, spu_shuffle(mant_x, mant_x, swap_words)), 0), result0);
-
- /* Convert the result back to floating point and restore
- * the sign. If we flagged the result to be zero (result0),
- * zero it. If we flagged the result to equal its input x,
- * (resultx) then return x.
- *
- * Double precision generates a denorm for an output.
- */
- cnt = spu_cntlz(mant_x);
- cnt = spu_add(cnt, spu_and(spu_rlqwbyte(cnt, 4), spu_cmpeq(cnt, 32)));
- cnt = spu_add(spu_shuffle(cnt, cnt, splat_hi), -11);
-
- shift = spu_extract(exp_y, 0) - 1;
- denorm = spu_slqwbytebc(spu_slqw(mant_x, shift), shift);
-
- exp_y = spu_sub(exp_y, cnt);
-
- normal = spu_cmpgt((vec_int4)exp_y, 0);
-
- /* Normalize normal results, denormalize denorm results.
- */
- shift = spu_extract(cnt, 0);
- norm = spu_slqwbytebc(spu_slqw(spu_andc(mant_x, VEC_LITERAL(vec_uint4, 0x00100000, 0, -1, -1)), shift), shift);
-
- mant_x = spu_sel(denorm, norm, normal);
-
- exp_y = spu_and(spu_rl(exp_y, 20), normal);
-
- result = spu_sel(exp_y, mant_x, mant_mask);
-
- abs_x = spu_sel(spu_andc(result, spu_rlmask(result0, -1)), abs_x, resultx);
-
- }
-
- /* if (2*x > y)
- * x -= y
- * if (2*x >= y) x -= y
- */
- abs_2x = spu_and(spu_add(abs_x, implied_1), normal);
-
- gt = spu_cmpgt(abs_2x, abs_y);
- eq = spu_cmpeq(abs_2x, abs_y);
- bias = spu_or(gt, spu_and(eq, spu_rlqwbyte(gt, 4)));
- bias = spu_shuffle(bias, bias, splat_hi);
- abs_x = spu_sel(abs_x, (vec_uint4)spu_sub((vec_double2)abs_x, (vec_double2)abs_y), bias);
-
- bias = spu_andc(bias, spu_rlmaska((vec_uint4)spu_msub((vec_double2)abs_x, VEC_SPLAT_F64(2.0), (vec_double2)abs_y), -31));
- bias = spu_shuffle(bias, bias, splat_hi);
- abs_x = spu_sel(abs_x, (vec_uint4)spu_sub((vec_double2)abs_x, (vec_double2)abs_y), bias);
-
- /* Generate a correct final sign
- */
- result = spu_sel(spu_xor(abs_x, sign), exp_special, nan_out);
-
- return (spu_extract((vec_double2)result, 0));
-}
-#endif /* _REMAINDER_H_ */
diff --git a/newlib/libm/machine/spu/headers/remainderf.h b/newlib/libm/machine/spu/headers/remainderf.h
deleted file mode 100644
index b610b673e..000000000
--- a/newlib/libm/machine/spu/headers/remainderf.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _REMAINDERF_H_
-#define _REMAINDERF_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-static __inline float _remainderf(float x, float y)
-{
- int n;
- vec_uint4 vx, vy, z;
- vec_uint4 abs_x, abs_y, abs_2x, abs_2y;
- vec_uint4 exp_x, exp_y;
- vec_uint4 zero_x, zero_y;
- vec_uint4 logb_x, logb_y;
- vec_uint4 mant_x, mant_y;
- vec_uint4 result, result0, resultx, cnt, sign, bias;
- vec_uint4 sign_mask = VEC_SPLAT_U32(0x80000000);
- vec_uint4 implied_1 = VEC_SPLAT_U32(0x00800000);
- vec_uint4 mant_mask = VEC_SPLAT_U32(0x007FFFFF);
- vec_float4 two = { 2.0f, 2.0f, 2.0f, 2.0f };
-
- vx = (vec_uint4)spu_promote(x, 0);
- vy = (vec_uint4)spu_promote(y, 0);
-
- abs_x = spu_andc(vx, sign_mask);
- abs_y = spu_andc(vy, sign_mask);
-
- abs_2y = spu_add(abs_y, implied_1); /* abs_2y = 2 * abs_y */
-
- sign = spu_and(vx, sign_mask);
-
- /* Compute abs_x = fmodf(abs_x, 2*abs_y). If y is greater than 0.5*SMAX
- * (SMAX is the maximum representable float), then return abs_x.
- */
- {
- /* Determine ilogb of abs_x and abs_2y and
- * extract the mantissas (mant_x, mant_y)
- */
- exp_x = spu_rlmask(abs_x, -23);
- exp_y = spu_rlmask(abs_2y, -23);
-
- resultx = spu_or(spu_cmpgt(abs_2y, abs_x), spu_cmpgt(abs_y, VEC_SPLAT_U32(0x7F7FFFFF)));
-
- zero_x = spu_cmpeq(exp_x, 0);
- zero_y = spu_cmpeq(exp_y, 0);
-
- logb_x = spu_add(exp_x, -127);
- logb_y = spu_add(exp_y, -127);
-
- mant_x = spu_andc(spu_sel(implied_1, abs_x, mant_mask), zero_x);
- mant_y = spu_andc(spu_sel(implied_1, abs_2y, mant_mask), zero_y);
-
- /* Compute fixed point fmod of mant_x and mant_y. Set the flag,
- * result0, to all ones if we detect that the final result is
- * ever 0.
- */
- result0 = spu_or(zero_x, zero_y);
-
- n = spu_extract(spu_sub(logb_x, logb_y), 0);
-
-
- while (n-- > 0) {
- z = spu_sub(mant_x, mant_y);
-
- result0 = spu_or(spu_cmpeq(z, 0), result0);
-
- mant_x = spu_sel(spu_add(mant_x, mant_x), spu_add(z, z),
- spu_cmpgt((vec_int4)z, -1));
- }
-
- z = spu_sub(mant_x, mant_y);
- mant_x = spu_sel(mant_x, z, spu_cmpgt((vec_int4)z, -1));
-
- result0 = spu_or(spu_cmpeq(mant_x, 0), result0);
-
- /* Convert the result back to floating point and restore
- * the sign. If we flagged the result to be zero (result0),
- * zero it. If we flagged the result to equal its input x,
- * (resultx) then return x.
- */
- cnt = spu_add(spu_cntlz(mant_x), -8);
-
- mant_x = spu_rl(spu_andc(mant_x, implied_1), (vec_int4)cnt);
-
- exp_y = spu_sub(exp_y, cnt);
- result0 = spu_orc(result0, spu_cmpgt((vec_int4)exp_y, 0)); /* zero denorm results */
- exp_y = spu_rl(exp_y, 23);
-
- result = spu_sel(exp_y, mant_x, mant_mask);
- abs_x = spu_sel(spu_andc(result, spu_rlmask(result0, -1)), abs_x, resultx);
- }
-
- /* if (2*x > y)
- * x -= y
- * if (2*x >= y) x -= y
- */
- abs_2x = spu_add(abs_x, implied_1);
- bias = spu_cmpgt(abs_2x, abs_y);
- abs_x = spu_sel(abs_x, (vec_uint4)spu_sub((vec_float4)abs_x, (vec_float4)abs_y), bias);
- bias = spu_andc(bias, spu_rlmaska((vec_uint4)spu_msub((vec_float4)abs_x, two, (vec_float4)abs_y), -31));
- abs_x = spu_sel(abs_x, (vec_uint4)spu_sub((vec_float4)abs_x, (vec_float4)abs_y), bias);
-
- /* Generate a correct final sign
- */
- result = spu_xor(abs_x, sign);
-
- return (spu_extract((vec_float4)result, 0));
-}
-#endif /* _REMAINDERF_H_ */
diff --git a/newlib/libm/machine/spu/headers/remquo.h b/newlib/libm/machine/spu/headers/remquo.h
deleted file mode 100644
index fd6a5aae6..000000000
--- a/newlib/libm/machine/spu/headers/remquo.h
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _REMQUO_H_
-#define _REMQUO_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-static __inline double _remquo(double x, double y, int *quo)
-{
- int n, shift;
- vec_uchar16 swap_words = VEC_LITERAL(vec_uchar16, 4,5,6,7, 0,1,2,3, 12,13,14,15, 8,9,10,11);
- vec_uchar16 propagate = VEC_LITERAL(vec_uchar16, 4,5,6,7, 192,192,192,192, 12,13,14,15, 192,192,192,192);
- vec_uchar16 splat_hi = VEC_LITERAL(vec_uchar16, 0,1,2,3,0,1,2,3, 8,9,10,11, 8,9,10,11);
- vec_uchar16 splat_lo = VEC_LITERAL(vec_uchar16, 4,5,6,7,4,5,6,7, 12,13,14,15, 12,13,14,15);
- vec_int4 quotient;
- vec_int4 four = { 4, 4, 4, 4 };
- vec_uint4 vx, vy, z;
- vec_uint4 x_hi, y_hi, y8_hi, y_lo, y2, y4;
- vec_uint4 abs_x, abs_y, abs_2x, abs_2y, abs_8y;
- vec_uint4 exp_x, exp_y;
- vec_uint4 zero_x, zero_y;
- vec_uint4 logb_x, logb_y;
- vec_uint4 mant_x, mant_y;
- vec_uint4 normal, norm, denorm;
- vec_uint4 gt, eq, bias;
- vec_uint4 nan_out, not_ge, quo_pos, overflow;
- vec_uint4 result, result0, resultx, cnt, sign, borrow;
- vec_uint4 exp_special = VEC_SPLAT_U32(0x7FF00000);
- vec_uint4 half_smax = VEC_SPLAT_U32(0x7FEFFFFF);
- vec_uint4 lsb = (vec_uint4)(VEC_SPLAT_U64(0x0000000000000001ULL));
- vec_uint4 sign_mask = (vec_uint4)(VEC_SPLAT_U64(0x8000000000000000ULL));
- vec_uint4 implied_1 = (vec_uint4)(VEC_SPLAT_U64(0x0010000000000000ULL));
- vec_uint4 mant_mask = (vec_uint4)(VEC_SPLAT_U64(0x000FFFFFFFFFFFFFULL));
-
- vx = (vec_uint4)spu_promote(x, 0);
- vy = (vec_uint4)spu_promote(y, 0);
-
- abs_x = spu_andc(vx, sign_mask);
- abs_y = spu_andc(vy, sign_mask);
-
- abs_2y = spu_add(abs_y, implied_1);
- abs_8y = spu_add(abs_y, VEC_LITERAL(vec_uint4, 0x00300000, 0, 0x00300000, 0));
-
- sign = spu_and(vx, sign_mask);
-
- quo_pos = spu_cmpgt((vec_int4)spu_and(spu_xor(vx, vy), sign_mask), -1);
- quo_pos = spu_shuffle(quo_pos, quo_pos, splat_hi);
-
- /* Compute abs_x = fmodf(abs_x, 8*abs_y). If y is greater than 0.125*SMAX
- * (SMAX is the maximum representable float), then return abs_x.
- */
- {
- x_hi = spu_shuffle(abs_x, abs_x, splat_hi);
- y_lo = spu_shuffle(abs_y, abs_y, splat_lo);
- y_hi = spu_shuffle(abs_y, abs_y, splat_hi);
- y8_hi = spu_shuffle(abs_8y, abs_8y, splat_hi);
-
- /* Force a NaN output if (1) abs_x is infinity or NaN or (2)
- * abs_y is a NaN.
- */
- nan_out = spu_or(spu_cmpgt(x_hi, half_smax),
- spu_or(spu_cmpgt(y_hi, exp_special),
- spu_and(spu_cmpeq(y_hi, exp_special),
- spu_cmpgt(y_lo, 0))));
-
- /* Determine ilogb of abs_x and abs_8y and
- * extract the mantissas (mant_x, mant_y)
- */
- exp_x = spu_rlmask(x_hi, -20);
- exp_y = spu_rlmask(y8_hi, -20);
-
- resultx = spu_or(spu_cmpgt(y8_hi, x_hi), spu_cmpgt(y_hi, half_smax));
-
- zero_x = spu_cmpeq(exp_x, 0);
- zero_y = spu_cmpeq(exp_y, 0);
-
- logb_x = spu_add(exp_x, -1023);
- logb_y = spu_add(exp_y, -1023);
-
- mant_x = spu_andc(spu_sel(implied_1, abs_x, mant_mask), zero_x);
- mant_y = spu_andc(spu_sel(implied_1, abs_8y, mant_mask), zero_y);
-
- /* Compute fixed point fmod of mant_x and mant_y. Set the flag,
- * result0, to all ones if we detect that the final result is
- * ever 0.
- */
- result0 = spu_or(zero_x, zero_y);
-
- n = spu_extract(spu_sub(logb_x, logb_y), 0);
-
- while (n-- > 0) {
- borrow = spu_genb(mant_x, mant_y);
- borrow = spu_shuffle(borrow, borrow, propagate);
- z = spu_subx(mant_x, mant_y, borrow);
-
- result0 = spu_or(spu_cmpeq(spu_or(z, spu_shuffle(z, z, swap_words)), 0), result0);
-
- mant_x = spu_sel(spu_slqw(mant_x, 1), spu_andc(spu_slqw(z, 1), lsb), spu_cmpgt((vec_int4)spu_shuffle(z, z, splat_hi), -1));
- }
-
-
- borrow = spu_genb(mant_x, mant_y);
- borrow = spu_shuffle(borrow, borrow, propagate);
- z = spu_subx(mant_x, mant_y, borrow);
-
- mant_x = spu_sel(mant_x, z, spu_cmpgt((vec_int4)spu_shuffle(z, z, splat_hi), -1));
- mant_x = spu_andc(mant_x, VEC_LITERAL(vec_uint4, 0,0,-1,-1));
-
- result0 = spu_or(spu_cmpeq(spu_or(mant_x, spu_shuffle(mant_x, mant_x, swap_words)), 0), result0);
-
- /* Convert the result back to floating point and restore
- * the sign. If we flagged the result to be zero (result0),
- * zero it. If we flagged the result to equal its input x,
- * (resultx) then return x.
- *
- * Double precision generates a denorm for an output.
- */
- cnt = spu_cntlz(mant_x);
- cnt = spu_add(cnt, spu_and(spu_rlqwbyte(cnt, 4), spu_cmpeq(cnt, 32)));
- cnt = spu_add(spu_shuffle(cnt, cnt, splat_hi), -11);
-
- shift = spu_extract(exp_y, 0) - 1;
- denorm = spu_slqwbytebc(spu_slqw(mant_x, shift), shift);
-
- exp_y = spu_sub(exp_y, cnt);
-
- normal = spu_cmpgt((vec_int4)exp_y, 0);
-
- /* Normalize normal results, denormalize denorm results.
- */
- shift = spu_extract(cnt, 0);
- norm = spu_slqwbytebc(spu_slqw(spu_andc(mant_x, VEC_LITERAL(vec_uint4, 0x00100000, 0, -1, -1)), shift), shift);
-
- mant_x = spu_sel(denorm, norm, normal);
-
- exp_y = spu_and(spu_rl(exp_y, 20), normal);
-
- result = spu_sel(exp_y, mant_x, mant_mask);
-
- abs_x = spu_sel(spu_andc(result, spu_rlmask(result0, -1)), abs_x, resultx);
-
- }
-
- /* if (x >= 4*y)
- * x -= 4*y
- * quotient = 4
- * else
- * quotient = 0
- */
- y4 = spu_andc(spu_add(abs_y, spu_rl(implied_1, 1)), zero_y);
-
- overflow = spu_cmpgt(y_hi, VEC_SPLAT_U32(0x7FCFFFFF));
- gt = spu_cmpgt(y4, abs_x);
- eq = spu_cmpeq(y4, abs_x);
- not_ge = spu_or(gt, spu_and(eq, spu_rlqwbyte(gt, 4)));
- not_ge = spu_shuffle(not_ge, not_ge, splat_hi);
- not_ge = spu_or(not_ge, overflow);
-
- abs_x = spu_sel((vec_uint4)spu_sub((vec_double2)abs_x, (vec_double2)y4), abs_x, not_ge);
- quotient = spu_andc(four, (vec_int4)not_ge);
-
- /* if (x >= 2*y
- * x -= 2*y
- * quotient += 2
- */
- y2 = spu_andc(spu_add(abs_y, implied_1), zero_y);
-
- overflow = spu_cmpgt(y_hi, VEC_SPLAT_U32(0x7FDFFFFF));
- gt = spu_cmpgt(y2, abs_x);
- eq = spu_cmpeq(y2, abs_x);
- not_ge = spu_or(gt, spu_and(eq, spu_rlqwbyte(gt, 4)));
- not_ge = spu_shuffle(not_ge, not_ge, splat_hi);
- not_ge = spu_or(not_ge, overflow);
-
-
- abs_x = spu_sel((vec_uint4)spu_sub((vec_double2)abs_x, (vec_double2)y2), abs_x, not_ge);
- quotient = spu_sel(spu_add(quotient, 2), quotient, not_ge);
-
- /* if (2*x > y)
- * x -= y
- * if (2*x >= y) x -= y
- */
- abs_2x = spu_and(spu_add(abs_x, implied_1), normal);
-
- gt = spu_cmpgt(abs_2x, abs_y);
- eq = spu_cmpeq(abs_2x, abs_y);
- bias = spu_or(gt, spu_and(eq, spu_rlqwbyte(gt, 4)));
- bias = spu_shuffle(bias, bias, splat_hi);
- abs_x = spu_sel(abs_x, (vec_uint4)spu_sub((vec_double2)abs_x, (vec_double2)abs_y), bias);
- quotient = spu_sub(quotient, (vec_int4)bias);
-
- bias = spu_andc(bias, spu_rlmaska((vec_uint4)spu_msub((vec_double2)abs_x, VEC_SPLAT_F64(2.0), (vec_double2)abs_y), -31));
- bias = spu_shuffle(bias, bias, splat_hi);
- abs_x = spu_sel(abs_x, (vec_uint4)spu_sub((vec_double2)abs_x, (vec_double2)abs_y), bias);
- quotient = spu_sub(quotient, (vec_int4)bias);
-
- /* Generate a correct final sign
- */
- result = spu_sel(spu_xor(abs_x, sign), exp_special, nan_out);
-
- quotient = spu_and(quotient, 7);
- quotient = spu_sel(spu_sub(0, quotient), quotient, quo_pos);
-
- *quo = spu_extract(quotient, 0);
-
- return (spu_extract((vec_double2)result, 0));
-}
-#endif /* _REMQUO_H_ */
diff --git a/newlib/libm/machine/spu/headers/remquof.h b/newlib/libm/machine/spu/headers/remquof.h
deleted file mode 100644
index c48172856..000000000
--- a/newlib/libm/machine/spu/headers/remquof.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _REMQUOF_H_
-#define _REMQUOF_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-
-static __inline float _remquof(float x, float y, int *quo)
-{
- int n;
- vec_int4 quotient;
- vec_int4 four = { 4, 4, 4, 4 };
- vec_uint4 vx, vy, z, y2, y4;
- vec_uint4 abs_x, abs_y, abs_2x, abs_8y;
- vec_uint4 exp_x, exp_y;
- vec_uint4 zero_x, zero_y;
- vec_uint4 logb_x, logb_y;
- vec_uint4 mant_x, mant_y;
- vec_uint4 not_ge, overflow, quo_pos;
- vec_uint4 result, result0, resultx, cnt, sign, bias;
- vec_uint4 sign_mask = VEC_SPLAT_U32(0x80000000);
- vec_uint4 implied_1 = VEC_SPLAT_U32(0x00800000);
- vec_uint4 mant_mask = VEC_SPLAT_U32(0x007FFFFF);
-
- vx = (vec_uint4)spu_promote(x, 0);
- vy = (vec_uint4)spu_promote(y, 0);
-
- abs_x = spu_andc(vx, sign_mask);
- abs_y = spu_andc(vy, sign_mask);
-
- abs_8y = spu_add(abs_y, VEC_SPLAT_U32(0x01800000)); /* abs_2y = 8 * abs_y */
-
- sign = spu_and(vx, sign_mask);
-
- quo_pos = spu_cmpgt((vec_int4)spu_and(spu_xor(vx, vy), sign_mask), -1);
-
- /* Compute abs_x = fmodf(abs_x, 8*abs_y). If y is greater than 0.125*SMAX
- * (SMAX is the maximum representable float), then return abs_x.
- */
- {
- /* Determine ilogb of abs_x and abs_8y and
- * extract the mantissas (mant_x, mant_y)
- */
- exp_x = spu_rlmask(abs_x, -23);
- exp_y = spu_rlmask(abs_8y, -23);
-
- resultx = spu_or(spu_cmpgt(abs_8y, abs_x), spu_cmpgt(abs_y, VEC_SPLAT_U32(0x7E7FFFFF)));
-
- zero_x = spu_cmpeq(exp_x, 0);
- zero_y = spu_cmpeq(exp_y, 0);
-
- logb_x = spu_add(exp_x, -127);
- logb_y = spu_add(exp_y, -127);
-
- mant_x = spu_andc(spu_sel(implied_1, abs_x, mant_mask), zero_x);
- mant_y = spu_andc(spu_sel(implied_1, abs_8y, mant_mask), zero_y);
-
- /* Compute fixed point fmod of mant_x and mant_y. Set the flag,
- * result0, to all ones if we detect that the final result is
- * ever 0.
- */
- result0 = spu_or(zero_x, zero_y);
-
- n = spu_extract(spu_sub(logb_x, logb_y), 0);
-
-
- while (n-- > 0) {
- z = spu_sub(mant_x, mant_y);
-
- result0 = spu_or(spu_cmpeq(z, 0), result0);
-
- mant_x = spu_sel(spu_add(mant_x, mant_x), spu_add(z, z),
- spu_cmpgt((vec_int4)z, -1));
- }
-
- z = spu_sub(mant_x, mant_y);
- mant_x = spu_sel(mant_x, z, spu_cmpgt((vec_int4)z, -1));
-
- result0 = spu_or(spu_cmpeq(mant_x, 0), result0);
-
- /* Convert the result back to floating point and restore
- * the sign. If we flagged the result to be zero (result0),
- * zero it. If we flagged the result to equal its input x,
- * (resultx) then return x.
- */
- cnt = spu_add(spu_cntlz(mant_x), -8);
-
- mant_x = spu_rl(spu_andc(mant_x, implied_1), (vec_int4)cnt);
-
- exp_y = spu_sub(exp_y, cnt);
- result0 = spu_orc(result0, spu_cmpgt((vec_int4)exp_y, 0)); /* zero denorm results */
- exp_y = spu_rl(exp_y, 23);
-
- result = spu_sel(exp_y, mant_x, mant_mask);
- abs_x = spu_sel(spu_andc(result, spu_rlmask(result0, -1)), abs_x, resultx);
- }
-
- /* if (x >= 4*y)
- * x -= 4*y
- * quotient = 4
- * else
- * quotient = 0
- */
- y4 = spu_andc(spu_add(abs_y, VEC_SPLAT_U32(0x01000000)), zero_y);
-
- overflow = spu_cmpgt(abs_y, VEC_SPLAT_U32(0x7EFFFFFF));
- not_ge = spu_or(spu_cmpgt(y4, abs_x), overflow);
-
- abs_x = spu_sel((vec_uint4)spu_sub((vec_float4)abs_x, (vec_float4)y4), abs_x, not_ge);
- quotient = spu_andc (four, (vec_int4)not_ge);
-
- /* if (x >= 2*y
- * x -= 2*y
- * quotient += 2
- */
- y2 = spu_andc(spu_add(abs_y, implied_1), zero_y);
- not_ge = spu_cmpgt(y2, abs_x);
-
- abs_x = spu_sel((vec_uint4)spu_sub((vec_float4)abs_x, (vec_float4)y2), abs_x, not_ge);
- quotient = spu_sel(spu_add(quotient, 2), quotient, not_ge);
-
- /* if (2*x > y)
- * x -= y
- * if (2*x >= y) x -= y
- */
- abs_2x = spu_add(abs_x, implied_1);
- bias = spu_cmpgt(abs_2x, abs_y);
- abs_x = spu_sel(abs_x, (vec_uint4)spu_sub((vec_float4)abs_x, (vec_float4)abs_y), bias);
- quotient = spu_sub(quotient, (vec_int4)bias);
-
- bias = spu_andc(bias, spu_rlmaska((vec_uint4)spu_msub((vec_float4)abs_x, VEC_SPLAT_F32(2.0f), (vec_float4)abs_y), -31));
- abs_x = spu_sel(abs_x, (vec_uint4)spu_sub((vec_float4)abs_x, (vec_float4)abs_y), bias);
- quotient = spu_sub(quotient, (vec_int4)bias);
-
- /* Generate a correct final sign
- */
- result = spu_xor(abs_x, sign);
-
- quotient = spu_and(quotient, 7);
- quotient = spu_sel(spu_sub(0, quotient), quotient, quo_pos);
-
- *quo = spu_extract(quotient, 0);
-
- return (spu_extract((vec_float4)result, 0));
-}
-#endif /* _REMQUOF_H_ */
diff --git a/newlib/libm/machine/spu/headers/rint.h b/newlib/libm/machine/spu/headers/rint.h
deleted file mode 100644
index 7cf7adcfa..000000000
--- a/newlib/libm/machine/spu/headers/rint.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _RINT_H_
-#define _RINT_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* Round the input to the nearest integer according to the current
- * rounding mode.
- */
-static __inline double _rint(double x)
-{
- vec_ullong2 sign = VEC_SPLAT_U64(0x8000000000000000ULL);
- vec_double2 in, out, addend;
-
- in = spu_promote(x, 0);
-
- /* Add 2^53 and then subtract 2^53 to affect a round to be performed by the
- * hardware. Also preserve the input sign so that negative inputs that
- * round to zero generate a -0.0.
- */
- addend = spu_sel((vec_double2)(VEC_SPLAT_U64(0x4330000000000000ULL)),
- in, sign);
- out = spu_sel(spu_sub(spu_add(in, addend), addend), in, sign);
-
- return (spu_extract(out, 0));
-}
-#endif /* _RINT_H_ */
diff --git a/newlib/libm/machine/spu/headers/rintf.h b/newlib/libm/machine/spu/headers/rintf.h
deleted file mode 100644
index 4649b0f38..000000000
--- a/newlib/libm/machine/spu/headers/rintf.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/rintf4.h"
-
-static __inline float _rintf(float x)
-{
- return spu_extract(_rintf4(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/rintf4.h b/newlib/libm/machine/spu/headers/rintf4.h
deleted file mode 100644
index a2b5aea61..000000000
--- a/newlib/libm/machine/spu/headers/rintf4.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2006,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _RINTF4_H_
-#define _RINTF4_H_ 1
-
-#include "truncf4.h"
-
-/*
- * FUNCTION
- * vector float _rintf4(vector float x)
- *
- * DESCRIPTION
- * The SPU doesn't support directed rounding. Within the simdmath
- * library, rintf4 is aliased to truncf4. This header merely
- * provides inlinable compatibility
- *
- */
-static __inline vector float _rintf4(vector float x)
-{
- return _truncf4(x);
-}
-#endif /* _RINTF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/round.h b/newlib/libm/machine/spu/headers/round.h
deleted file mode 100644
index 0943218b6..000000000
--- a/newlib/libm/machine/spu/headers/round.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _ROUND_H_
-#define _ROUND_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* Round the input to the nearest integer, rounding halfway
- * cases away from zero.
- */
-static __inline double _round(double x)
-{
- vec_uchar16 splat_hi = VEC_LITERAL(vec_uchar16, 0,1,2,3,0,1,2,3, 8,9,10,11, 8,9,10,11);
- vec_int4 exp, shift;
- vec_uint4 sign = VEC_LITERAL(vec_uint4, 0x80000000, 0, 0x80000000, 0);
- vec_uint4 or_mask, and_mask, mask, addend;
- vec_double2 in, in_hi, out;
-
- in = spu_promote(x, 0);
-
- /* Add 0.5 (fixed precision to eliminate rounding issues)
- */
- in_hi = spu_shuffle(in, in, splat_hi);
- exp = spu_and(spu_rlmask((vec_int4)in_hi, -20), 0x7FF);
-
- shift = spu_sub(VEC_LITERAL(vec_int4, 1022, 1043, 1022, 1043), exp);
-
- addend = spu_and(spu_rlmask(VEC_LITERAL(vec_uint4, 0x100000, 0x80000000,
- 0x100000, 0x80000000), shift),
- spu_cmpgt((vec_uint4)spu_add(shift, -1), -33));
-
- in = (vec_double2)spu_addx((vec_uint4)in, addend,
- spu_rlqwbyte(spu_genc((vec_uint4)in, addend), 4));
-
- /* Truncate the result.
- */
- in_hi = spu_shuffle(in, in, splat_hi);
- exp = spu_and(spu_rlmask((vec_int4)in_hi, -20), 0x7FF);
-
- shift = spu_sub(VEC_LITERAL(vec_int4, 1023, 1043, 1023, 1043), exp);
- or_mask = spu_andc(spu_cmpgt(shift, 0), sign);
-
-
- and_mask = spu_rlmask(VEC_LITERAL(vec_uint4, 0xFFFFF, -1, 0xFFFFF, -1),
- shift);
- mask = spu_or(spu_and(and_mask, spu_cmpgt(shift, -31)), or_mask);
-
- /* Apply the mask and return the result.
- */
- out = spu_andc(in, (vec_double2)(mask));
-
- return (spu_extract(out, 0));
-}
-#endif /* _ROUND_H_ */
diff --git a/newlib/libm/machine/spu/headers/roundf.h b/newlib/libm/machine/spu/headers/roundf.h
deleted file mode 100644
index 16914d6f9..000000000
--- a/newlib/libm/machine/spu/headers/roundf.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _ROUNDF_H_
-#define _ROUNDF_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* Round the input to the nearest integer, rounding halfway
- * cases away from zero.
- */
-static __inline float _roundf(float x)
-{
- vec_int4 exp;
- vec_uint4 or_mask, and_mask, mask, addend;
- vec_float4 in, out;
-
- in = spu_promote(x, 0);
-
- /* Add 0.5 (fixed precision to eliminate rounding issues)
- */
- exp = spu_sub(125, spu_and(spu_rlmask((vec_int4)in, -23), 0xFF));
-
- addend = spu_and(spu_rlmask(VEC_SPLAT_U32(0x1000000), exp),
- spu_cmpgt((vec_uint4)exp, -31));
-
- in = (vec_float4)spu_add((vec_uint4)in, addend);
-
- /* Truncate the result.
- */
- exp = spu_sub(127, spu_and(spu_rlmask((vec_int4)in, -23), 0xFF));
-
- or_mask = spu_cmpgt(exp, 0);
- and_mask = spu_rlmask(VEC_SPLAT_U32(0x7FFFFF), exp);
-
- mask = spu_or(spu_and(and_mask, spu_cmpgt(exp, -31)), or_mask);
-
- out = spu_andc(in, (vec_float4)(mask));
-
- return (spu_extract(out, 0));
-}
-#endif /* _ROUNDF_H_ */
diff --git a/newlib/libm/machine/spu/headers/scalbn.h b/newlib/libm/machine/spu/headers/scalbn.h
deleted file mode 100644
index 65802b635..000000000
--- a/newlib/libm/machine/spu/headers/scalbn.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _SCALBN_H_
-#define _SCALBN_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* scalbn computes x * 2^exp. This function variant computes the result
- * and handles overflow, underflow, and denorms by breaking the problem
- * into:
- * exp = MAX(exp, -2044)
- * exp = MIN(exp, 2046)
- * e1 = exp / 2
- * e2 = exp - e1;
- * x * 2^e1 * 2^e2
- */
-static __inline double _scalbn(double x, int exp)
-{
- vec_int4 e, e1, e2;
- vec_int4 min = VEC_SPLAT_S32(-2044);
- vec_int4 max = VEC_SPLAT_S32(2046);
- vec_uint4 cmp_min, cmp_max;
- vec_uint4 shift = VEC_LITERAL(vec_uint4, 20, 32, 20, 32);
- vec_double2 f1, f2;
- vec_double2 in, out;
-
- in = spu_promote(x, 0);
- e = spu_promote(exp, 0);
-
- /* Clamp the specified exponent to the range -2044 to 2046.
- */
- cmp_min = spu_cmpgt(e, min);
- cmp_max = spu_cmpgt(e, max);
- e = spu_sel(min, e, cmp_min);
- e = spu_sel(e, max, cmp_max);
-
- /* Generate the factors f1 = 2^e1 and f2 = 2^e2
- */
- e1 = spu_rlmaska(e, -1);
- e2 = spu_sub(e, e1);
-
- f1 = (vec_double2)spu_sl(spu_add(e1, 1023), shift);
- f2 = (vec_double2)spu_sl(spu_add(e2, 1023), shift);
-
- /* Compute the product x * 2^e1 * 2^e2
- */
- out = spu_mul(spu_mul(in, f1), f2);
-
- return (spu_extract(out, 0));
-}
-#endif /* _SCALBN_H_ */
diff --git a/newlib/libm/machine/spu/headers/scalbnf.h b/newlib/libm/machine/spu/headers/scalbnf.h
deleted file mode 100644
index 56ed1ef87..000000000
--- a/newlib/libm/machine/spu/headers/scalbnf.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _SCALBNF_H_
-#define _SCALBNF_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* scalbnf computes x * 2^exp. This function is computed without
- * the assistence of any floating point operations and as such does
- * not set any floating point exceptions.
- */
-static __inline float _scalbnf(float x, int exp)
-{
- vec_int4 x_exp;
- vec_uint4 zero, overflow;
- vec_uint4 exp_mask = VEC_SPLAT_U32(0x7F800000);
- vec_float4 in, out;
-
- in = spu_promote(x, 0);
-
- /* Extract exponent from x. If the exponent is 0, then
- * x is either 0 or a denorm and x*2^exp is a zero.
- */
- x_exp = spu_and(spu_rlmask((vec_int4)in, -23), 0xFF);
-
- zero = spu_cmpeq(x_exp, 0);
-
- /* Compute the expected exponent and determine if the
- * result is within range.
- */
- x_exp = spu_add(spu_promote(exp, 0), x_exp);
-
- zero = spu_orc(zero, spu_cmpgt(x_exp, 0));
-
- overflow = spu_rlmask(spu_cmpgt(x_exp, 255), -1);
-
- /* Merge the expect exponent with x's mantissa. Zero the
- * result if underflow and force to max if overflow.
- */
- out = spu_sel(in, (vec_float4)spu_rl(x_exp, 23), exp_mask);
- out = spu_andc(out, (vec_float4)zero);
- out = spu_or(out, (vec_float4)overflow);
-
- return (spu_extract(out, 0));
-}
-#endif /* _SCALBNF_H_ */
diff --git a/newlib/libm/machine/spu/headers/scalbnf4.h b/newlib/libm/machine/spu/headers/scalbnf4.h
deleted file mode 100644
index 32b733993..000000000
--- a/newlib/libm/machine/spu/headers/scalbnf4.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2006,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _SCALBNF4_H_
-#define _SCALBNF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-/*
- * FUNCTION
- * vector float _scalbnf4(vector float x, vector signed int exp)
- *
- * DESCRIPTION
- * The _scalbnf4 function returns a vector containing each element of x
- * multiplied by 2^n computed efficiently. This function is computed
- * without the assistance of any floating point operations and as such
- * does not set any floating point exceptions.
- *
- * Special Cases:
- * - if the exponent is 0, then x is either 0 or a subnormal, and the
- * result will be returned as 0.
- * - if the result if underflows, it will be returned as 0.
- * - if the result overflows, it will be returned as FLT_MAX.
- *
- */
-static __inline vector float _scalbnf4(vector float x, vector signed int exp)
-{
- vec_int4 x_exp;
- vec_uint4 zero;
- vec_uint4 overflow;
- vec_uint4 exp_mask = (vec_uint4)spu_splats(0x7F800000);
- vec_float4 out;
-
- /* Extract exponent from x. If the exponent is 0, then
- * x is either 0 or a denorm and x*2^exp is a zero.
- */
- x_exp = spu_and(spu_rlmask((vec_int4)x, -23), 0xFF);
- zero = spu_cmpeq(x_exp, 0);
-
- /* Compute the expected exponent and determine if the
- * result is within range.
- */
- x_exp = spu_add(exp, x_exp);
-
- /* Check for zero or overflow of result.
- * Note: set high bit of flags = 0, since we have to
- * return -0 when x = -0
- */
- zero = spu_rlmask(spu_orc(zero, spu_cmpgt(x_exp, 0)), -1);
- overflow = spu_rlmask(spu_cmpgt(x_exp, 255), -1);
-
- /* Merge the expect exponent with x's mantissa. Zero the
- * result if underflow and force to max if overflow.
- */
- out = spu_sel(x, (vec_float4)spu_rl(x_exp, 23), exp_mask);
- out = spu_andc(out, (vec_float4)zero);
- out = spu_or(out, (vec_float4)overflow);
-
- return out;
-}
-
-#endif /* _SCALBNF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/signbit.h b/newlib/libm/machine/spu/headers/signbit.h
deleted file mode 100644
index b27fce235..000000000
--- a/newlib/libm/machine/spu/headers/signbit.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/signbitd2.h"
-
-static __inline unsigned long long _signbit(double x)
-{
- return spu_extract(_signbitd2(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/signbitd2.h b/newlib/libm/machine/spu/headers/signbitd2.h
deleted file mode 100644
index 74138d4e6..000000000
--- a/newlib/libm/machine/spu/headers/signbitd2.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2006,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _SIGNBITD2_H_
-#define _SIGNBITD2_H_ 1
-
-#include <spu_intrinsics.h>
-
-/*
- * FUNCTION
- * vector unsigned long long _signbitd2(vector double x)
- *
- * DESCRIPTION
- * The signbitd2 function returns a vector which contains either all ones
- * or all zeros, depending on the sign of the corresponding input vector
- * element.
- *
- * Note that the signbit functions are not logically equivalent to
- * x < 0.0. IEEE 754 floating point rules include a signed zero, so if
- * the input value is –0.0, signbit will return non-zero, but the naive
- * implementation will not.
- *
- * RETURNS
- * The function signbitf4 returns an unsigned int vector in which each
- * element is defined as:
- *
- * - ULLONG_MAX (0xFFFFFFFFFFFFFFFF) if the sign bit is set for the
- * corresponding element of x
- * - 0 (0x0000000000000000) otherwise.
- *
- */
-static __inline vector unsigned long long _signbitd2(vector double x)
-{
- vec_uchar16 shuf = ((vec_uchar16){0, 1, 2, 3, 0, 1, 2, 3, 8, 9, 10, 11, 8, 9, 10, 11});
- vec_uint4 r = spu_rlmaska((vec_uint4)x,-31);
- return (vec_ullong2)spu_shuffle(r,r,shuf);
-}
-#endif /* _SIGNBITD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/simdmath.h b/newlib/libm/machine/spu/headers/simdmath.h
deleted file mode 100644
index 3330d79b7..000000000
--- a/newlib/libm/machine/spu/headers/simdmath.h
+++ /dev/null
@@ -1,267 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2006,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifndef __SIMD_MATH_H__
-#define __SIMD_MATH_H__ 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if !defined(__SPU__) && !defined(__ALTIVEC__)
-#error Bad platform
-#else
-
-#define SM_E 2.7182818284590452354 /* e */
-#define SM_LOG2E 1.4426950408889634074 /* log_2 e */
-#define SM_LOG10E 0.43429448190325182765 /* log_10 e */
-#define SM_LN2 0.69314718055994530942 /* log_e 2 */
-#define SM_LN10 2.30258509299404568402 /* log_e 10 */
-#define SM_PI 3.14159265358979323846 /* pi */
-#define SM_PI_2 1.57079632679489661923 /* pi/2 */
-#define SM_PI_4 0.78539816339744830962 /* pi/4 */
-#define SM_1_PI 0.31830988618379067154 /* 1/pi */
-#define SM_2_PI 0.63661977236758134308 /* 2/pi */
-#define SM_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */
-#define SM_SQRT2 1.41421356237309504880 /* sqrt(2) */
-#define SM_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */
-
-/* Typedefs common to both SPU and PPU */
-typedef struct divi4_s {
- vector signed int quot;
- vector signed int rem;
-} divi4_t;
-
-typedef struct divu4_s {
- vector unsigned int quot;
- vector unsigned int rem;
-} divu4_t;
-
-
-/* Functions common to both SPU and PPU */
-vector signed int absi4(vector signed int x);
-vector float acosf4(vector float x);
-vector float acoshf4(vector float x);
-vector float asinf4(vector float x);
-vector float asinhf4(vector float x);
-vector float atanf4(vector float x);
-vector float atanhf4(vector float x);
-vector float atan2f4(vector float y, vector float x);
-vector float cbrtf4(vector float x);
-vector float ceilf4(vector float x);
-vector float copysignf4(vector float x, vector float y);
-vector float cosf4(vector float x);
-vector float coshf4(vector float x);
-vector float divf4(vector float x, vector float y);
-vector float divf4_fast(vector float x, vector float y);
-divi4_t divi4(vector signed int dividend, vector signed int divisor);
-divu4_t divu4(vector unsigned int dividend, vector unsigned int divisor);
-vector float erff4(vector float x);
-vector float erfcf4(vector float x);
-vector float exp2f4(vector float x);
-vector float expf4(vector float x);
-vector float expm1f4(vector float x);
-vector float fabsf4(vector float value);
-vector float fdimf4(vector float x, vector float y);
-vector float floorf4(vector float value);
-vector float fmaf4(vector float x, vector float y, vector float z);
-vector float fmaxf4(vector float x, vector float y);
-vector float fminf4(vector float x, vector float y);
-vector float fmodf4(vector float x, vector float y);
-vector signed int fpclassifyf4(vector float x);
-vector float frexpf4(vector float x, vector signed int *pexp);
-vector float hypotf4(vector float x, vector float y);
-vector signed int ilogbf4(vector float x);
-vector signed int irintf4(vector float x);
-vector signed int iroundf4(vector float x);
-vector unsigned int is0denormf4(vector float x);
-vector unsigned int isequalf4(vector float x, vector float y);
-vector unsigned int isfinitef4(vector float x);
-vector unsigned int isgreaterf4(vector float x, vector float y);
-vector unsigned int isgreaterequalf4(vector float x, vector float y);
-vector unsigned int isinff4(vector float x);
-vector unsigned int islessf4(vector float x, vector float y);
-vector unsigned int islessequalf4(vector float x, vector float y);
-vector unsigned int islessgreaterf4(vector float x, vector float y);
-vector unsigned int isnanf4(vector float x);
-vector unsigned int isnormalf4(vector float x);
-vector unsigned int isunorderedf4(vector float x, vector float y);
-vector float ldexpf4(vector float x, vector signed int exp);
-vector float lgammaf4(vector float x);
-vector float log10f4(vector float x);
-vector float log1pf4(vector float x);
-vector float log2f4(vector float x);
-vector float logbf4(vector float x);
-vector float logf4(vector float x);
-vector float modff4(vector float x, vector float *pint);
-vector float nearbyintf4(vector float x);
-vector float negatef4(vector float x);
-vector signed int negatei4(vector signed int x);
-vector float nextafterf4(vector float x, vector float y);
-vector float powf4(vector float x, vector float y);
-vector float recipf4(vector float a);
-vector float remainderf4(vector float x, vector float y);
-vector float remquof4(vector float x, vector float y, vector signed int *quo);
-vector float rintf4(vector float x);
-vector float roundf4(vector float x);
-vector float rsqrtf4(vector float value);
-vector float scalbnf4(vector float x, vector signed int exp);
-vector unsigned int signbitf4(vector float x);
-void sincosf4(vector float x, vector float *sx, vector float *cx);
-vector float sinf4(vector float x);
-vector float sinhf4(vector float x);
-vector float sqrtf4(vector float in);
-vector float tanf4(vector float angle);
-vector float tanhf4(vector float x);
-vector float tgammaf4(vector float x);
-vector float truncf4(vector float x);
-
-
-#ifdef __SPU__
-/* Typedefs specific to SPU */
-typedef struct llroundf4_s {
- vector signed long long vll[2];
-} llroundf4_t;
-
-typedef struct lldivi2_s {
- vector signed long long quot;
- vector signed long long rem;
-} lldivi2_t;
-
-typedef struct lldivu2_s {
- vector unsigned long long quot;
- vector unsigned long long rem;
-} lldivu2_t;
-
-
-/* Functions specific to SPU */
-llroundf4_t llrintf4(vector float in);
-llroundf4_t llroundf4 (vector float x);
-vector double acosd2(vector double x);
-vector double acoshd2(vector double x);
-vector double asind2(vector double x);
-vector double asinhd2(vector double x);
-vector double atan2d2(vector double y, vector double x);
-vector double atand2(vector double x);
-vector double atanhd2(vector double x);
-vector double cbrtd2(vector double x);
-vector double ceild2(vector double x);
-vector float ceilf4_fast(vector float x);
-vector double copysignd2(vector double x, vector double y);
-vector double cosd2(vector double x);
-vector double coshd2(vector double x);
-vector double divd2(vector double a, vector double b);
-vector double erfcd2(vector double x);
-vector double erfd2(vector double x);
-vector double exp2d2(vector double x);
-vector double expd2(vector double x);
-vector double expm1d2(vector double x);
-vector double fabsd2(vector double x);
-vector double fdimd2(vector double x, vector double y);
-vector double floord2(vector double x);
-vector float floorf4_fast(vector float value);
-vector double fmad2(vector double x, vector double y, vector double z);
-vector double fmaxd2(vector double x, vector double y);
-vector double fmind2(vector double x, vector double y);
-vector double fmodd2(vector double x, vector double y);
-vector float fmodf4_fast(vector float x, vector float y);
-vector signed long long fpclassifyd2(vector double x);
-vector double frexpd2(vector double x, vector signed long long *pexp);
-vector double hypotd2(vector double x, vector double y);
-vector signed long long ilogbd2(vector double x);
-vector unsigned long long is0denormd2(vector double x);
-vector unsigned long long isequald2(vector double x, vector double y);
-vector unsigned long long isfinited2(vector double x);
-vector unsigned long long isgreaterd2(vector double x, vector double y);
-vector unsigned long long isgreaterequald2(vector double x, vector double y);
-vector unsigned long long isinfd2(vector double x);
-vector unsigned long long islessd2(vector double x, vector double y);
-vector unsigned long long islessequald2(vector double x, vector double y);
-vector unsigned long long islessgreaterd2(vector double x, vector double y);
-vector unsigned long long isnand2(vector double x);
-vector unsigned long long isnormald2(vector double x);
-vector unsigned long long isunorderedd2(vector double x, vector double y);
-vector double ldexpd2(vector double x, vector signed long long exp);
-vector signed long long llabsi2(vector signed long long x);
-lldivi2_t lldivi2(vector signed long long x, vector signed long long y);
-lldivu2_t lldivu2(vector unsigned long long x, vector unsigned long long y);
-vector double lgammad2(vector double x);
-vector signed long long llrintd2(vector double in);
-vector signed long long llroundd2(vector double x);
-vector double log10d2(vector double x);
-vector double log1pd2(vector double x);
-vector double log2d2(vector double x);
-vector double logbd2(vector double x);
-vector double logd2(vector double x);
-vector double modfd2(vector double x, vector double* pint);
-vector double nearbyintd2(vector double x);
-vector double negated2(vector double x);
-vector double nextafterd2(vector double x, vector double y);
-vector signed long long negatell2(vector signed long long x);
-vector double powd2(vector double x, vector double y);
-vector double recipd2(vector double value_d);
-vector float recipf4_fast(vector float a);
-vector double remainderd2(vector double x, vector double y);
-vector double remquod2(vector double x, vector double y, vector signed long long *quo);
-vector double rintd2(vector double x);
-vector double roundd2(vector double x);
-vector double rsqrtd2(vector double x);
-vector double scalbllnd2(vector double x, vector signed long long n);
-vector unsigned long long signbitd2(vector double x);
-void sincosd2(vector double x, vector double *sx, vector double *cx);
-vector double sind2(vector double x);
-vector double sinhd2(vector double x);
-vector double sqrtd2(vector double x);
-vector float sqrtf4_fast(vector float in);
-vector double tand2(vector double x);
-vector double tanhd2(vector double x);
-vector double tgammad2(vector double x);
-vector double truncd2(vector double x);
-
-#endif /* __SPU__ */
-
-/* Functions specific to PPU */
-#ifdef __ALTIVEC__
-#endif
-
-#endif /* __SPU__ || __ALTIVEC__ */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __SIMD_MATH_H__ */
diff --git a/newlib/libm/machine/spu/headers/sin.h b/newlib/libm/machine/spu/headers/sin.h
deleted file mode 100644
index 5d3fac823..000000000
--- a/newlib/libm/machine/spu/headers/sin.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/sind2.h"
-
-static __inline double _sin(double angle)
-{
- return spu_extract(_sind2(spu_promote(angle, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/sincos.h b/newlib/libm/machine/spu/headers/sincos.h
deleted file mode 100644
index 37c7d9416..000000000
--- a/newlib/libm/machine/spu/headers/sincos.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#include "headers/sincosd2.h"
-
-static __inline void _sincos(double angle, double* sinx, double* cosx)
-{
- vector double vsinx, vcosx;
-
- _sincosd2(spu_promote(angle, 0), &vsinx, &vcosx);
- *sinx = spu_extract(vsinx, 0);
- *cosx = spu_extract(vcosx, 0);
-}
diff --git a/newlib/libm/machine/spu/headers/sincosd2.h b/newlib/libm/machine/spu/headers/sincosd2.h
deleted file mode 100644
index 5f3102d39..000000000
--- a/newlib/libm/machine/spu/headers/sincosd2.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _SINCOSD2_H_
-#define _SINCOSD2_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "cos_sin.h"
-
-/*
- * FUNCTION
- * void _sincosd2(vector double x, vector double *sx, vector double *cx)
- *
- * DESCRIPTION
- * The _sincosd2 function computes the sine and cosine of a vector of
- * angles (expressed in radians) to an accuracy of a double precision
- * floating point.
- *
- *
- */
-
-static __inline void _sincosd2(vector double angle,
- vector double *sinx,
- vector double *cosx)
-{
- vec_int4 octant;
- vec_ullong2 select;
- vec_double2 cos, sin;
- vec_double2 toggle_sign;
-
- /* Range reduce the input angle x into the range -PI/4 to PI/4
- * by performing simple modulus.
- */
- MOD_PI_OVER_FOUR(angle, octant);
-
- /* Compute the cosine and sine of the range reduced input.
- */
- COMPUTE_COS_SIN(angle, cos, sin);
-
- /*
- * See the comments for the sind2 and cosd2 functions for an
- * explanation of the following steps.
- */
- octant = spu_shuffle(octant, octant, ((vec_uchar16) { 0,1,2,3, 0,1,2,3, 8,9,10,11, 8,9,10,11 }));
- select = (vec_ullong2)spu_cmpeq(spu_and(octant, 2), 0);
-
- toggle_sign = (vec_double2)spu_sl(spu_and(spu_add(octant, 2), 4), ((vec_uint4) { 29,32,29,32 }));
- *cosx = spu_xor(spu_sel(sin, cos, select), toggle_sign);
-
- toggle_sign = (vec_double2)spu_sl(spu_and(octant, 4), ((vec_uint4) { 29,32,29,32 }));
- *sinx = spu_xor(spu_sel(cos, sin, select), toggle_sign);
-
- return;
-}
-
-#endif /* _SINCOSD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/sincosf.h b/newlib/libm/machine/spu/headers/sincosf.h
deleted file mode 100644
index e67e99701..000000000
--- a/newlib/libm/machine/spu/headers/sincosf.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#include "headers/sincosf4.h"
-
-static __inline void _sincosf(float angle, float* sinx, float* cosx)
-{
- vector float vsinx, vcosx;
-
- _sincosf4(spu_promote(angle, 0), &vsinx, &vcosx);
- *sinx = spu_extract(vsinx, 0);
- *cosx = spu_extract(vcosx, 0);
-}
diff --git a/newlib/libm/machine/spu/headers/sincosf4.h b/newlib/libm/machine/spu/headers/sincosf4.h
deleted file mode 100644
index 403897448..000000000
--- a/newlib/libm/machine/spu/headers/sincosf4.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _SINCOSF4_H_
-#define _SINCOSF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "cos_sin.h"
-
-/*
- * FUNCTION
- * vector void _sincosf4(vector float angle, vector float *sx, vector float *cx)
- *
- * DESCRIPTION
- * The _sincosf4 function computes the sine and cosine of a vector of
- * angles (expressed in radians) to an accuracy of a single precision
- * floating point.
- *
- */
-
-static __inline void _sincosf4(vector float angle,
- vector float *sinx,
- vector float *cosx)
-{
-
- vec_int4 octant;
- vec_uint4 select;
- vec_float4 cos, sin;
- vec_float4 toggle_sign;
-
- /* Range reduce the input angle x into the range -PI/4 to PI/4
- * by performing simple modulus.
- */
- MOD_PI_OVER_FOUR_F(angle, octant);
-
- /* Compute the cosine and sine of the range reduced input.
- */
- COMPUTE_COS_SIN_F(angle, cos, sin);
-
- select = spu_cmpeq(spu_and(octant, 2), 0);
-
- toggle_sign = (vec_float4)spu_sl(spu_and(octant, 4), 29);
- *sinx = spu_xor(spu_sel(cos, sin, select), toggle_sign);
-
- toggle_sign = (vec_float4)spu_sl(spu_and(spu_add(octant, 2), 4), 29);
- *cosx = spu_xor(spu_sel(sin, cos, select), toggle_sign);
-
- return;
-}
-
-#endif /* _SINCOSF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/sind2.h b/newlib/libm/machine/spu/headers/sind2.h
deleted file mode 100644
index b1a9d1ff2..000000000
--- a/newlib/libm/machine/spu/headers/sind2.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _SIND2_H_
-#define _SIND2_H_ 1
-
-#include <spu_intrinsics.h>
-#include "cos_sin.h"
-
-/*
- * FUNCTION
- * vector double _sind2(vector double angle)
- *
- * DESCRIPTION
- * The _sind2 function computes the sine of a vector of angles (expressed
- * in radians) to an accuracy of a double precision floating point.
- *
- */
-static __inline vector double _sind2(vector double angle)
-{
- vec_int4 octant;
- vec_ullong2 select;
- vec_double2 cos, sin;
- vec_double2 toggle_sign, answer;
-
- /* Range reduce the input angle x into the range -PI/4 to PI/4
- * by performing simple modulus.
- */
- MOD_PI_OVER_FOUR(angle, octant);
-
- /* Compute the cosine and sine of the range reduced input.
- */
- COMPUTE_COS_SIN(angle, cos, sin);
-
- /* For each SIMD element, select which result (cos or sin) to use
- * with a sign correction depending upon the octant of the original
- * angle (Maclaurin series).
- *
- * octants angles select sign toggle
- * ------- ------------ ------ -----------
- * 0 0 to 45 sin no
- * 1,2 45 to 135 cos no
- * 3,4 135 to 225 sin yes
- * 5,6 225 to 315 sin yes
- * 7 315 to 360 cos no
- */
- octant = spu_shuffle(octant, octant, ((vec_uchar16) {
- 0,1, 2, 3, 0,1, 2, 3,
- 8,9,10,11, 8,9,10,11 } ));
-
- toggle_sign = (vec_double2)spu_sl(spu_and(octant, 4), ((vec_uint4) { 29,32,29,32 }));
- select = (vec_ullong2)spu_cmpeq(spu_and(octant, 2), 0);
-
- answer = spu_xor(spu_sel(cos, sin, select), toggle_sign);
-
- return (answer);
-}
-
-#endif /* _SIND2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/sinf.h b/newlib/libm/machine/spu/headers/sinf.h
deleted file mode 100644
index 389050ba2..000000000
--- a/newlib/libm/machine/spu/headers/sinf.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/sinf4.h"
-
-static __inline float _sinf(float angle)
-{
- return spu_extract(_sinf4(spu_promote(angle, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/sinf4.h b/newlib/libm/machine/spu/headers/sinf4.h
deleted file mode 100644
index 90b20e63f..000000000
--- a/newlib/libm/machine/spu/headers/sinf4.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _SINF4_H_
-#define _SINF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "cos_sin.h"
-
-/*
- * FUNCTION
- * vector float _sind2(vector float angle)
- *
- * DESCRIPTION
- * The _sinf4 function computes the sine of a vector of angles (expressed
- * in radians) to an accuracy of a single precision floating point.
- *
- */
-static __inline vector float _sinf4(vector float angle)
-{
- vec_int4 octant;
- vec_uint4 select;
- vec_float4 cos, sin;
- vec_float4 toggle_sign, answer;
-
- /* Range reduce the input angle x into the range -PI/4 to PI/4
- * by performing simple modulus.
- */
- MOD_PI_OVER_FOUR_F(angle, octant);
-
- /* Compute the cosine and sine of the range reduced input.
- */
- COMPUTE_COS_SIN_F(angle, cos, sin);
-
- /* For each SIMD element, select which result (cos or sin) to use
- * with a sign correction depending upon the octant of the original
- * angle (Maclaurin series).
- *
- * octants angles select sign toggle
- * ------- ------------ ------ -----------
- * 0 0 to 45 sin no
- * 1,2 45 to 135 cos no
- * 3,4 135 to 225 sin yes
- * 5,6 225 to 315 cos yes
- * 7 315 to 360 sin no
- */
- toggle_sign = (vec_float4)spu_sl(spu_and(octant, 4), 29);
- select = spu_cmpeq(spu_and(octant, 2), 0);
-
- answer = spu_xor(spu_sel(cos, sin, select), toggle_sign);
-
- return (answer);
-}
-
-#endif /* _SINF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/sinh.h b/newlib/libm/machine/spu/headers/sinh.h
deleted file mode 100644
index f94afaf81..000000000
--- a/newlib/libm/machine/spu/headers/sinh.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/sinhd2.h"
-
-static __inline double _sinh(double x)
-{
- return spu_extract(_sinhd2(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/sinhd2.h b/newlib/libm/machine/spu/headers/sinhd2.h
deleted file mode 100644
index d87ec07a3..000000000
--- a/newlib/libm/machine/spu/headers/sinhd2.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2006,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _SINHD2_H_
-#define _SINHD2_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "expd2.h"
-#include "recipd2.h"
-
-/*
- * FUNCTION
- * vector double _sinhd2(vector double angle)
- *
- * DESCRIPTION
- * The _sinhd2 function computes the hyperbolic sine of a vector of
- * angles (expressed in radians) to an accuracy of a double precision
- * floating point.
- */
-static __inline vector double _sinhd2(vector double x)
-{
- // Coefficents for the power series
- vec_double2 f03 = spu_splats(1.66666666666666666667E-01); // 1/(3!)
- vec_double2 f05 = spu_splats(8.33333333333333333333E-03); // 1/(5!)
- vec_double2 f07 = spu_splats(1.98412698412698412698E-04); // 1/(7!)
- vec_double2 f09 = spu_splats(2.75573192239858906526E-06); // 1/(9!)
- vec_double2 f11 = spu_splats(2.50521083854417187751E-08); // 1/(11!)
- vec_double2 f13 = spu_splats(1.60590438368216145994E-10); // 1/(13!)
- vec_double2 f15 = spu_splats(7.64716373181981647590E-13); // 1/(15!)
- vec_double2 f17 = spu_splats(2.81145725434552076320E-15); // 1/(17!)
- vec_double2 f19 = spu_splats(8.22063524662432971696E-18); // 1/(19!)
- vec_double2 f21 = spu_splats(1.95729410633912612308E-20); // 1/(21!)
- vec_double2 f23 = spu_splats(3.86817017063068403772E-23); // 1/(23!)
-
-
-
- // Check if the input is within the range [ -1.0 ... 1.0 ]
- // If it is, we want to use the power series, otherwise
- // we want to use the 0.5 * (e^x - e^-x)
-
- // round to float, check if within range. Results will be in
- // slots 0 and 2, so we rotate right 4 bytes, and "or" with ourself
- // to produce 64 bits of all 1's or 0's.
- vec_uint4 use_exp = spu_cmpabsgt(spu_roundtf(x),spu_splats(1.0f));
- use_exp = spu_or(use_exp,spu_rlmaskqwbyte(use_exp,-4));
-
-
-
-
- // Perform the calculation of the power series using Horner's method
- vec_double2 result;
- vec_double2 x2 = spu_mul(x,x);
- result = spu_madd(x2,f23,f21);
- result = spu_madd(x2,result,f19);
- result = spu_madd(x2,result,f17);
- result = spu_madd(x2,result,f15);
- result = spu_madd(x2,result,f13);
- result = spu_madd(x2,result,f11);
- result = spu_madd(x2,result,f09);
- result = spu_madd(x2,result,f07);
- result = spu_madd(x2,result,f05);
- result = spu_madd(x2,result,f03);
- result = spu_madd(x2,result,spu_splats(1.0));
- result = spu_mul(x,result);
-
-
- // Perform calculation as a function of 0.5 * (e^x - e^-x)
- vec_double2 ex = _expd2(x);
- vec_double2 ex_inv = _recipd2(ex);
-
- vec_double2 r2= spu_sub(ex,ex_inv);
- r2 = spu_mul(r2,spu_splats(0.5));
-
-
- // Select either the power series or exp version
- result = spu_sel(result,r2,(vec_ullong2)use_exp);
-
-
-
- return result;
-
-}
-
-#endif /* _SINHD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/sinhf.h b/newlib/libm/machine/spu/headers/sinhf.h
deleted file mode 100644
index ddf99d4b6..000000000
--- a/newlib/libm/machine/spu/headers/sinhf.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/sinhf4.h"
-
-static __inline float _sinhf(float x)
-{
- return spu_extract(_sinhf4(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/sinhf4.h b/newlib/libm/machine/spu/headers/sinhf4.h
deleted file mode 100644
index 486f5d358..000000000
--- a/newlib/libm/machine/spu/headers/sinhf4.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2006,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _SINHF4_H_
-#define _SINHF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "expf4.h"
-#include "recipf4.h"
-
-
-/*
- * FUNCTION
- * vector float _sinhf4(vector float angle)
- *
- * DESCRIPTION
- * The _sinhf4 function computes the hyperbolic sine of a vector of
- * angles (expressed in radians) to an accuracy of a single precision
- * floating point.
- *
- */
-static __inline vector float _sinhf4(vector float x)
-{
- // 1.0000 (above this number, use sinh(x) = 0.5 * (e^x - e^-x)
- vec_uint4 threshold = (vec_uint4)spu_splats(0x3F800000);
-
- vec_uint4 sign_mask = (vec_uint4)spu_splats(0x80000000);
-
- // Coefficents for the Taylor series
- vec_float4 f03 = spu_splats(1.6666666666666667E-1f); // 1/3!
- vec_float4 f05 = spu_splats(8.3333333333333333E-3f); // 1/5!
- vec_float4 f07 = spu_splats(1.9841269841269841E-4f); // 1/7!
- vec_float4 f09 = spu_splats(2.7557319223985891E-6f); // 1/9!
- vec_float4 f11 = spu_splats(2.5052108385441719E-8f); // 1/11!
-
-
- // Perform the calculation as a Taylor series
- vec_float4 result;
- vec_float4 x2 = spu_mul(x,x);
- result = spu_madd(x2,f11,f09);
- result = spu_madd(x2,result,f07);
- result = spu_madd(x2,result,f05);
- result = spu_madd(x2,result,f03);
- result = spu_madd(x2,result,spu_splats(1.0f));
- result = spu_mul(x,result);
-
-
- // Perform calculation as a function of 0.5 * (e^x - e^-x)
- vec_float4 ex =_expf4(x);
- vec_float4 ex_inv = _recipf4(ex);
-
- vec_float4 r2= spu_sub(ex,ex_inv);
- r2 = spu_mul(r2,spu_splats(0.5f));
-
- vec_uint4 xabs = spu_andc((vec_uint4)x,sign_mask);
- vec_uint4 use_exp = spu_cmpgt(xabs,threshold);
-
- // Select either the Taylor or exp version
- result = spu_sel(result,r2,use_exp);
-
- // Flip the sign if needed
- result = (vec_float4)spu_or((vec_uint4)result,spu_and((vec_uint4)x,sign_mask));
-
- return result;
-
-}
-#endif /* _SINHF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/sqrt.h b/newlib/libm/machine/spu/headers/sqrt.h
deleted file mode 100644
index 63b034dd9..000000000
--- a/newlib/libm/machine/spu/headers/sqrt.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _SQRT_H_
-#define _SQRT_H_ 1
-
-/*
- * FUNCTION
- * double _sqrt(double in)
- *
- * DESCRIPTION
- * _sqrt computes the square root of the input "in" and returns the
- * result.
- */
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-#include "headers/dom_chkd_less_than.h"
-
-static __inline double _sqrt(double in)
-{
- vec_int4 bias_exp;
- vec_uint4 exp;
- vec_float4 fx, fg, fy, fd, fe, fy2, fhalf;
- vec_ullong2 nochange;
- vec_ullong2 mask = VEC_SPLAT_U64(0x7FE0000000000000ULL);
- vec_double2 x, dx, de, dd, dy, dg, dy2, dhalf;
- vec_double2 denorm, neg;
- vec_double2 vc = { 0.0, 0.0 };
-
- fhalf = VEC_SPLAT_F32(0.5f);
- dhalf = VEC_SPLAT_F64(0.5);
-
- /* Coerce the input, in, into the argument reduced space [0.5, 2.0).
- */
- x = spu_promote(in, 0);
- dx = spu_sel(x, dhalf, mask);
-
- /* Compute an initial single precision guess for the square root (fg)
- * and half reciprocal (fy2).
- */
- fx = spu_roundtf(dx);
-
- fy2 = spu_rsqrte(fx);
- fy = spu_mul(fy2, fhalf);
- fg = spu_mul(fy2, fx); /* 12-bit approximation to sqrt(cx) */
-
- /* Perform one single precision Newton-Raphson iteration to improve
- * accuracy to about 22 bits.
- */
- fe = spu_nmsub(fy, fg, fhalf);
- fd = spu_nmsub(fg, fg, fx);
-
- fy = spu_madd(fy2, fe, fy);
- fg = spu_madd(fy, fd, fg); /* 22-bit approximation */
-
- dy = spu_extend(fy);
- dg = spu_extend(fg);
-
- /* Perform two double precision Newton-Raphson iteration to improve
- * accuracy to about 44 and 88 bits repectively.
- */
- dy2 = spu_add(dy, dy);
- de = spu_nmsub(dy, dg, dhalf);
- dd = spu_nmsub(dg, dg, dx);
- dy = spu_madd(dy2, de, dy);
- dg = spu_madd(dy, dd, dg); /* 44 bit approximation */
-
- dd = spu_nmsub(dg, dg, dx);
- dg = spu_madd(dy, dd, dg); /* full double precision approximation */
-
-
- /* Compute the expected exponent assuming that it is not a special value.
- * See special value handling below.
- */
- bias_exp = spu_rlmaska(spu_sub((vec_int4)spu_and((vec_ullong2)x, mask),
- (vec_int4)VEC_SPLAT_U64(0x3FE0000000000000ULL)), -1);
- dg = (vec_double2)spu_add((vec_int4)dg, bias_exp);
-
-
- /* Handle special inputs. These include:
- *
- * input output
- * ========= =========
- * -0 -0
- * +infinity +infinity
- * NaN NaN
- * <0 NaN
- * denorm zero
- */
- exp = (vec_uint4)spu_and((vec_ullong2)x, VEC_SPLAT_U64(0xFFF0000000000000ULL));
- exp = spu_shuffle(exp, exp, VEC_LITERAL(vec_uchar16, 0,1,2,3,0,1,2,3, 8,9,10,11,8,9,10,11));
-
- neg = (vec_double2)spu_rlmaska((vec_int4)exp, -31);
- denorm = (vec_double2)spu_rlmask(spu_cmpeq(spu_sl(exp, 1), 0), VEC_LITERAL(vec_int4, -1,0,-1,0));
-
- nochange = (vec_ullong2)spu_cmpeq(exp, 0x7FF00000);
-
- dg = spu_sel(spu_andc(spu_or(dg, neg), denorm), x, nochange);
-
-#ifndef _IEEE_LIBM
- dom_chkd_less_than(spu_splats(in), vc);
-#endif
- return (spu_extract(dg, 0));
-}
-#endif /* _SQRT_H_ */
diff --git a/newlib/libm/machine/spu/headers/sqrtd2.h b/newlib/libm/machine/spu/headers/sqrtd2.h
deleted file mode 100644
index b5c527b13..000000000
--- a/newlib/libm/machine/spu/headers/sqrtd2.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _SQRTD2_H_
-#define _SQRTD2_H_ 1
-
-#include <spu_intrinsics.h>
-
-/*
- * FUNCTION
- * vector double _sqrtd2(vector double in)
- *
- * DESCRIPTION
- * The _sqrtd2 function computes the square root of the vector input "in"
- * and returns the result.
- *
- */
-static __inline vector double _sqrtd2(vector double in)
-{
- vec_int4 bias_exp;
- vec_uint4 exp;
- vec_float4 fx, fg, fy, fd, fe, fy2, fhalf;
- vec_ullong2 nochange, denorm;
- vec_ullong2 mask = spu_splats(0x7FE0000000000000ULL);
- vec_double2 dx, de, dd, dy, dg, dy2, dhalf;
- vec_double2 neg;
- vec_double2 one = spu_splats(1.0);
- vec_double2 two_pow_52 = (vec_double2)spu_splats(0x4330000000000000ULL);
-
- /* If the input is a denorm, then multiply it by 2^52 so that the input is no
- * longer denormal.
- */
- exp = (vec_uint4)spu_and((vec_ullong2)in, spu_splats(0xFFF0000000000000ULL));
- denorm = (vec_ullong2)spu_cmpeq(exp,0);
-
- in = spu_mul(in, spu_sel(one, two_pow_52, denorm));
-
- fhalf = spu_splats(0.5f);
- dhalf = spu_splats(0.5);
-
- /* Coerce the input, in, into the argument reduced space [0.5, 2.0).
- */
- dx = spu_sel(in, dhalf, mask);
-
- /* Compute an initial single precision guess for the square root (fg)
- * and half reciprocal (fy2).
- */
- fx = spu_roundtf(dx);
-
- fy2 = spu_rsqrte(fx);
- fy = spu_mul(fy2, fhalf);
- fg = spu_mul(fy2, fx); /* 12-bit approximation to sqrt(cx) */
-
- /* Perform one single precision Newton-Raphson iteration to improve
- * accuracy to about 22 bits.
- */
- fe = spu_nmsub(fy, fg, fhalf);
- fd = spu_nmsub(fg, fg, fx);
-
- fy = spu_madd(fy2, fe, fy);
- fg = spu_madd(fy, fd, fg); /* 22-bit approximation */
-
- dy = spu_extend(fy);
- dg = spu_extend(fg);
-
- /* Perform two double precision Newton-Raphson iteration to improve
- * accuracy to about 44 and 88 bits repectively.
- */
- dy2 = spu_add(dy, dy);
- de = spu_nmsub(dy, dg, dhalf);
- dd = spu_nmsub(dg, dg, dx);
- dy = spu_madd(dy2, de, dy);
- dg = spu_madd(dy, dd, dg); /* 44 bit approximation */
-
- dd = spu_nmsub(dg, dg, dx);
- dg = spu_madd(dy, dd, dg); /* full double precision approximation */
-
-
- /* Compute the expected exponent assuming that it is not a special value.
- * See special value handling below.
- */
- bias_exp = spu_rlmaska(spu_sub((vec_int4)spu_and((vec_ullong2)in, mask),
- (vec_int4)spu_splats(0x3FE0000000000000ULL)),
- -1);
-
- /* Adjust the exponent bias if the input was denormalized */
- bias_exp = spu_sub(bias_exp, (vec_int4)spu_and(spu_splats(0x01A0000000000000ULL), denorm));
-
- dg = (vec_double2)spu_add((vec_int4)dg, bias_exp);
-
- /* Handle special inputs. These include:
- *
- * input output
- * ========= =========
- * -0 -0
- * 0 0
- * +infinity +infinity
- * NaN NaN
- * <0 NaN
- */
- exp = spu_shuffle(exp, exp, ((vec_uchar16) { 0,1,2,3,0,1,2,3, 8,9,10,11,8,9,10,11 }));
-
- neg = (vec_double2)spu_rlmaska((vec_int4)exp, -31);
- nochange = spu_or((vec_ullong2)spu_cmpeq(exp, 0x7FF00000),
- spu_cmpeq(in, spu_splats(0.0)));
-
- dg = spu_sel(spu_or(dg, neg), in, nochange);
-
- return (dg);
-}
-#endif /* _SQRTD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/sqrtf.h b/newlib/libm/machine/spu/headers/sqrtf.h
deleted file mode 100644
index c1f5ab223..000000000
--- a/newlib/libm/machine/spu/headers/sqrtf.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "headers/sqrtf4.h"
-#include "headers/dom_chkf_less_than.h"
-
-static __inline float _sqrtf(float in)
-{
- float res;
- vector float vx;
- vector float vc = { 0.0, 0.0, 0.0, 0.0 };
-
- vx = spu_promote(in, 0);
- res = spu_extract(_sqrtf4(vx), 0);
-#ifndef _IEEE_LIBM
- dom_chkf_less_than(vx, vc);
-#endif
- return res;
-}
diff --git a/newlib/libm/machine/spu/headers/sqrtf4.h b/newlib/libm/machine/spu/headers/sqrtf4.h
deleted file mode 100644
index 4565ab406..000000000
--- a/newlib/libm/machine/spu/headers/sqrtf4.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _SQRTF4_H_
-#define _SQRTF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-/*
- * FUNCTION
- * vector float _sqrtf4(vector float in)
- *
- * DESCRIPTION
- * The _sqrtf4 function computes the square root of the vector input "in"
- *and returns the result.
- *
- */
-static __inline vector float _sqrtf4(vector float in)
-{
- vec_uint4 exp, valid;
- vec_uint4 mask = spu_splats((unsigned int)0xFF000000);
- vec_uint4 half = spu_splats((unsigned int)0x00800000);
- vec_float4 one = spu_splats(1.0f);
- vec_float4 three = spu_splats(3.0f);
- vec_float4 x, y0, y1, y1_n1, y1_p1, y1_p2, y1_p3;
- vec_float4 mant, err, err_p1, err_p2, err_p3;
- vec_float4 out;
-
- /* Compute the mantissa of the result seperately from
- * the exponent to assure complete accuracy over the allowable
- * input range. The mantissa is computed for inputs in the
- * range [0.5, 2.0).
- */
- x = spu_sel(in, one, mask);
- y0 = spu_rsqrte(x);
-
- /* Perform one iteration of the Newton-Raphsom method in single precision
- * arithmetic.
- */
- y1 = spu_mul(spu_nmsub(x, spu_mul(y0, y0), three),
- spu_mul(y0, (vec_float4)(spu_sub((vec_uint4)(x), half))));
-
- /* Correct the result for possible error. The range of error is -3 to +1.
- * Identify the extent of the error and correct for it.
- */
- y1_p3 = (vec_float4)spu_add((vec_uint4)(y1), 3);
- y1_p2 = (vec_float4)spu_add((vec_uint4)(y1), 2);
- y1_p1 = (vec_float4)spu_add((vec_uint4)(y1), 1);
- y1_n1 = (vec_float4)spu_add((vec_uint4)(y1), -1);
-
- err = spu_nmsub(y1, y1, x);
- err_p1 = spu_nmsub(y1_p1, y1_p1, x);
- err_p2 = spu_nmsub(y1_p2, y1_p2, x);
- err_p3 = spu_nmsub(y1_p3, y1_p3, x);
-
- mant = spu_sel(y1_n1, y1, spu_cmpgt((vec_int4)(err), -1));
- mant = spu_sel(mant, y1_p1, spu_cmpgt((vec_int4)(err_p1), -1));
- mant = spu_sel(mant, y1_p2, spu_cmpgt((vec_int4)(err_p2), -1));
- mant = spu_sel(mant, y1_p3, spu_cmpgt((vec_int4)(err_p3), -1));
-
- /* Compute the expected exponent. If the exponent is zero or the input is
- * negative, then set the result to zero.
- */
- exp = spu_rlmask(spu_add((vec_uint4)(in), (vec_uint4)(one)), -1);
-
- valid = spu_cmpgt(spu_and((vec_int4)(in), (vec_int4)(mask)), 0);
-
- /* Merge the computed exponent and mantissa.
- */
- out = spu_and(spu_sel(mant, (vec_float4)(exp), spu_splats(0xFF800000)), (vec_float4)(valid));
-
-
- return (out);
-
-}
-
-#endif /* _SQRTF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/tan.h b/newlib/libm/machine/spu/headers/tan.h
deleted file mode 100644
index 04072fb86..000000000
--- a/newlib/libm/machine/spu/headers/tan.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/tand2.h"
-
-static __inline double _tan(double angle)
-{
- return spu_extract(_tand2(spu_promote(angle, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/tand2.h b/newlib/libm/machine/spu/headers/tand2.h
deleted file mode 100644
index 91c76ce4f..000000000
--- a/newlib/libm/machine/spu/headers/tand2.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _TAND2_H_
-#define _TAND2_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "cos_sin.h"
-#include "divd2.h"
-
-/*
- * FUNCTION
- * vector double _tand2(vector double angle)
- *
- * DESCRIPTION
- * The _tand2 function computes the tangent of a vector of "angle"s
- * (expressed in radians) to an accuracy of double precision floating
- * point.
- *
- */
-static __inline vector double _tand2(vector double angle)
-{
- vec_int4 octant;
- vec_ullong2 select;
- vec_double2 cos, sin;
- vec_double2 num, den;
- vec_double2 toggle_sign, answer;
-
- /* Range reduce the input angle x into the range -PI/4 to PI/4
- * by performing simple modulus.
- */
- MOD_PI_OVER_FOUR(angle, octant);
-
- /* Compute the cosine and sine of the range reduced input.
- */
- COMPUTE_COS_SIN(angle, cos, sin);
-
- /* For each SIMD element, select the numerator, denominator, and sign
- * correction depending upon the octant of the original angle.
- *
- * octants angles numerator denominator sign toggle
- * ------- ------------ --------- ----------- -----------
- * 0 0 to 45 sin cos no
- * 1,2 45 to 135 cos sin no,yes
- * 3,4 135 to 225 sin cos yes,no
- * 5,6 225 to 315 cos sin no,yes
- * 7 315 to 360 sin cos yes
- */
- octant = spu_shuffle(octant, octant, ((vec_uchar16) {
- 0,1, 2, 3, 0,1, 2, 3,
- 8,9,10,11, 8,9,10,11 }));
-
- toggle_sign = spu_and((vec_double2)spu_sl(octant, 30),
- (vec_double2) spu_splats(0x8000000000000000ULL));
-
- select = (vec_ullong2)spu_cmpeq(spu_and(octant, 2), 0);
- num = spu_sel(cos, sin, select);
- den = spu_sel(sin, cos, select);
-
- answer = spu_xor(_divd2(num, den), toggle_sign);
-
- return (answer);
-}
-
-#endif /* _TAND2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/tanf.h b/newlib/libm/machine/spu/headers/tanf.h
deleted file mode 100644
index 6e10186c3..000000000
--- a/newlib/libm/machine/spu/headers/tanf.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/tanf4.h"
-
-static __inline float _tanf(float angle)
-{
- return spu_extract(_tanf4(spu_promote(angle, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/tanf4.h b/newlib/libm/machine/spu/headers/tanf4.h
deleted file mode 100644
index 879891e4e..000000000
--- a/newlib/libm/machine/spu/headers/tanf4.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _TANF4_H_
-#define _TANF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "cos_sin.h"
-#include "divf4.h"
-
-/*
- * FUNCTION
- * vector float _tanf4(vector float angle)
- *
- * DESCRIPTION
- * The _tanf4 function computes the tangent of a vector of "angle"s
- * (expressed in radians) to an accuracy of single precision floating
- * point.
- *
- */
-static __inline vector float _tanf4(vector float angle)
-{
- vec_int4 octant;
- vec_uint4 select;
- vec_float4 cos, sin;
- vec_float4 num, den;
- vec_float4 toggle_sign, answer;
-
- /* Range reduce the input angle x into the range -PI/4 to PI/4
- * by performing simple modulus.
- */
- MOD_PI_OVER_FOUR_F(angle, octant);
-
- /* Compute the cosine and sine of the range reduced input.
- */
- COMPUTE_COS_SIN_F(angle, cos, sin);
-
- /* For each SIMD element, select the numerator, denominator, and sign
- * correction depending upon the octant of the original angle.
- *
- * octants angles numerator denominator sign toggle
- * ------- ------------ --------- ----------- -----------
- * 0 0 to 45 sin cos no
- * 1,2 45 to 135 cos sin no,yes
- * 3,4 135 to 225 sin cos yes,no
- * 5,6 225 to 315 cos sin no,yes
- * 7 315 to 360 sin cos yes
- */
- toggle_sign = (vec_float4)spu_sl(spu_and(octant, 2), 30);
-
- select = spu_cmpeq(spu_and(octant, 2), 0);
- num = spu_sel(cos, sin, select);
- den = spu_sel(sin, cos, select);
-
- answer = spu_xor(_divf4(num, den), toggle_sign);
-
- return (answer);
-}
-
-#endif /* _TANF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/tanh.h b/newlib/libm/machine/spu/headers/tanh.h
deleted file mode 100644
index 03d29dc8d..000000000
--- a/newlib/libm/machine/spu/headers/tanh.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/tanhd2.h"
-
-static __inline double _tanh(double x)
-{
- return spu_extract(_tanhd2(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/tanhd2.h b/newlib/libm/machine/spu/headers/tanhd2.h
deleted file mode 100644
index 654cd99e9..000000000
--- a/newlib/libm/machine/spu/headers/tanhd2.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _TANHD2_H_
-#define _TANHD2_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "expd2.h"
-#include "divd2.h"
-
-
-/*
- * Taylor coefficients for tanh
- */
-#define TANH_TAY01 1.000000000000000000000000000000E0
-#define TANH_TAY02 -3.333333333333333333333333333333E-1
-#define TANH_TAY03 1.333333333333333333333333333333E-1
-#define TANH_TAY04 -5.396825396825396825396825396825E-2
-#define TANH_TAY05 2.186948853615520282186948853616E-2
-#define TANH_TAY06 -8.863235529902196568863235529902E-3
-#define TANH_TAY07 3.592128036572481016925461369906E-3
-#define TANH_TAY08 -1.455834387051318268249485180702E-3
-#define TANH_TAY09 5.900274409455859813780759937000E-4
-#define TANH_TAY10 -2.391291142435524814857314588851E-4
-#define TANH_TAY11 9.691537956929450325595875000389E-5
-#define TANH_TAY12 -3.927832388331683405337080809312E-5
-#define TANH_TAY13 1.591890506932896474074427981657E-5
-#define TANH_TAY14 -6.451689215655430763190842315303E-6
-#define TANH_TAY15 2.614771151290754554263594256410E-6
-#define TANH_TAY16 -1.059726832010465435091355394125E-6
-#define TANH_TAY17 4.294911078273805854820351280397E-7
-
-
-/*
- * FUNCTION
- * vector double _tanhd2(vector double x)
- *
- * DESCRIPTION
- * The _tanhd2 function computes the hyperbolic tangent for each
- * element of the input vector.
- *
- * We use the following to approximate tanh:
- *
- * |x| <= .25: Taylor Series
- * |x| > .25: tanh(x) = (exp(2x) - 1)/(exp(2x) + 1)
- *
- *
- * SPECIAL CASES:
- * - tanh(+/- 0) = +/-0
- * - tanh(+/- infinity) = +/- 1
- * - tanh(NaN) = NaN
- *
- */
-
-static __inline vector double _tanhd2(vector double x)
-{
- vector double signbit = spu_splats(-0.0);
- vector double oned = spu_splats(1.0);
- vector double twod = spu_splats(2.0);
- vector double infd = (vector double)spu_splats(0x7FF0000000000000ull);
- vector double xabs;
- vector double x2;
- vector unsigned long long gttaylor;
- vector double e;
- vector double tresult;
- vector double eresult;
- vector double result;
-
- xabs = spu_andc(x, signbit);
-
- /*
- * This is where we switch from Taylor Series
- * to exponential formula.
- */
- gttaylor = spu_cmpgt(xabs, spu_splats(0.25));
-
-
- /*
- * Taylor Series Approximation
- */
- x2 = spu_mul(x,x);
- tresult = spu_madd(x2, spu_splats(TANH_TAY11), spu_splats(TANH_TAY10));
- tresult = spu_madd(x2, tresult, spu_splats(TANH_TAY09));
- tresult = spu_madd(x2, tresult, spu_splats(TANH_TAY08));
- tresult = spu_madd(x2, tresult, spu_splats(TANH_TAY07));
- tresult = spu_madd(x2, tresult, spu_splats(TANH_TAY06));
- tresult = spu_madd(x2, tresult, spu_splats(TANH_TAY05));
- tresult = spu_madd(x2, tresult, spu_splats(TANH_TAY04));
- tresult = spu_madd(x2, tresult, spu_splats(TANH_TAY03));
- tresult = spu_madd(x2, tresult, spu_splats(TANH_TAY02));
- tresult = spu_madd(x2, tresult, spu_splats(TANH_TAY01));
- tresult = spu_mul(xabs, tresult);
-
-
- /*
- * Exponential Formula
- * Our expd2 function gives a more accurate result in general
- * with xabs instead of x for x<0. We correct for sign later.
- */
- e = _expd2(spu_mul(xabs, twod));
- eresult = _divd2(spu_sub(e, oned), spu_add(e, oned));
-
-
- /*
- * Select Taylor or exp result.
- */
- result = spu_sel(tresult, eresult, gttaylor);
-
- /*
- * Inf and NaN special cases. NaN is already in result
- * for x = NaN.
- */
- result = spu_sel(result, oned, spu_cmpeq(xabs, infd));
-
- /*
- * Antisymmetric function - preserve sign bit of x
- * in the result.
- */
- result = spu_sel(result, x, (vec_ullong2)signbit);
-
- return result;
-}
-
-#endif /* _TANHD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/tanhf.h b/newlib/libm/machine/spu/headers/tanhf.h
deleted file mode 100644
index 545b073fe..000000000
--- a/newlib/libm/machine/spu/headers/tanhf.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "headers/tanhf4.h"
-
-static __inline float _tanhf(float x)
-{
- return spu_extract(_tanhf4(spu_promote(x, 0)), 0);
-}
diff --git a/newlib/libm/machine/spu/headers/tanhf4.h b/newlib/libm/machine/spu/headers/tanhf4.h
deleted file mode 100644
index 6d45572b0..000000000
--- a/newlib/libm/machine/spu/headers/tanhf4.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _TANHF4_H_
-#define _TANHF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-#include "expf4.h"
-#include "divf4.h"
-
-#include "tanhd2.h"
-
-/*
- * FUNCTION
- * vector float _tanhf4(vector float x)
- *
- * DESCRIPTION
- * The _tanhf4 function computes the hyperbolic tangent for each
- * element of the input vector.
- *
- * We use the following to approximate tanh:
- *
- * |x| <= .25: Taylor Series
- * |x| > .25: tanh(x) = (exp(2x) - 1)/(exp(2x) + 1)
- *
- *
- * SPECIAL CASES:
- * - tanh(+/- 0) = +/-0
- * - tanh(+/- infinity) = +/- 1
- *
- */
-
-static __inline vector float _tanhf4(vector float x)
-{
- vector float signbit = spu_splats(-0.0f);
- vector float onef = spu_splats(1.0f);
- vector float twof = spu_splats(2.0f);
- vector float xabs;
- vector float x2;
- vector unsigned int gttaylor;
- vector float e;
- vector float tresult;
- vector float eresult;
- vector float result;
-
- xabs = spu_andc(x, signbit);
-
- /*
- * This is where we switch from Taylor Series
- * to exponential formula.
- */
- gttaylor = spu_cmpgt(xabs, spu_splats(0.25f));
-
-
- /*
- * Taylor Series Approximation
- */
- x2 = spu_mul(x,x);
- tresult = spu_madd(x2, spu_splats((float)TANH_TAY06), spu_splats((float)TANH_TAY05));
- tresult = spu_madd(x2, tresult, spu_splats((float)TANH_TAY04));
- tresult = spu_madd(x2, tresult, spu_splats((float)TANH_TAY03));
- tresult = spu_madd(x2, tresult, spu_splats((float)TANH_TAY02));
- tresult = spu_madd(x2, tresult, spu_splats((float)TANH_TAY01));
- tresult = spu_mul(xabs, tresult);
-
-
- /*
- * Exponential Formula
- * Our expf4 function gives a more accurate result in general
- * with xabs instead of x for x<0. We correct for sign later.
- */
- e = _expf4(spu_mul(xabs, twof));
- eresult = _divf4(spu_sub(e, onef), spu_add(e, onef));
-
-
- /*
- * Select Taylor or exp result.
- */
- result = spu_sel(tresult, eresult, gttaylor);
-
- /*
- * Correct for accumulated truncation error when
- * tanh(x) should return 1.
- * Note that this also handles the special case of
- * x = +/- infinity.
- */
- result = spu_sel(result, onef, spu_cmpgt(xabs, spu_splats(9.125f)));
-
- /*
- * Antisymmetric function - preserve sign bit of x
- * in the result.
- */
- result = spu_sel(result, x, (vec_uint4)signbit);
-
- return result;
-}
-
-#endif /* _TANHF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/tgamma.h b/newlib/libm/machine/spu/headers/tgamma.h
deleted file mode 100644
index bd2f31f27..000000000
--- a/newlib/libm/machine/spu/headers/tgamma.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#include <errno.h>
-#include "headers/truncd2.h"
-#include "headers/tgammad2.h"
-
-static __inline double _tgamma(double x)
-{
- double res;
- vector double vx;
- vector double truncx;
- vector double vc = { 0.0, 0.0 };
- vector unsigned long long cmpres;
- vector signed int verrno, ferrno;
- vector signed int fail = { EDOM, EDOM, EDOM, EDOM };
-
- vx = spu_promote(x, 0);
- res = spu_extract(_tgammad2(vx), 0);
-
-#ifndef _IEEE_LIBM
- /*
- * use vector truncd2 rather than splat x, and splat truncx.
- */
- truncx = _truncd2(vx);
- cmpres = spu_cmpeq(truncx, vx);
- verrno = spu_splats(errno);
- ferrno = spu_sel(verrno, fail, (vector unsigned int) cmpres);
- cmpres = spu_cmpgt(vc, vx);
- errno = spu_extract(spu_sel(verrno, ferrno, (vector unsigned int) cmpres), 0);
-#endif
- return res;
-}
diff --git a/newlib/libm/machine/spu/headers/tgammad2.h b/newlib/libm/machine/spu/headers/tgammad2.h
deleted file mode 100644
index fa0f2f325..000000000
--- a/newlib/libm/machine/spu/headers/tgammad2.h
+++ /dev/null
@@ -1,289 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-
-#ifndef _TGAMMAD2_H_
-#define _TGAMMAD2_H_ 1
-
-#include <spu_intrinsics.h>
-#include "simdmath.h"
-
-#include "recipd2.h"
-#include "truncd2.h"
-#include "expd2.h"
-#include "logd2.h"
-#include "divd2.h"
-#include "sind2.h"
-#include "powd2.h"
-
-
-/*
- * FUNCTION
- * vector double _tgammad2(vector double x)
- *
- * DESCRIPTION
- * _tgammad2
- *
- * This is an interesting function to approximate fast
- * and accurately. We take a fairly standard approach - break
- * the domain into 5 separate regions:
- *
- * 1. [-infinity, 0) - use
- * 2. [0, 1) - push x into [1,2), then adjust the
- * result.
- * 3. [1, 2) - use a rational approximation.
- * 4. [2, 10) - pull back into [1, 2), then adjust
- * the result.
- * 5. [10, +infinity] - use Stirling's Approximation.
- *
- *
- * Special Cases:
- * - tgamma(+/- 0) returns +/- infinity
- * - tgamma(negative integer) returns NaN
- * - tgamma(-infinity) returns NaN
- * - tgamma(infinity) returns infinity
- *
- */
-
-
-/*
- * Coefficients for Stirling's Series for Gamma()
- */
-/* 1/ 1 */
-#define STIRLING_00 1.000000000000000000000000000000000000E0
-/* 1/ 12 */
-#define STIRLING_01 8.333333333333333333333333333333333333E-2
-/* 1/ 288 */
-#define STIRLING_02 3.472222222222222222222222222222222222E-3
-/* -139/ 51840 */
-#define STIRLING_03 -2.681327160493827160493827160493827160E-3
-/* -571/ 2488320 */
-#define STIRLING_04 -2.294720936213991769547325102880658436E-4
-/* 163879/ 209018880 */
-#define STIRLING_05 7.840392217200666274740348814422888497E-4
-/* 5246819/ 75246796800 */
-#define STIRLING_06 6.972813758365857774293988285757833083E-5
-/* -534703531/ 902961561600 */
-#define STIRLING_07 -5.921664373536938828648362256044011874E-4
-/* -4483131259/ 86684309913600 */
-#define STIRLING_08 -5.171790908260592193370578430020588228E-5
-/* 432261921612371/ 514904800886784000 */
-#define STIRLING_09 8.394987206720872799933575167649834452E-4
-/* 6232523202521089/ 86504006548979712000 */
-#define STIRLING_10 7.204895416020010559085719302250150521E-5
-/* -25834629665134204969/ 13494625021640835072000 */
-#define STIRLING_11 -1.914438498565477526500898858328522545E-3
-/* -1579029138854919086429/ 9716130015581401251840000 */
-#define STIRLING_12 -1.625162627839158168986351239802709981E-4
-/* 746590869962651602203151/ 116593560186976815022080000 */
-#define STIRLING_13 6.403362833808069794823638090265795830E-3
-/* 1511513601028097903631961/ 2798245444487443560529920000 */
-#define STIRLING_14 5.401647678926045151804675085702417355E-4
-/* -8849272268392873147705987190261/ 299692087104605205332754432000000 */
-#define STIRLING_15 -2.952788094569912050544065105469382445E-2
-/* -142801712490607530608130701097701/ 57540880724084199423888850944000000 */
-#define STIRLING_16 -2.481743600264997730915658368743464324E-3
-
-
-/*
- * Rational Approximation Coefficients for the
- * domain [1, 2).
- */
-#define TGD2_P00 -1.8211798563156931777484715e+05
-#define TGD2_P01 -8.7136501560410004458390176e+04
-#define TGD2_P02 -3.9304030489789496641606092e+04
-#define TGD2_P03 -1.2078833505605729442322627e+04
-#define TGD2_P04 -2.2149136023607729839568492e+03
-#define TGD2_P05 -7.2672456596961114883015398e+02
-#define TGD2_P06 -2.2126466212611862971471055e+01
-#define TGD2_P07 -2.0162424149396112937893122e+01
-
-#define TGD2_Q00 1.0000000000000000000000000
-#define TGD2_Q01 -1.8212849094205905566923320e+05
-#define TGD2_Q02 -1.9220660507239613798446953e+05
-#define TGD2_Q03 2.9692670736656051303725690e+04
-#define TGD2_Q04 3.0352658363629092491464689e+04
-#define TGD2_Q05 -1.0555895821041505769244395e+04
-#define TGD2_Q06 1.2786642579487202056043316e+03
-#define TGD2_Q07 -5.5279768804094054246434098e+01
-
-static __inline vector double _tgammad2(vector double x)
-{
- vector double signbit = spu_splats(-0.0);
- vector double zerod = spu_splats(0.0);
- vector double halfd = spu_splats(0.5);
- vector double oned = spu_splats(1.0);
- vector double ninep9d = (vec_double2)spu_splats(0x4023FFFFFFFFFFFFull);
- vector double twohd = spu_splats(200.0);
- vector double pi = spu_splats(SM_PI);
- vector double sqrt2pi = spu_splats(2.50662827463100050241576528481);
- vector double inf = (vector double)spu_splats(0x7FF0000000000000ull);
- vector double nan = (vector double)spu_splats(0x7FF8000000000000ull);
-
-
- vector double xabs;
- vector double xscaled;
- vector double xtrunc;
- vector double xinv;
- vector double nresult;
- vector double rresult; /* Rational Approx result */
- vector double sresult; /* Stirling's result */
- vector double result;
- vector double pr,qr;
-
- vector unsigned long long gt0 = spu_cmpgt(x, zerod);
- vector unsigned long long gt1 = spu_cmpgt(x, oned);
- vector unsigned long long gt9p9 = spu_cmpgt(x, ninep9d);
- vector unsigned long long gt200 = spu_cmpgt(x, twohd);
-
-
- xabs = spu_andc(x, signbit);
-
- /*
- * For x in [0, 1], add 1 to x, use rational
- * approximation, then use:
- *
- * gamma(x) = gamma(x+1)/x
- *
- */
- xabs = spu_sel(spu_add(xabs, oned), xabs, gt1);
- xtrunc = _truncd2(xabs);
-
-
- /*
- * For x in [2, 10):
- */
- xscaled = spu_add(oned, spu_sub(xabs, xtrunc));
-
- /*
- * For x in [1,2), use a rational approximation.
- */
- pr = spu_madd(xscaled, spu_splats(TGD2_P07), spu_splats(TGD2_P06));
- pr = spu_madd(pr, xscaled, spu_splats(TGD2_P05));
- pr = spu_madd(pr, xscaled, spu_splats(TGD2_P04));
- pr = spu_madd(pr, xscaled, spu_splats(TGD2_P03));
- pr = spu_madd(pr, xscaled, spu_splats(TGD2_P02));
- pr = spu_madd(pr, xscaled, spu_splats(TGD2_P01));
- pr = spu_madd(pr, xscaled, spu_splats(TGD2_P00));
-
- qr = spu_madd(xscaled, spu_splats(TGD2_Q07), spu_splats(TGD2_Q06));
- qr = spu_madd(qr, xscaled, spu_splats(TGD2_Q05));
- qr = spu_madd(qr, xscaled, spu_splats(TGD2_Q04));
- qr = spu_madd(qr, xscaled, spu_splats(TGD2_Q03));
- qr = spu_madd(qr, xscaled, spu_splats(TGD2_Q02));
- qr = spu_madd(qr, xscaled, spu_splats(TGD2_Q01));
- qr = spu_madd(qr, xscaled, spu_splats(TGD2_Q00));
-
- rresult = _divd2(pr, qr);
- rresult = spu_sel(_divd2(rresult, x), rresult, gt1);
-
- /*
- * If x was in [2,10) and we pulled it into [1,2), we need to push
- * it back out again.
- */
- rresult = spu_sel(rresult, spu_mul(rresult, xscaled), spu_cmpgt(x, xscaled)); /* [2,3) */
- xscaled = spu_add(xscaled, oned);
- rresult = spu_sel(rresult, spu_mul(rresult, xscaled), spu_cmpgt(x, xscaled)); /* [3,4) */
- xscaled = spu_add(xscaled, oned);
- rresult = spu_sel(rresult, spu_mul(rresult, xscaled), spu_cmpgt(x, xscaled)); /* [4,5) */
- xscaled = spu_add(xscaled, oned);
- rresult = spu_sel(rresult, spu_mul(rresult, xscaled), spu_cmpgt(x, xscaled)); /* [5,6) */
- xscaled = spu_add(xscaled, oned);
- rresult = spu_sel(rresult, spu_mul(rresult, xscaled), spu_cmpgt(x, xscaled)); /* [6,7) */
- xscaled = spu_add(xscaled, oned);
- rresult = spu_sel(rresult, spu_mul(rresult, xscaled), spu_cmpgt(x, xscaled)); /* [7,8) */
- xscaled = spu_add(xscaled, oned);
- rresult = spu_sel(rresult, spu_mul(rresult, xscaled), spu_cmpgt(x, xscaled)); /* [8,9) */
- xscaled = spu_add(xscaled, oned);
- rresult = spu_sel(rresult, spu_mul(rresult, xscaled), spu_cmpgt(x, xscaled)); /* [9,10) */
-
-
- /*
- * For x >= 10, we use Stirling's Approximation
- */
- vector double sum;
- xinv = _recipd2(xabs);
- sum = spu_madd(xinv, spu_splats(STIRLING_16), spu_splats(STIRLING_15));
- sum = spu_madd(sum, xinv, spu_splats(STIRLING_14));
- sum = spu_madd(sum, xinv, spu_splats(STIRLING_13));
- sum = spu_madd(sum, xinv, spu_splats(STIRLING_12));
- sum = spu_madd(sum, xinv, spu_splats(STIRLING_11));
- sum = spu_madd(sum, xinv, spu_splats(STIRLING_10));
- sum = spu_madd(sum, xinv, spu_splats(STIRLING_09));
- sum = spu_madd(sum, xinv, spu_splats(STIRLING_08));
- sum = spu_madd(sum, xinv, spu_splats(STIRLING_07));
- sum = spu_madd(sum, xinv, spu_splats(STIRLING_06));
- sum = spu_madd(sum, xinv, spu_splats(STIRLING_05));
- sum = spu_madd(sum, xinv, spu_splats(STIRLING_04));
- sum = spu_madd(sum, xinv, spu_splats(STIRLING_03));
- sum = spu_madd(sum, xinv, spu_splats(STIRLING_02));
- sum = spu_madd(sum, xinv, spu_splats(STIRLING_01));
- sum = spu_madd(sum, xinv, spu_splats(STIRLING_00));
-
- sum = spu_mul(sum, sqrt2pi);
- sum = spu_mul(sum, _powd2(x, spu_sub(x, halfd)));
- sresult = spu_mul(sum, _expd2(spu_or(x, signbit)));
-
- /*
- * Choose rational approximation or Stirling's result.
- */
- result = spu_sel(rresult, sresult, gt9p9);
-
-
- result = spu_sel(result, inf, gt200);
-
- /* For x < 0, use:
- *
- * gamma(x) = pi/(x*gamma(-x)*sin(x*pi))
- * or
- * gamma(x) = pi/(gamma(1 - x)*sin(x*pi))
- */
- nresult = _divd2(pi, spu_mul(x, spu_mul(result, _sind2(spu_mul(x, pi)))));
- result = spu_sel(nresult, result, gt0);
-
- /*
- * x = non-positive integer, return NaN.
- */
- result = spu_sel(result, nan, spu_andc(spu_cmpeq(x, xtrunc), gt0));
-
-
- return result;
-}
-
-#endif /* _TGAMMAD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/tgammaf.h b/newlib/libm/machine/spu/headers/tgammaf.h
deleted file mode 100644
index a30928c60..000000000
--- a/newlib/libm/machine/spu/headers/tgammaf.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <errno.h>
-#include "headers/truncf4.h"
-#include "headers/tgammaf4.h"
-
-static __inline float _tgammaf(float x)
-{
- float res;
- vector float vx;
- vector float truncx;
- vector float vc = { 0.0, 0.0 };
- vector unsigned int cmpres;
- vector signed int verrno, ferrno;
- vector signed int fail = { EDOM, EDOM, EDOM, EDOM };
-
- vx = spu_promote(x, 0);
- res = spu_extract(_tgammaf4(vx), 0);
-#ifndef _IEEE_LIBM
- /*
- * use vector truncf4 rather than splat x, and splat truncx.
- */
- truncx = _truncf4(vx);
- cmpres = spu_cmpeq(truncx, vx);
- verrno = spu_splats(errno);
- ferrno = spu_sel(verrno, fail, (vector unsigned int) cmpres);
- cmpres = spu_cmpgt(vc, vx);
- errno = spu_extract(spu_sel(verrno, ferrno, (vector unsigned int) cmpres), 0);
-#endif
- return res;
-}
diff --git a/newlib/libm/machine/spu/headers/tgammaf4.h b/newlib/libm/machine/spu/headers/tgammaf4.h
deleted file mode 100644
index 396146a57..000000000
--- a/newlib/libm/machine/spu/headers/tgammaf4.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2007,2008, */
-/* International Business Machines Corporation */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _TGAMMAF4_H_
-#define _TGAMMAF4_H_ 1
-
-#include <spu_intrinsics.h>
-#include "simdmath.h"
-
-#include "recipf4.h"
-#include "truncf4.h"
-#include "expf4.h"
-#include "logf4.h"
-#include "divf4.h"
-#include "sinf4.h"
-#include "powf4.h"
-#include "tgammad2.h"
-
-/*
- * FUNCTION
- * vector float _tgammaf4(vector float x)
- *
- * DESCRIPTION
- * The tgammaf4 function returns a vector containing tgamma for each
- * element of x
- *
- * We take a fairly standard approach - break the domain into 5 separate regions:
- *
- * 1. [-infinity, 0) - use gamma(x) = pi/(x*gamma(-x)*sin(x*pi))
- * 2. [0, 1) - push x into [1,2), then adjust the
- * result.
- * 3. [1, 2) - use a rational approximation.
- * 4. [2, 10) - pull back into [1, 2), then adjust
- * the result.
- * 5. [10, +infinity] - use Stirling's Approximation.
- *
- *
- * Special Cases:
- * - tgamma(+/- 0) returns +/- infinity
- * - tgamma(negative integer) returns NaN
- * - tgamma(-infinity) returns NaN
- * - tgamma(infinity) returns infinity
- *
- */
-
-/*
- * Coefficients for Stirling's Series for Gamma() are defined in
- * tgammad2.h
- */
-
-/*
- * Rational Approximation Coefficients for the
- * domain [1, 2) are defined in tgammad2.h
- */
-
-
-static __inline vector float _tgammaf4(vector float x)
-{
- vector float signbit = spu_splats(-0.0f);
- vector float zerof = spu_splats(0.0f);
- vector float halff = spu_splats(0.5f);
- vector float onef = spu_splats(1.0f);
- vector float ninep9f = (vector float)spu_splats(0x411FFFFF); /* Next closest to 10.0 */
- vector float t38f = spu_splats(38.0f);
- vector float pi = spu_splats((float)SM_PI);
- vector float sqrt2pi = spu_splats(2.506628274631000502415765284811f);
- vector float inf = (vec_float4)spu_splats(0x7F800000);
- vector float nan = (vec_float4)spu_splats(0x7FFFFFFF);
-
- vector float xabs;
- vector float xscaled;
- vector float xtrunc;
- vector float xinv;
- vector float nresult; /* Negative x result */
- vector float rresult; /* Rational Approx result */
- vector float sresult; /* Stirling's result */
- vector float result;
- vector float pr,qr;
-
- vector unsigned int gt0 = spu_cmpgt(x, zerof);
- vector unsigned int gt1 = spu_cmpgt(x, onef);
- vector unsigned int gt9p9 = spu_cmpgt(x, ninep9f);
- vector unsigned int gt38 = spu_cmpgt(x, t38f);
-
- xabs = spu_andc(x, signbit);
-
- /*
- * For x in [0, 1], add 1 to x, use rational
- * approximation, then use:
- *
- * gamma(x) = gamma(x+1)/x
- *
- */
- xabs = spu_sel(spu_add(xabs, onef), xabs, gt1);
- xtrunc = _truncf4(xabs);
-
-
- /*
- * For x in [2, 10):
- */
- xscaled = spu_add(onef, spu_sub(xabs, xtrunc));
-
- /*
- * For x in [1,2), use a rational approximation.
- */
- pr = spu_madd(xscaled, spu_splats((float)TGD2_P07), spu_splats((float)TGD2_P06));
- pr = spu_madd(pr, xscaled, spu_splats((float)TGD2_P05));
- pr = spu_madd(pr, xscaled, spu_splats((float)TGD2_P04));
- pr = spu_madd(pr, xscaled, spu_splats((float)TGD2_P03));
- pr = spu_madd(pr, xscaled, spu_splats((float)TGD2_P02));
- pr = spu_madd(pr, xscaled, spu_splats((float)TGD2_P01));
- pr = spu_madd(pr, xscaled, spu_splats((float)TGD2_P00));
-
- qr = spu_madd(xscaled, spu_splats((float)TGD2_Q07), spu_splats((float)TGD2_Q06));
- qr = spu_madd(qr, xscaled, spu_splats((float)TGD2_Q05));
- qr = spu_madd(qr, xscaled, spu_splats((float)TGD2_Q04));
- qr = spu_madd(qr, xscaled, spu_splats((float)TGD2_Q03));
- qr = spu_madd(qr, xscaled, spu_splats((float)TGD2_Q02));
- qr = spu_madd(qr, xscaled, spu_splats((float)TGD2_Q01));
- qr = spu_madd(qr, xscaled, spu_splats((float)TGD2_Q00));
-
- rresult = _divf4(pr, qr);
- rresult = spu_sel(_divf4(rresult, x), rresult, gt1);
-
- /*
- * If x was in [2,10) and we pulled it into [1,2), we need to push
- * it back out again.
- */
- rresult = spu_sel(rresult, spu_mul(rresult, xscaled), spu_cmpgt(x, xscaled)); /* [2,3) */
- xscaled = spu_add(xscaled, onef);
- rresult = spu_sel(rresult, spu_mul(rresult, xscaled), spu_cmpgt(x, xscaled)); /* [3,4) */
- xscaled = spu_add(xscaled, onef);
- rresult = spu_sel(rresult, spu_mul(rresult, xscaled), spu_cmpgt(x, xscaled)); /* [4,5) */
- xscaled = spu_add(xscaled, onef);
- rresult = spu_sel(rresult, spu_mul(rresult, xscaled), spu_cmpgt(x, xscaled)); /* [5,6) */
- xscaled = spu_add(xscaled, onef);
- rresult = spu_sel(rresult, spu_mul(rresult, xscaled), spu_cmpgt(x, xscaled)); /* [6,7) */
- xscaled = spu_add(xscaled, onef);
- rresult = spu_sel(rresult, spu_mul(rresult, xscaled), spu_cmpgt(x, xscaled)); /* [7,8) */
- xscaled = spu_add(xscaled, onef);
- rresult = spu_sel(rresult, spu_mul(rresult, xscaled), spu_cmpgt(x, xscaled)); /* [8,9) */
- xscaled = spu_add(xscaled, onef);
- rresult = spu_sel(rresult, spu_mul(rresult, xscaled), spu_cmpgt(x, xscaled)); /* [9,10) */
-
-
- /*
- * For x >= 10, we use Stirling's Approximation
- */
- vector float sum;
- xinv = _recipf4(xabs);
- sum = spu_madd(xinv, spu_splats((float)STIRLING_16), spu_splats((float)STIRLING_15));
- sum = spu_madd(sum, xinv, spu_splats((float)STIRLING_14));
- sum = spu_madd(sum, xinv, spu_splats((float)STIRLING_13));
- sum = spu_madd(sum, xinv, spu_splats((float)STIRLING_12));
- sum = spu_madd(sum, xinv, spu_splats((float)STIRLING_11));
- sum = spu_madd(sum, xinv, spu_splats((float)STIRLING_10));
- sum = spu_madd(sum, xinv, spu_splats((float)STIRLING_09));
- sum = spu_madd(sum, xinv, spu_splats((float)STIRLING_08));
- sum = spu_madd(sum, xinv, spu_splats((float)STIRLING_07));
- sum = spu_madd(sum, xinv, spu_splats((float)STIRLING_06));
- sum = spu_madd(sum, xinv, spu_splats((float)STIRLING_05));
- sum = spu_madd(sum, xinv, spu_splats((float)STIRLING_04));
- sum = spu_madd(sum, xinv, spu_splats((float)STIRLING_03));
- sum = spu_madd(sum, xinv, spu_splats((float)STIRLING_02));
- sum = spu_madd(sum, xinv, spu_splats((float)STIRLING_01));
- sum = spu_madd(sum, xinv, spu_splats((float)STIRLING_00));
-
- sum = spu_mul(sum, sqrt2pi);
- sum = spu_mul(sum, _powf4(x, spu_sub(x, halff)));
- sresult = spu_mul(sum, _expf4(spu_or(x, signbit)));
-
- /*
- * Choose rational approximation or Stirling's result.
- */
- result = spu_sel(rresult, sresult, gt9p9);
-
- result = spu_sel(result, inf, gt38);
-
- /* For x < 0, use:
- * gamma(x) = pi/(x*gamma(-x)*sin(x*pi))
- */
- nresult = _divf4(pi, spu_mul(x, spu_mul(result, _sinf4(spu_mul(x, pi)))));
- result = spu_sel(nresult, result, gt0);
-
- /*
- * x = non-positive integer, return NaN.
- */
- result = spu_sel(result, nan, spu_andc(spu_cmpeq(x, xtrunc), gt0));
-
- return result;
-}
-
-#endif /* _TGAMMAF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/trunc.h b/newlib/libm/machine/spu/headers/trunc.h
deleted file mode 100644
index 1c503c515..000000000
--- a/newlib/libm/machine/spu/headers/trunc.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _TRUNC_H_
-#define _TRUNC_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-/* Truncate the input downwards to the nearest integer.
- */
-static __inline double _trunc(double x)
-{
- vec_uchar16 splat_hi = VEC_LITERAL(vec_uchar16, 0,1,2,3,0,1,2,3, 8,9,10,11, 8,9,10,11);
- vec_int4 exp, shift;
- vec_uint4 sign = VEC_LITERAL(vec_uint4, 0x80000000, 0, 0x80000000, 0);
- vec_uint4 or_mask, and_mask, mask;
- vec_double2 in, in_hi, out;
-
- in = spu_promote(x, 0);
-
- /* Construct a mask to remove the fraction bits. The mask
- * depends on the exponent of the floating point
- * input value.
- */
- in_hi = spu_shuffle(in, in, splat_hi);
- exp = spu_and(spu_rlmask((vec_int4)in_hi, -20), 0x7FF);
-
- shift = spu_sub(VEC_LITERAL(vec_int4, 1023, 1043, 1023, 1043), exp);
- or_mask = spu_andc(spu_cmpgt(shift, 0), sign);
-
- and_mask = spu_rlmask(VEC_LITERAL(vec_uint4, 0xFFFFF, -1, 0xFFFFF, -1), shift);
- mask = spu_or(spu_and(and_mask, spu_cmpgt(shift, -31)), or_mask);
-
- /* Apply the mask and return the result.
- */
- out = spu_andc(in, (vec_double2)(mask));
-
- return (spu_extract(out, 0));
-}
-#endif /* _TRUNC_H_ */
diff --git a/newlib/libm/machine/spu/headers/truncd2.h b/newlib/libm/machine/spu/headers/truncd2.h
deleted file mode 100644
index 87d4a38ca..000000000
--- a/newlib/libm/machine/spu/headers/truncd2.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _TRUNCD2_H_
-#define _TRUNCD2_H_ 1
-
-#include <spu_intrinsics.h>
-
-/*
- * FUNCTION
- * vector double _truncd2(vector double x)
- *
- * DESCRIPTION
- * The _truncd2 function truncates the elements of the input vector
- * downwards (towards zero) to the nearest integer.
- *
- */
-static __inline vector double _truncd2(vector double in)
-{
- vec_uchar16 splat_hi = (vec_uchar16) { 0,1,2,3,0,1,2,3, 8,9,10,11, 8,9,10,11 };
- vec_int4 exp, shift;
- vec_uint4 sign = (vec_uint4) { 0x80000000, 0, 0x80000000, 0 };
- vec_uint4 or_mask, and_mask, mask;
- vec_double2 in_hi, out;
-
- /* Construct a mask to remove the fraction bits. The mask
- * depends on the exponent of the floating point
- * input value.
- */
- in_hi = spu_shuffle(in, in, splat_hi);
- exp = spu_and(spu_rlmask((vec_int4)in_hi, -20), 0x7FF);
-
- shift = spu_sub(((vec_int4) { 1023, 1043, 1023, 1043 }), exp);
- or_mask = spu_andc(spu_cmpgt(shift, 0), sign);
-
- and_mask = spu_rlmask(((vec_uint4) { 0xFFFFF, -1, 0xFFFFF, -1 }), shift);
- mask = spu_or(spu_and(and_mask, spu_cmpgt(shift, -32)), or_mask);
-
- /* Apply the mask and return the result.
- */
- out = spu_andc(in, (vec_double2)(mask));
-
- return (out);
-}
-
-
-#endif /* _TRUNCD2_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/truncf.h b/newlib/libm/machine/spu/headers/truncf.h
deleted file mode 100644
index 2b360452a..000000000
--- a/newlib/libm/machine/spu/headers/truncf.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _TRUNCF_H_
-#define _TRUNCF_H_ 1
-
-#include <spu_intrinsics.h>
-#include "headers/vec_literal.h"
-
-static __inline float _truncf(float x)
-{
- vec_int4 exp;
- vec_uint4 or_mask, and_mask, mask;
- vec_float4 in, out;
-
- in = spu_promote(x, 0);
-
- /* Construct a mask to remove the fraction bits. The mask
- * depends on the exponent of the floating point
- * input value.
- */
- exp = spu_sub(127, spu_and(spu_rlmask((vec_int4)in, -23), 0xFF));
-
- or_mask = spu_cmpgt(exp, 0);
- and_mask = spu_rlmask(VEC_SPLAT_U32(0x7FFFFF), exp);
-
- mask = spu_or(spu_and(and_mask, spu_cmpgt(exp, -31)), or_mask);
-
- /* Apply the mask and return the result.
- */
- out = spu_andc(in, (vec_float4)(mask));
-
- return (spu_extract(out, 0));
-}
-#endif /* _TRUNCF_H_ */
diff --git a/newlib/libm/machine/spu/headers/truncf4.h b/newlib/libm/machine/spu/headers/truncf4.h
deleted file mode 100644
index b762e3a46..000000000
--- a/newlib/libm/machine/spu/headers/truncf4.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* -------------------------------------------------------------- */
-/* (C)Copyright 2001,2008, */
-/* International Business Machines Corporation, */
-/* Sony Computer Entertainment, Incorporated, */
-/* Toshiba Corporation, */
-/* */
-/* All Rights Reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or */
-/* without modification, are permitted provided that the */
-/* following conditions are met: */
-/* */
-/* - Redistributions of source code must retain the above copyright*/
-/* notice, this list of conditions and the following disclaimer. */
-/* */
-/* - Redistributions in binary form must reproduce the above */
-/* copyright notice, this list of conditions and the following */
-/* disclaimer in the documentation and/or other materials */
-/* provided with the distribution. */
-/* */
-/* - Neither the name of IBM Corporation nor the names of its */
-/* contributors may be used to endorse or promote products */
-/* derived from this software without specific prior written */
-/* permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
-/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
-/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
-/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
-/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
-/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
-/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
-/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
-/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
-/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
-/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-/* -------------------------------------------------------------- */
-/* PROLOG END TAG zYx */
-#ifdef __SPU__
-#ifndef _TRUNCF4_H_
-#define _TRUNCF4_H_ 1
-
-#include <spu_intrinsics.h>
-
-/*
- * FUNCTION
- * vector float _truncf4(vector float x)
- *
- * DESCRIPTION
- * The _truncf4 function truncates the elements of the input vector
- * downwards (towards zero) to the nearest integer.
- *
- */
-static __inline vector float _truncf4(vector float x)
-{
- vec_int4 exp;
- vec_uint4 or_mask, and_mask, mask;
- vec_float4 out;
-
- // Construct a mask to remove the fraction bits. The mask
- // depends on the exponent of the floating point
- // input value.
- exp = spu_sub(127, spu_and(spu_rlmask((vec_int4) x, -23), 0xFF));
-
- // Be sure to always preserve the sign bit
- or_mask = spu_rlmask(spu_cmpgt(exp, 0),-1);
-
- and_mask = spu_rlmask(spu_splats((unsigned int)0x7FFFFF), exp);
- mask = spu_or(spu_and(and_mask, spu_cmpgt(exp, -31)), or_mask);
-
- // Apply the mask and return the result.
-
- out = spu_andc(x, (vec_float4) (mask));
- return (out);
-}
-#endif /* _TRUNCF4_H_ */
-#endif /* __SPU__ */
diff --git a/newlib/libm/machine/spu/headers/vec_literal.h b/newlib/libm/machine/spu/headers/vec_literal.h
deleted file mode 100644
index 0098fee54..000000000
--- a/newlib/libm/machine/spu/headers/vec_literal.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- (C) Copyright 2001,2006,
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-#ifndef _VEC_LITERAL_H_
-#define _VEC_LITERAL_H_
-
-/* This header files provides an abstraction for the various implementations
- * of vector literal construction. The two formats are:
- *
- * 1) Altivec styled using parenthesis
- * 2) C grammer friendly styled using curly braces
- *
- * The macro, VEC_LITERAL has been developed to provide some portability
- * in these two styles. To achieve true portability, user must specify all
- * elements of the vector being initialized. A single element can be provided
- * but only the first element guarenteed across both construction styles.
- *
- * The VEC_SPLAT_* macros have been provided for portability of vector literal
- * construction when all the elements of the vector contain the same value.
- */
-
-#include <spu_intrinsics.h>
-
-#ifdef __ALTIVEC_LITERAL_STYLE__
-/* Use altivec style.
- */
-#define VEC_LITERAL(_type, ...) ((_type)(__VA_ARGS__))
-
-#define VEC_SPLAT_U8(_val) ((vector unsigned char)(_val))
-#define VEC_SPLAT_S8(_val) ((vector signed char)(_val))
-
-#define VEC_SPLAT_U16(_val) ((vector unsigned short)(_val))
-#define VEC_SPLAT_S16(_val) ((vector signed short)(_val))
-
-#define VEC_SPLAT_U32(_val) ((vector unsigned int)(_val))
-#define VEC_SPLAT_S32(_val) ((vector signed int)(_val))
-#define VEC_SPLAT_F32(_val) ((vector float)(_val))
-
-#define VEC_SPLAT_U64(_val) ((vector unsigned long long)(_val))
-#define VEC_SPLAT_S64(_val) ((vector signed long long)(_val))
-#define VEC_SPLAT_F64(_val) ((vector double)(_val))
-
-#else
-/* Use curly brace style.
- */
-#define VEC_LITERAL(_type, ...) ((_type){__VA_ARGS__})
-
-#define VEC_SPLAT_U8(_val) ((vector unsigned char){_val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val})
-#define VEC_SPLAT_S8(_val) ((vector signed char){_val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val, _val})
-
-#define VEC_SPLAT_U16(_val) ((vector unsigned short){_val, _val, _val, _val, _val, _val, _val, _val})
-#define VEC_SPLAT_S16(_val) ((vector signed short){_val, _val, _val, _val, _val, _val, _val, _val})
-
-#define VEC_SPLAT_U32(_val) ((vector unsigned int){_val, _val, _val, _val})
-#define VEC_SPLAT_S32(_val) ((vector signed int){_val, _val, _val, _val})
-#define VEC_SPLAT_F32(_val) ((vector float){_val, _val, _val, _val})
-
-#define VEC_SPLAT_U64(_val) ((vector unsigned long long){_val, _val})
-#define VEC_SPLAT_S64(_val) ((vector signed long long){_val, _val})
-#define VEC_SPLAT_F64(_val) ((vector double){_val, _val})
-
-#endif
-
-#endif /* _VEC_LITERAL_H_ */
diff --git a/newlib/libm/machine/spu/llrint.c b/newlib/libm/machine/spu/llrint.c
deleted file mode 100644
index e0aa0e8f4..000000000
--- a/newlib/libm/machine/spu/llrint.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/llrint.h"
-
-long long int llrint(double x)
-{
- return _llrint(x);
-}
diff --git a/newlib/libm/machine/spu/llrintf.c b/newlib/libm/machine/spu/llrintf.c
deleted file mode 100644
index a27c773f8..000000000
--- a/newlib/libm/machine/spu/llrintf.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/llrintf.h"
-
-long long int llrintf(float x)
-{
- return _llrintf(x);
-}
diff --git a/newlib/libm/machine/spu/llround.c b/newlib/libm/machine/spu/llround.c
deleted file mode 100644
index a24450e32..000000000
--- a/newlib/libm/machine/spu/llround.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/llround.h"
-
-long long int llround(double x)
-{
- return _llround(x);
-}
diff --git a/newlib/libm/machine/spu/llroundf.c b/newlib/libm/machine/spu/llroundf.c
deleted file mode 100644
index 8adfd43c3..000000000
--- a/newlib/libm/machine/spu/llroundf.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/llroundf.h"
-
-long long int llroundf(float x)
-{
- return _llroundf(x);
-}
diff --git a/newlib/libm/machine/spu/log2.c b/newlib/libm/machine/spu/log2.c
deleted file mode 100644
index 9bbb31de2..000000000
--- a/newlib/libm/machine/spu/log2.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <math.h>
-#include "headers/log2.h"
-
-#undef log2
-double log2(double vx)
-{
- return _log2(vx);
-}
diff --git a/newlib/libm/machine/spu/log2f.c b/newlib/libm/machine/spu/log2f.c
deleted file mode 100644
index 42b2c02bb..000000000
--- a/newlib/libm/machine/spu/log2f.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <math.h>
-#include "headers/log2f.h"
-
-#undef log2f
-float log2f(float x)
-{
- return _log2f(x);
-}
diff --git a/newlib/libm/machine/spu/s_asinh.c b/newlib/libm/machine/spu/s_asinh.c
deleted file mode 100644
index f78d5ff2d..000000000
--- a/newlib/libm/machine/spu/s_asinh.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/asinh.h"
-
-double asinh(double x)
-{
- return _asinh(x);
-}
diff --git a/newlib/libm/machine/spu/s_atan.c b/newlib/libm/machine/spu/s_atan.c
deleted file mode 100644
index f9b605f58..000000000
--- a/newlib/libm/machine/spu/s_atan.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/atan.h"
-
-double atan(double x)
-{
- return _atan(x);
-}
diff --git a/newlib/libm/machine/spu/s_cbrt.c b/newlib/libm/machine/spu/s_cbrt.c
deleted file mode 100644
index 56be72f64..000000000
--- a/newlib/libm/machine/spu/s_cbrt.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/cbrt.h"
-
-double cbrt(double x)
-{
- return _cbrt(x);
-}
diff --git a/newlib/libm/machine/spu/s_ceil.c b/newlib/libm/machine/spu/s_ceil.c
deleted file mode 100644
index c96d976fb..000000000
--- a/newlib/libm/machine/spu/s_ceil.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/ceil.h"
-
-double ceil(double x)
-{
- return _ceil(x);
-}
diff --git a/newlib/libm/machine/spu/s_copysign.c b/newlib/libm/machine/spu/s_copysign.c
deleted file mode 100644
index b4b2390e8..000000000
--- a/newlib/libm/machine/spu/s_copysign.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/copysign.h"
-
-double copysign(double x, double y)
-{
- return _copysign(x, y);
-}
diff --git a/newlib/libm/machine/spu/s_cos.c b/newlib/libm/machine/spu/s_cos.c
deleted file mode 100644
index 587326255..000000000
--- a/newlib/libm/machine/spu/s_cos.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/cos.h"
-
-double cos(double angle)
-{
- return _cos(angle);
-}
diff --git a/newlib/libm/machine/spu/s_erf.c b/newlib/libm/machine/spu/s_erf.c
deleted file mode 100644
index 89ef0cf59..000000000
--- a/newlib/libm/machine/spu/s_erf.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <math.h>
-#include "headers/erf.h"
-
-double erf(double x)
-{
- return _erf(x);
-}
-
-/*
- * The default s_erf.c contains both erf and erfc, erfc was manually added
- * here, it could be moved to a separate file (similar for sf_erf.c).
- */
-#include "headers/erfc.h"
-
-double erfc(double x)
-{
- return _erfc(x);
-}
diff --git a/newlib/libm/machine/spu/s_expm1.c b/newlib/libm/machine/spu/s_expm1.c
deleted file mode 100644
index 616d3d56e..000000000
--- a/newlib/libm/machine/spu/s_expm1.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/expm1.h"
-
-double expm1(double x)
-{
- return _expm1(x);
-}
diff --git a/newlib/libm/machine/spu/s_fabs.c b/newlib/libm/machine/spu/s_fabs.c
deleted file mode 100644
index 810f320a6..000000000
--- a/newlib/libm/machine/spu/s_fabs.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/fabs.h"
-
-double fabs(double x)
-{
- return _fabs(x);
-}
diff --git a/newlib/libm/machine/spu/s_fdim.c b/newlib/libm/machine/spu/s_fdim.c
deleted file mode 100644
index fd2b5ac80..000000000
--- a/newlib/libm/machine/spu/s_fdim.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/fdim.h"
-
-double fdim(double x, double y)
-{
- return _fdim(x, y);
-}
diff --git a/newlib/libm/machine/spu/s_floor.c b/newlib/libm/machine/spu/s_floor.c
deleted file mode 100644
index 5f0d23893..000000000
--- a/newlib/libm/machine/spu/s_floor.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/floor.h"
-
-double floor(double x)
-{
- return _floor(x);
-}
diff --git a/newlib/libm/machine/spu/s_fma.c b/newlib/libm/machine/spu/s_fma.c
deleted file mode 100644
index 0dad63eee..000000000
--- a/newlib/libm/machine/spu/s_fma.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/fma.h"
-
-double fma(double x, double y, double z)
-{
- return _fma(x, y, z);
-}
diff --git a/newlib/libm/machine/spu/s_fmax.c b/newlib/libm/machine/spu/s_fmax.c
deleted file mode 100644
index b17c32764..000000000
--- a/newlib/libm/machine/spu/s_fmax.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/fmax.h"
-
-double fmax(double x, double y)
-{
- return _fmax(x, y);
-}
diff --git a/newlib/libm/machine/spu/s_fmin.c b/newlib/libm/machine/spu/s_fmin.c
deleted file mode 100644
index 3daa05ba1..000000000
--- a/newlib/libm/machine/spu/s_fmin.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/fmin.h"
-
-double fmin(double x, double y)
-{
- return _fmin(x, y);
-}
diff --git a/newlib/libm/machine/spu/s_frexp.c b/newlib/libm/machine/spu/s_frexp.c
deleted file mode 100644
index 3f1e096da..000000000
--- a/newlib/libm/machine/spu/s_frexp.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/frexp.h"
-
-double frexp(double x, int *pexp)
-{
- return _frexp(x, pexp);
-}
diff --git a/newlib/libm/machine/spu/s_ilogb.c b/newlib/libm/machine/spu/s_ilogb.c
deleted file mode 100644
index 9a3730f5a..000000000
--- a/newlib/libm/machine/spu/s_ilogb.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/ilogb.h"
-
-int ilogb(double x)
-{
- return _ilogb(x);
-}
diff --git a/newlib/libm/machine/spu/s_isnan.c b/newlib/libm/machine/spu/s_isnan.c
deleted file mode 100644
index c93ff19f9..000000000
--- a/newlib/libm/machine/spu/s_isnan.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <math.h>
-#include "headers/isnan.h"
-
-#undef isnan
-int isnan(double x)
-{
- return _isnan(x);
-}
diff --git a/newlib/libm/machine/spu/s_ldexp.c b/newlib/libm/machine/spu/s_ldexp.c
deleted file mode 100644
index 268eb67a4..000000000
--- a/newlib/libm/machine/spu/s_ldexp.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/ldexp.h"
-
-double ldexp(double x, int exp)
-{
- return _ldexp(x, exp);
-}
diff --git a/newlib/libm/machine/spu/s_log1p.c b/newlib/libm/machine/spu/s_log1p.c
deleted file mode 100644
index 70ca37591..000000000
--- a/newlib/libm/machine/spu/s_log1p.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/log1p.h"
-
-double log1p(double x)
-{
- return _log1p(x);
-}
diff --git a/newlib/libm/machine/spu/s_lrint.c b/newlib/libm/machine/spu/s_lrint.c
deleted file mode 100644
index e9a3f74b3..000000000
--- a/newlib/libm/machine/spu/s_lrint.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/lrint.h"
-
-long int lrint(double x)
-{
- return _lrint(x);
-}
diff --git a/newlib/libm/machine/spu/s_lround.c b/newlib/libm/machine/spu/s_lround.c
deleted file mode 100644
index cc012d7ce..000000000
--- a/newlib/libm/machine/spu/s_lround.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/lround.h"
-
-long int lround(double x)
-{
- return _lround(x);
-}
diff --git a/newlib/libm/machine/spu/s_nearbyint.c b/newlib/libm/machine/spu/s_nearbyint.c
deleted file mode 100644
index 5887f27f1..000000000
--- a/newlib/libm/machine/spu/s_nearbyint.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/nearbyint.h"
-
-double nearbyint(double x)
-{
- return _nearbyint(x);
-}
diff --git a/newlib/libm/machine/spu/s_nextafter.c b/newlib/libm/machine/spu/s_nextafter.c
deleted file mode 100644
index 60a741ff8..000000000
--- a/newlib/libm/machine/spu/s_nextafter.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/nextafter.h"
-
-double nextafter(double x, double y)
-{
- return _nextafter(x, y);
-}
diff --git a/newlib/libm/machine/spu/s_remquo.c b/newlib/libm/machine/spu/s_remquo.c
deleted file mode 100644
index 9ba6a1213..000000000
--- a/newlib/libm/machine/spu/s_remquo.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/remquo.h"
-
-double remquo(double x, double y, int *quo)
-{
- return _remquo(x, y, quo);
-}
diff --git a/newlib/libm/machine/spu/s_rint.c b/newlib/libm/machine/spu/s_rint.c
deleted file mode 100644
index 482c6264c..000000000
--- a/newlib/libm/machine/spu/s_rint.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/rint.h"
-
-double rint(double x)
-{
- return _rint(x);
-}
diff --git a/newlib/libm/machine/spu/s_round.c b/newlib/libm/machine/spu/s_round.c
deleted file mode 100644
index 7138c8447..000000000
--- a/newlib/libm/machine/spu/s_round.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/round.h"
-
-double round(double x)
-{
- return _round(x);
-}
diff --git a/newlib/libm/machine/spu/s_scalbn.c b/newlib/libm/machine/spu/s_scalbn.c
deleted file mode 100644
index 58e161dfc..000000000
--- a/newlib/libm/machine/spu/s_scalbn.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/scalbn.h"
-
-double scalbn(double x, int exp)
-{
- return _scalbn(x, exp);
-}
diff --git a/newlib/libm/machine/spu/s_sin.c b/newlib/libm/machine/spu/s_sin.c
deleted file mode 100644
index ec079c98e..000000000
--- a/newlib/libm/machine/spu/s_sin.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/sin.h"
-
-double sin(double angle)
-{
- return _sin(angle);
-}
diff --git a/newlib/libm/machine/spu/s_tan.c b/newlib/libm/machine/spu/s_tan.c
deleted file mode 100644
index 8b0b22c7f..000000000
--- a/newlib/libm/machine/spu/s_tan.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/tan.h"
-
-double tan(double angle)
-{
- return _tan(angle);
-}
diff --git a/newlib/libm/machine/spu/s_tanh.c b/newlib/libm/machine/spu/s_tanh.c
deleted file mode 100644
index 5443d5750..000000000
--- a/newlib/libm/machine/spu/s_tanh.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/tanh.h"
-
-double tanh(double x)
-{
- return _tanh(x);
-}
diff --git a/newlib/libm/machine/spu/s_trunc.c b/newlib/libm/machine/spu/s_trunc.c
deleted file mode 100644
index 043df4461..000000000
--- a/newlib/libm/machine/spu/s_trunc.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/trunc.h"
-
-double trunc(double x)
-{
- return _trunc(x);
-}
diff --git a/newlib/libm/machine/spu/sf_asinh.c b/newlib/libm/machine/spu/sf_asinh.c
deleted file mode 100644
index fcfb95913..000000000
--- a/newlib/libm/machine/spu/sf_asinh.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/asinhf.h"
-
-float asinhf(float x)
-{
- return _asinhf(x);
-}
diff --git a/newlib/libm/machine/spu/sf_atan.c b/newlib/libm/machine/spu/sf_atan.c
deleted file mode 100644
index 90ef5145c..000000000
--- a/newlib/libm/machine/spu/sf_atan.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/atanf.h"
-
-float atanf(float x)
-{
- return _atanf(x);
-}
diff --git a/newlib/libm/machine/spu/sf_cbrt.c b/newlib/libm/machine/spu/sf_cbrt.c
deleted file mode 100644
index 86a08650e..000000000
--- a/newlib/libm/machine/spu/sf_cbrt.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/cbrtf.h"
-
-float cbrtf(float x)
-{
- return _cbrtf(x);
-}
diff --git a/newlib/libm/machine/spu/sf_ceil.c b/newlib/libm/machine/spu/sf_ceil.c
deleted file mode 100644
index cfd611ca0..000000000
--- a/newlib/libm/machine/spu/sf_ceil.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/ceilf.h"
-
-float ceilf(float value)
-{
- return _ceilf(value);
-}
diff --git a/newlib/libm/machine/spu/sf_copysign.c b/newlib/libm/machine/spu/sf_copysign.c
deleted file mode 100644
index 4647c4572..000000000
--- a/newlib/libm/machine/spu/sf_copysign.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/copysignf.h"
-
-float copysignf(float x, float y)
-{
- return _copysignf(x, y);
-}
diff --git a/newlib/libm/machine/spu/sf_cos.c b/newlib/libm/machine/spu/sf_cos.c
deleted file mode 100644
index da498d1f1..000000000
--- a/newlib/libm/machine/spu/sf_cos.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/cosf.h"
-
-float cosf(float angle)
-{
- return _cosf(angle);
-}
diff --git a/newlib/libm/machine/spu/sf_erf.c b/newlib/libm/machine/spu/sf_erf.c
deleted file mode 100644
index 14e0dcd82..000000000
--- a/newlib/libm/machine/spu/sf_erf.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <math.h>
-#include "headers/erff.h"
-
-float erff(float x)
-{
- return _erff(x);
-}
-
-/*
- * The default sf_erf.c contains both erff and erfcf, erfcf was manually added
- * here, it could be moved to a separate file (similar to s_erf.c).
- */
-#include "headers/erfcf.h"
-
-float erfcf(float x)
-{
- return _erfcf(x);
-}
diff --git a/newlib/libm/machine/spu/sf_expm1.c b/newlib/libm/machine/spu/sf_expm1.c
deleted file mode 100644
index 9851de540..000000000
--- a/newlib/libm/machine/spu/sf_expm1.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/expm1f.h"
-
-float expm1f(float vx)
-{
- return _expm1f(vx);
-}
diff --git a/newlib/libm/machine/spu/sf_fabs.c b/newlib/libm/machine/spu/sf_fabs.c
deleted file mode 100644
index bffc44b03..000000000
--- a/newlib/libm/machine/spu/sf_fabs.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/fabsf.h"
-
-float fabsf(float value)
-{
- return _fabsf(value);
-}
diff --git a/newlib/libm/machine/spu/sf_fdim.c b/newlib/libm/machine/spu/sf_fdim.c
deleted file mode 100644
index b489c2726..000000000
--- a/newlib/libm/machine/spu/sf_fdim.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/fdimf.h"
-
-float fdimf(float x, float y)
-{
- return _fdimf(x, y);
-}
diff --git a/newlib/libm/machine/spu/sf_finite.c b/newlib/libm/machine/spu/sf_finite.c
deleted file mode 100644
index 88d635fd4..000000000
--- a/newlib/libm/machine/spu/sf_finite.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- (C) Copyright 2007
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
- * On the SPU always return 1.
- */
-int
-finitef(float x)
-{
- return 1;
-}
diff --git a/newlib/libm/machine/spu/sf_floor.c b/newlib/libm/machine/spu/sf_floor.c
deleted file mode 100644
index c5de7ca6a..000000000
--- a/newlib/libm/machine/spu/sf_floor.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/floorf.h"
-
-float floorf(float value)
-{
- return _floorf(value);
-}
diff --git a/newlib/libm/machine/spu/sf_fma.c b/newlib/libm/machine/spu/sf_fma.c
deleted file mode 100644
index 45dbcba4a..000000000
--- a/newlib/libm/machine/spu/sf_fma.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/fmaf.h"
-
-float fmaf(float x, float y, float z)
-{
- return _fmaf(x, y, z);
-}
diff --git a/newlib/libm/machine/spu/sf_fmax.c b/newlib/libm/machine/spu/sf_fmax.c
deleted file mode 100644
index 5d5ca536b..000000000
--- a/newlib/libm/machine/spu/sf_fmax.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/fmaxf.h"
-
-float fmaxf(float x, float y)
-{
- return _fmaxf(x, y);
-}
diff --git a/newlib/libm/machine/spu/sf_fmin.c b/newlib/libm/machine/spu/sf_fmin.c
deleted file mode 100644
index a08dca8d0..000000000
--- a/newlib/libm/machine/spu/sf_fmin.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/fminf.h"
-
-float fminf(float x, float y)
-{
- return _fminf(x, y);
-}
diff --git a/newlib/libm/machine/spu/sf_fpclassify.c b/newlib/libm/machine/spu/sf_fpclassify.c
deleted file mode 100644
index 36cf8ba90..000000000
--- a/newlib/libm/machine/spu/sf_fpclassify.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software
- * is freely granted, provided that this notice is preserved.
- */
-
-#include "fdlibm.h"
-
-/*
- * On the SPU, single precision floating point returns only FP_NORMAL and
- * FP_ZERO, since FP_NAN, FP_INFINITE, and FP_SUBNORMAL are not
- * supported, base on the common f_fpclassify.c.
- */
-int
-__fpclassifyf (float x)
-{
- __uint32_t w;
-
- GET_FLOAT_WORD(w,x);
-
- if (w == 0x00000000 || w == 0x80000000)
- return FP_ZERO;
- return FP_NORMAL;
-}
diff --git a/newlib/libm/machine/spu/sf_frexp.c b/newlib/libm/machine/spu/sf_frexp.c
deleted file mode 100644
index 8ea04d56f..000000000
--- a/newlib/libm/machine/spu/sf_frexp.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/frexpf.h"
-
-float frexpf(float x, int *pexp)
-{
- return _frexpf(x, pexp);
-}
diff --git a/newlib/libm/machine/spu/sf_ilogb.c b/newlib/libm/machine/spu/sf_ilogb.c
deleted file mode 100644
index ea2146c5c..000000000
--- a/newlib/libm/machine/spu/sf_ilogb.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/ilogbf.h"
-
-int ilogbf(float x)
-{
- return _ilogbf(x);
-}
diff --git a/newlib/libm/machine/spu/sf_isinf.c b/newlib/libm/machine/spu/sf_isinf.c
deleted file mode 100644
index 3c5f8d81f..000000000
--- a/newlib/libm/machine/spu/sf_isinf.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- (C) Copyright 2007
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
- * On the SPU isinff(x) always returns 0.
- *
- * isinff is an extension declared in <ieeefp.h>.
- */
-int
-isinff (float x)
-{
- return 0;
-}
diff --git a/newlib/libm/machine/spu/sf_isinff.c b/newlib/libm/machine/spu/sf_isinff.c
deleted file mode 100644
index 3ce424a74..000000000
--- a/newlib/libm/machine/spu/sf_isinff.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- (C) Copyright 2007
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
- * On the SPU __isinff(x) always returns 0.
- */
-int
-__isinff (float x)
-{
- return 0;
-}
diff --git a/newlib/libm/machine/spu/sf_isnan.c b/newlib/libm/machine/spu/sf_isnan.c
deleted file mode 100644
index 448bfc47e..000000000
--- a/newlib/libm/machine/spu/sf_isnan.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- (C) Copyright 2007
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
- * On the SPU single precision floating does not support NAN's.
- */
-int
-isnanf(float x)
-{
- return 0;
-}
diff --git a/newlib/libm/machine/spu/sf_isnanf.c b/newlib/libm/machine/spu/sf_isnanf.c
deleted file mode 100644
index 1dab50c7e..000000000
--- a/newlib/libm/machine/spu/sf_isnanf.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- (C) Copyright 2007
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
- * On the SPU single precision floating does not support NAN's.
- */
-int
-__isnanf(float x)
-{
- return 0;
-}
diff --git a/newlib/libm/machine/spu/sf_ldexp.c b/newlib/libm/machine/spu/sf_ldexp.c
deleted file mode 100644
index 7d19a5d5c..000000000
--- a/newlib/libm/machine/spu/sf_ldexp.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/ldexpf.h"
-
-float ldexpf(float x, int exp)
-{
- return _ldexpf(x, exp);
-}
diff --git a/newlib/libm/machine/spu/sf_log1p.c b/newlib/libm/machine/spu/sf_log1p.c
deleted file mode 100644
index 8ea8a3764..000000000
--- a/newlib/libm/machine/spu/sf_log1p.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/log1pf.h"
-
-float log1pf(float x)
-{
- return _log1pf(x);
-}
diff --git a/newlib/libm/machine/spu/sf_logb.c b/newlib/libm/machine/spu/sf_logb.c
deleted file mode 100644
index 2aca4864f..000000000
--- a/newlib/libm/machine/spu/sf_logb.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/logbf.h"
-
-float logbf(float x)
-{
- return _logbf(x);
-}
diff --git a/newlib/libm/machine/spu/sf_lrint.c b/newlib/libm/machine/spu/sf_lrint.c
deleted file mode 100644
index dd96610a6..000000000
--- a/newlib/libm/machine/spu/sf_lrint.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/lrintf.h"
-
-long int lrintf(float x)
-{
- return _lrintf(x);
-}
diff --git a/newlib/libm/machine/spu/sf_lround.c b/newlib/libm/machine/spu/sf_lround.c
deleted file mode 100644
index 250467b7e..000000000
--- a/newlib/libm/machine/spu/sf_lround.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/lroundf.h"
-
-long int lroundf(float x)
-{
- return _lroundf(x);
-}
diff --git a/newlib/libm/machine/spu/sf_nan.c b/newlib/libm/machine/spu/sf_nan.c
deleted file mode 100644
index ef994c7ba..000000000
--- a/newlib/libm/machine/spu/sf_nan.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- (C) Copyright 2007
- International Business Machines Corporation,
- Sony Computer Entertainment, Incorporated,
- Toshiba Corporation,
-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the names of the copyright holders nor the names of their
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
- * On the SPU single precision floating does not support NAN's, and nanf
- * is documented as returning zero.
- */
-float
-nanf(const char *unused)
-{
- return 0;
-}
diff --git a/newlib/libm/machine/spu/sf_nearbyint.c b/newlib/libm/machine/spu/sf_nearbyint.c
deleted file mode 100644
index d55329baa..000000000
--- a/newlib/libm/machine/spu/sf_nearbyint.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/nearbyintf.h"
-
-float nearbyintf(float x)
-{
- return _nearbyintf(x);
-}
diff --git a/newlib/libm/machine/spu/sf_nextafter.c b/newlib/libm/machine/spu/sf_nextafter.c
deleted file mode 100644
index 408ed41ed..000000000
--- a/newlib/libm/machine/spu/sf_nextafter.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/nextafterf.h"
-
-float nextafterf(float x, float y)
-{
- return _nextafterf(x, y);
-}
diff --git a/newlib/libm/machine/spu/sf_remquo.c b/newlib/libm/machine/spu/sf_remquo.c
deleted file mode 100644
index 3494398b2..000000000
--- a/newlib/libm/machine/spu/sf_remquo.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/remquof.h"
-
-float remquof(float x, float y, int *quo)
-{
- return _remquof(x, y, quo);
-}
diff --git a/newlib/libm/machine/spu/sf_rint.c b/newlib/libm/machine/spu/sf_rint.c
deleted file mode 100644
index 777dfd66e..000000000
--- a/newlib/libm/machine/spu/sf_rint.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/rintf.h"
-
-float rintf(float x)
-{
- return _rintf(x);
-}
diff --git a/newlib/libm/machine/spu/sf_round.c b/newlib/libm/machine/spu/sf_round.c
deleted file mode 100644
index 62a68f602..000000000
--- a/newlib/libm/machine/spu/sf_round.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/roundf.h"
-
-float roundf(float x)
-{
- return _roundf(x);
-}
diff --git a/newlib/libm/machine/spu/sf_scalbn.c b/newlib/libm/machine/spu/sf_scalbn.c
deleted file mode 100644
index 67824dfac..000000000
--- a/newlib/libm/machine/spu/sf_scalbn.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/scalbnf.h"
-
-float scalbnf(float x, int exp)
-{
- return _scalbnf(x, exp);
-}
diff --git a/newlib/libm/machine/spu/sf_sin.c b/newlib/libm/machine/spu/sf_sin.c
deleted file mode 100644
index ac8d2a367..000000000
--- a/newlib/libm/machine/spu/sf_sin.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/sinf.h"
-
-float sinf(float angle)
-{
- return _sinf(angle);
-}
diff --git a/newlib/libm/machine/spu/sf_tan.c b/newlib/libm/machine/spu/sf_tan.c
deleted file mode 100644
index 511106be9..000000000
--- a/newlib/libm/machine/spu/sf_tan.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/tanf.h"
-
-float tanf(float angle)
-{
- return _tanf(angle);
-}
diff --git a/newlib/libm/machine/spu/sf_tanh.c b/newlib/libm/machine/spu/sf_tanh.c
deleted file mode 100644
index 65c3f9bcf..000000000
--- a/newlib/libm/machine/spu/sf_tanh.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/tanhf.h"
-
-float tanhf(float x)
-{
- return _tanhf(x);
-}
diff --git a/newlib/libm/machine/spu/sf_trunc.c b/newlib/libm/machine/spu/sf_trunc.c
deleted file mode 100644
index 4a7ab8841..000000000
--- a/newlib/libm/machine/spu/sf_trunc.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/truncf.h"
-
-float truncf(float x)
-{
- return _truncf(x);
-}
diff --git a/newlib/libm/machine/spu/w_acos.c b/newlib/libm/machine/spu/w_acos.c
deleted file mode 100644
index 412198c67..000000000
--- a/newlib/libm/machine/spu/w_acos.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/acos.h"
-
-double acos(double x)
-{
- return _acos(x);
-}
diff --git a/newlib/libm/machine/spu/w_acosh.c b/newlib/libm/machine/spu/w_acosh.c
deleted file mode 100644
index b05f4a4dd..000000000
--- a/newlib/libm/machine/spu/w_acosh.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/acosh.h"
-
-double acosh(double x)
-{
- return _acosh(x);
-}
diff --git a/newlib/libm/machine/spu/w_asin.c b/newlib/libm/machine/spu/w_asin.c
deleted file mode 100644
index 142ed2b75..000000000
--- a/newlib/libm/machine/spu/w_asin.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/asin.h"
-
-double asin(double x)
-{
- return _asin(x);
-}
diff --git a/newlib/libm/machine/spu/w_atan2.c b/newlib/libm/machine/spu/w_atan2.c
deleted file mode 100644
index fb690c436..000000000
--- a/newlib/libm/machine/spu/w_atan2.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/atan2.h"
-
-double atan2(double y, double x)
-{
- return _atan2(y, x);
-}
diff --git a/newlib/libm/machine/spu/w_atanh.c b/newlib/libm/machine/spu/w_atanh.c
deleted file mode 100644
index 8d4c2ceca..000000000
--- a/newlib/libm/machine/spu/w_atanh.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/atanh.h"
-
-double atanh(double x)
-{
- return _atanh(x);
-}
diff --git a/newlib/libm/machine/spu/w_cosh.c b/newlib/libm/machine/spu/w_cosh.c
deleted file mode 100644
index 5fb77eb09..000000000
--- a/newlib/libm/machine/spu/w_cosh.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/cosh.h"
-
-double cosh(double x)
-{
- return _cosh(x);
-}
diff --git a/newlib/libm/machine/spu/w_exp.c b/newlib/libm/machine/spu/w_exp.c
deleted file mode 100644
index 3f00afa1b..000000000
--- a/newlib/libm/machine/spu/w_exp.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/exp.h"
-
-double exp(double x)
-{
- return _exp(x);
-}
diff --git a/newlib/libm/machine/spu/w_exp2.c b/newlib/libm/machine/spu/w_exp2.c
deleted file mode 100644
index c8933bce1..000000000
--- a/newlib/libm/machine/spu/w_exp2.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/exp2.h"
-
-double exp2(double vx)
-{
- return _exp2(vx);
-}
diff --git a/newlib/libm/machine/spu/w_fmod.c b/newlib/libm/machine/spu/w_fmod.c
deleted file mode 100644
index 29704bceb..000000000
--- a/newlib/libm/machine/spu/w_fmod.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/fmod.h"
-
-double fmod(double x, double y)
-{
- return _fmod(x, y);
-}
diff --git a/newlib/libm/machine/spu/w_hypot.c b/newlib/libm/machine/spu/w_hypot.c
deleted file mode 100644
index 93db031b0..000000000
--- a/newlib/libm/machine/spu/w_hypot.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/hypot.h"
-
-double hypot(double x, double y)
-{
- return _hypot(x, y);
-}
diff --git a/newlib/libm/machine/spu/w_lgamma.c b/newlib/libm/machine/spu/w_lgamma.c
deleted file mode 100644
index f092adb69..000000000
--- a/newlib/libm/machine/spu/w_lgamma.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/lgamma.h"
-
-double lgamma(double x)
-{
- return _lgamma(x);
-}
diff --git a/newlib/libm/machine/spu/w_log.c b/newlib/libm/machine/spu/w_log.c
deleted file mode 100644
index b224dbc5f..000000000
--- a/newlib/libm/machine/spu/w_log.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/log.h"
-
-double log(double x)
-{
- return _log(x);
-}
diff --git a/newlib/libm/machine/spu/w_log10.c b/newlib/libm/machine/spu/w_log10.c
deleted file mode 100644
index b76187581..000000000
--- a/newlib/libm/machine/spu/w_log10.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/log10.h"
-
-double log10(double x)
-{
- return _log10(x);
-}
diff --git a/newlib/libm/machine/spu/w_pow.c b/newlib/libm/machine/spu/w_pow.c
deleted file mode 100644
index a1afe4338..000000000
--- a/newlib/libm/machine/spu/w_pow.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/pow.h"
-
-double pow(double x, double y)
-{
- return _pow(x, y);
-}
diff --git a/newlib/libm/machine/spu/w_remainder.c b/newlib/libm/machine/spu/w_remainder.c
deleted file mode 100644
index c87627b49..000000000
--- a/newlib/libm/machine/spu/w_remainder.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/remainder.h"
-
-double remainder(double x, double y)
-{
- return _remainder(x, y);
-}
diff --git a/newlib/libm/machine/spu/w_sincos.c b/newlib/libm/machine/spu/w_sincos.c
deleted file mode 100644
index 0ea124482..000000000
--- a/newlib/libm/machine/spu/w_sincos.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/sincos.h"
-
-void sincos(double angle, double* sinx, double* cosx)
-{
- return _sincos(angle, sinx, cosx);
-}
diff --git a/newlib/libm/machine/spu/w_sinh.c b/newlib/libm/machine/spu/w_sinh.c
deleted file mode 100644
index 0077296a6..000000000
--- a/newlib/libm/machine/spu/w_sinh.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/sinh.h"
-
-double sinh(double x)
-{
- return _sinh(x);
-}
diff --git a/newlib/libm/machine/spu/w_sqrt.c b/newlib/libm/machine/spu/w_sqrt.c
deleted file mode 100644
index 359ffcc32..000000000
--- a/newlib/libm/machine/spu/w_sqrt.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/sqrt.h"
-
-double sqrt(double in)
-{
- return _sqrt(in);
-}
diff --git a/newlib/libm/machine/spu/w_tgamma.c b/newlib/libm/machine/spu/w_tgamma.c
deleted file mode 100644
index 98dd52d8b..000000000
--- a/newlib/libm/machine/spu/w_tgamma.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/tgamma.h"
-
-double tgamma(double x)
-{
- return _tgamma(x);
-}
diff --git a/newlib/libm/machine/spu/wf_acos.c b/newlib/libm/machine/spu/wf_acos.c
deleted file mode 100644
index 86585565c..000000000
--- a/newlib/libm/machine/spu/wf_acos.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/acosf.h"
-
-float acosf(float x)
-{
- return _acosf(x);
-}
diff --git a/newlib/libm/machine/spu/wf_acosh.c b/newlib/libm/machine/spu/wf_acosh.c
deleted file mode 100644
index 1e729ae44..000000000
--- a/newlib/libm/machine/spu/wf_acosh.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/acoshf.h"
-
-float acoshf(float x)
-{
- return _acoshf(x);
-}
diff --git a/newlib/libm/machine/spu/wf_asin.c b/newlib/libm/machine/spu/wf_asin.c
deleted file mode 100644
index c3fab30ff..000000000
--- a/newlib/libm/machine/spu/wf_asin.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/asinf.h"
-
-float asinf(float x)
-{
- return _asinf(x);
-}
diff --git a/newlib/libm/machine/spu/wf_atan2.c b/newlib/libm/machine/spu/wf_atan2.c
deleted file mode 100644
index 2a22f537e..000000000
--- a/newlib/libm/machine/spu/wf_atan2.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/atan2f.h"
-
-float atan2f(float y, float x)
-{
- return _atan2f(y, x);
-}
diff --git a/newlib/libm/machine/spu/wf_atanh.c b/newlib/libm/machine/spu/wf_atanh.c
deleted file mode 100644
index 8a8017432..000000000
--- a/newlib/libm/machine/spu/wf_atanh.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/atanhf.h"
-
-float atanhf(float x)
-{
- return _atanhf(x);
-}
diff --git a/newlib/libm/machine/spu/wf_cosh.c b/newlib/libm/machine/spu/wf_cosh.c
deleted file mode 100644
index 6a0f15cb7..000000000
--- a/newlib/libm/machine/spu/wf_cosh.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/coshf.h"
-
-float coshf(float x)
-{
- return _coshf(x);
-}
diff --git a/newlib/libm/machine/spu/wf_exp.c b/newlib/libm/machine/spu/wf_exp.c
deleted file mode 100644
index 9a0f905d0..000000000
--- a/newlib/libm/machine/spu/wf_exp.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/expf.h"
-
-float expf(float x)
-{
- return _expf(x);
-}
diff --git a/newlib/libm/machine/spu/wf_exp2.c b/newlib/libm/machine/spu/wf_exp2.c
deleted file mode 100644
index c815cee55..000000000
--- a/newlib/libm/machine/spu/wf_exp2.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/exp2f.h"
-
-float exp2f(float x)
-{
- return _exp2f(x);
-}
diff --git a/newlib/libm/machine/spu/wf_fmod.c b/newlib/libm/machine/spu/wf_fmod.c
deleted file mode 100644
index b7b8c27df..000000000
--- a/newlib/libm/machine/spu/wf_fmod.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/fmodf.h"
-
-float fmodf(float x, float y)
-{
- return _fmodf(x, y);
-}
diff --git a/newlib/libm/machine/spu/wf_hypot.c b/newlib/libm/machine/spu/wf_hypot.c
deleted file mode 100644
index f9d88501c..000000000
--- a/newlib/libm/machine/spu/wf_hypot.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/hypotf.h"
-
-float hypotf(float x, float y)
-{
- return _hypotf(x, y);
-}
diff --git a/newlib/libm/machine/spu/wf_lgamma.c b/newlib/libm/machine/spu/wf_lgamma.c
deleted file mode 100644
index 6b0824adf..000000000
--- a/newlib/libm/machine/spu/wf_lgamma.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/lgammaf.h"
-
-float lgammaf(float x)
-{
- return _lgammaf(x);
-}
diff --git a/newlib/libm/machine/spu/wf_log.c b/newlib/libm/machine/spu/wf_log.c
deleted file mode 100644
index e788dea4d..000000000
--- a/newlib/libm/machine/spu/wf_log.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/logf.h"
-
-float logf(float x)
-{
- return _logf(x);
-}
diff --git a/newlib/libm/machine/spu/wf_log10.c b/newlib/libm/machine/spu/wf_log10.c
deleted file mode 100644
index f3d2c9f90..000000000
--- a/newlib/libm/machine/spu/wf_log10.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/log10f.h"
-
-float log10f(float x)
-{
- return _log10f(x);
-}
diff --git a/newlib/libm/machine/spu/wf_pow.c b/newlib/libm/machine/spu/wf_pow.c
deleted file mode 100644
index 799665612..000000000
--- a/newlib/libm/machine/spu/wf_pow.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/powf.h"
-
-float powf(float x, float y)
-{
- return _powf(x, y);
-}
diff --git a/newlib/libm/machine/spu/wf_remainder.c b/newlib/libm/machine/spu/wf_remainder.c
deleted file mode 100644
index 84508ce2a..000000000
--- a/newlib/libm/machine/spu/wf_remainder.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/remainderf.h"
-
-float remainderf(float x, float y)
-{
- return _remainderf(x, y);
-}
diff --git a/newlib/libm/machine/spu/wf_sincos.c b/newlib/libm/machine/spu/wf_sincos.c
deleted file mode 100644
index 6dc4d0c98..000000000
--- a/newlib/libm/machine/spu/wf_sincos.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/sincosf.h"
-
-void sincosf(float angle, float* sinx, float* cosx)
-{
- return _sincosf(angle, sinx, cosx);
-}
diff --git a/newlib/libm/machine/spu/wf_sinh.c b/newlib/libm/machine/spu/wf_sinh.c
deleted file mode 100644
index 413e7b56b..000000000
--- a/newlib/libm/machine/spu/wf_sinh.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/sinhf.h"
-
-float sinhf(float x)
-{
- return _sinhf(x);
-}
diff --git a/newlib/libm/machine/spu/wf_sqrt.c b/newlib/libm/machine/spu/wf_sqrt.c
deleted file mode 100644
index 78eccb418..000000000
--- a/newlib/libm/machine/spu/wf_sqrt.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/sqrtf.h"
-
-float sqrtf(float in)
-{
- return _sqrtf(in);
-}
diff --git a/newlib/libm/machine/spu/wf_tgamma.c b/newlib/libm/machine/spu/wf_tgamma.c
deleted file mode 100644
index 161f505fe..000000000
--- a/newlib/libm/machine/spu/wf_tgamma.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <math.h>
-#include "headers/tgammaf.h"
-
-float tgammaf(float x)
-{
- return _tgammaf(x);
-}