diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/ia64/fpu/s_copysign.S | 34 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/s_copysignf.S | 1 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/s_copysignl.S | 1 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/s_finite.S | 41 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/s_finitef.S | 1 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/s_finitel.S | 1 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/s_fpclassify.S | 59 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/s_fpclassifyf.S | 1 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/s_fpclassifyl.S | 1 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/s_isinf.S | 54 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/s_isinff.S | 1 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/s_isinfl.S | 48 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/s_isnan.S | 47 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/s_isnanf.S | 1 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/s_isnanl.S | 43 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/s_signbit.S | 37 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/s_signbitf.S | 1 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/s_signbitl.S | 1 |
18 files changed, 284 insertions, 89 deletions
diff --git a/sysdeps/ia64/fpu/s_copysign.S b/sysdeps/ia64/fpu/s_copysign.S new file mode 100644 index 0000000000..f0e90ed048 --- /dev/null +++ b/sysdeps/ia64/fpu/s_copysign.S @@ -0,0 +1,34 @@ +/* Copyright (C) 2000 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <sysdep.h> +#undef ret + +ENTRY (__copysign) +{ + fmerge.s fret0 = farg1, farg0 + br.ret.sptk.many rp +} +END (__copysign) + +strong_alias (__copysign, __copysignf) +strong_alias (__copysign, __copysignl) + +weak_alias (__copysign, copysign) +weak_alias (__copysignf, copysignf) +weak_alias (__copysignl, copysignl) diff --git a/sysdeps/ia64/fpu/s_copysignf.S b/sysdeps/ia64/fpu/s_copysignf.S new file mode 100644 index 0000000000..055251d0d2 --- /dev/null +++ b/sysdeps/ia64/fpu/s_copysignf.S @@ -0,0 +1 @@ +/* __copysignf is in s_copysign.S. */ diff --git a/sysdeps/ia64/fpu/s_copysignl.S b/sysdeps/ia64/fpu/s_copysignl.S new file mode 100644 index 0000000000..e772372678 --- /dev/null +++ b/sysdeps/ia64/fpu/s_copysignl.S @@ -0,0 +1 @@ +/* __copysignl is in s_copysign.S. */ diff --git a/sysdeps/ia64/fpu/s_finite.S b/sysdeps/ia64/fpu/s_finite.S new file mode 100644 index 0000000000..4d9fb5f967 --- /dev/null +++ b/sysdeps/ia64/fpu/s_finite.S @@ -0,0 +1,41 @@ +/* Copyright (C) 2000 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <sysdep.h> +#undef ret + +ENTRY (__finite) +{ +.mfi + fclass.m p6, p7 = farg0, @nat | @qnan | @snan | @inf + ;; +} +{ +.mib +(p6) mov ret0 = 0 +(p7) mov ret0 = 1 + br.ret.sptk.many rp +} +END (__finite) + +strong_alias (__finite, __finitef) +strong_alias (__finite, __finitel) + +weak_alias (__finite, finite) +weak_alias (__finitef, finitef) +weak_alias (__finitel, finitel) diff --git a/sysdeps/ia64/fpu/s_finitef.S b/sysdeps/ia64/fpu/s_finitef.S new file mode 100644 index 0000000000..cf9b5ce8ba --- /dev/null +++ b/sysdeps/ia64/fpu/s_finitef.S @@ -0,0 +1 @@ +/* __finitef is in s_finite.S. */ diff --git a/sysdeps/ia64/fpu/s_finitel.S b/sysdeps/ia64/fpu/s_finitel.S new file mode 100644 index 0000000000..362b186429 --- /dev/null +++ b/sysdeps/ia64/fpu/s_finitel.S @@ -0,0 +1 @@ +/* __finitel is in s_finite.S. */ diff --git a/sysdeps/ia64/fpu/s_fpclassify.S b/sysdeps/ia64/fpu/s_fpclassify.S new file mode 100644 index 0000000000..d196601369 --- /dev/null +++ b/sysdeps/ia64/fpu/s_fpclassify.S @@ -0,0 +1,59 @@ +/* Return classification value corresponding to argument. + Copyright (C) 2000 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <sysdep.h> +#undef ret + +ENTRY (__fpclassify) +{ +.mfi + fclass.m p6, p7 = farg0, @nat | @qnan | @snan + ;; +} +{ +.mfb +(p6) mov ret0 = 0 +(p7) fclass.m p7, p8 = farg0, @inf +(p6) br.ret.sptk.many rp + ;; +} +{ +.mfb +(p7) mov ret0 = 1 +(p8) fclass.m p8, p6 = farg0, @zero +(p7) br.ret.sptk.many rp + ;; +} +{ +.mfb +(p8) mov ret0 = 2 +(p6) fclass.m p6, p7 = farg0, @unorm +(p8) br.ret.sptk.many rp + ;; +} +{ + .pred.rel.mutex p6, p7 +(p6) mov ret0 = 3 +(p7) mov ret0 = 4 + br.ret.sptk.many rp +} +END (__fpclassify) + +strong_alias (__fpclassify, __fpclassifyf) +strong_alias (__fpclassify, __fpclassifyl) diff --git a/sysdeps/ia64/fpu/s_fpclassifyf.S b/sysdeps/ia64/fpu/s_fpclassifyf.S new file mode 100644 index 0000000000..cf31fca7ad --- /dev/null +++ b/sysdeps/ia64/fpu/s_fpclassifyf.S @@ -0,0 +1 @@ +/* __fpclassifyf is in s_fpclassify.S. */ diff --git a/sysdeps/ia64/fpu/s_fpclassifyl.S b/sysdeps/ia64/fpu/s_fpclassifyl.S new file mode 100644 index 0000000000..621e3c53a4 --- /dev/null +++ b/sysdeps/ia64/fpu/s_fpclassifyl.S @@ -0,0 +1 @@ +/* __fpclassifyl is in s_fpclassify.S. */ diff --git a/sysdeps/ia64/fpu/s_isinf.S b/sysdeps/ia64/fpu/s_isinf.S new file mode 100644 index 0000000000..29e649bc37 --- /dev/null +++ b/sysdeps/ia64/fpu/s_isinf.S @@ -0,0 +1,54 @@ +/* Test for inf/-inf + Copyright (C) 2000 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jes Sorensen <jes@linuxcare.com>, October 2000. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* + * isinf(x) returns 1 if x is inf, -1 for x == -inf, else 0; + */ + +#include <sysdep.h> +#undef ret + +ENTRY (__isinf) +{ +.mfi + fclass.m p6, p7 = farg0, @inf|@pos + ;; +} +{ +.mfb +(p6) mov ret0 = 1 +(p7) fclass.m p7, p8 = farg0, @inf|@neg +(p6) br.ret.sptk.many rp + ;; +} +{ + .pred.rel.mutex p7,p8 +(p7) mov ret0 = -1 +(p8) mov ret0 = 0 + br.ret.sptk.many rp +} +END (__isinf) + +strong_alias (__isinf, __isinff) +strong_alias (__isinf, __isinfl) + +weak_alias (__isinf, isinf) +weak_alias (__isinff, isinff) +weak_alias (__isinfl, isinfl) diff --git a/sysdeps/ia64/fpu/s_isinff.S b/sysdeps/ia64/fpu/s_isinff.S new file mode 100644 index 0000000000..37da979e19 --- /dev/null +++ b/sysdeps/ia64/fpu/s_isinff.S @@ -0,0 +1 @@ +/* __isinff is in s_isinf.S. */ diff --git a/sysdeps/ia64/fpu/s_isinfl.S b/sysdeps/ia64/fpu/s_isinfl.S index 9adbb2f0c7..c3bca40991 100644 --- a/sysdeps/ia64/fpu/s_isinfl.S +++ b/sysdeps/ia64/fpu/s_isinfl.S @@ -1,47 +1 @@ -/* Test for inf/-inf - Copyright (C) 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jes Sorensen <jes@linuxcare.com>, October 2000. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* - * isinfl(x) returns 1 if x is inf, -1 for x == -inf, else 0; - */ - -#include <sysdep.h> -#undef ret - -ENTRY (__isinfl) -{ -.mfi - fclass.m p6, p7 = farg0, @inf|@pos - ;; -} -{ -.mfb -(p6) mov ret0 = 1 -(p7) fclass.m p7, p8 = farg0, @inf|@neg -(p6) br.ret.sptk.many rp - ;; -} -(p7) mov ret0 = -1 -(p8) mov ret0 = 0 - br.ret.sptk.many rp -} -END (__isinfl) - -weak_alias (__isinfl, isinfl) +/* __isinfl is in s_isinf.S. */ diff --git a/sysdeps/ia64/fpu/s_isnan.S b/sysdeps/ia64/fpu/s_isnan.S new file mode 100644 index 0000000000..a0ed3547ca --- /dev/null +++ b/sysdeps/ia64/fpu/s_isnan.S @@ -0,0 +1,47 @@ +/* Test for NaN + Copyright (C) 2000 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jes Sorensen <jes@linuxcare.com>, October 2000. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* + * isnan(x) returns 1 is x is nan, else 0; + */ + +#include <sysdep.h> +#undef ret + +ENTRY (__isnan) +{ +.mfi + fclass.m p6, p7 = farg0, @nat | @qnan | @snan + ;; +} +{ +.mib +(p6) mov ret0 = 1 +(p7) mov ret0 = 0 + br.ret.sptk.many rp +} +END (__isnan) + +strong_alias (__isnan, __isnanf) +strong_alias (__isnan, __isnanl) + +weak_alias (__isnan, isnan) +weak_alias (__isnanf, isnanf) +weak_alias (__isnanl, isnanl) diff --git a/sysdeps/ia64/fpu/s_isnanf.S b/sysdeps/ia64/fpu/s_isnanf.S new file mode 100644 index 0000000000..a8911b15e3 --- /dev/null +++ b/sysdeps/ia64/fpu/s_isnanf.S @@ -0,0 +1 @@ +/* __isnanf is in s_isnan.S. */ diff --git a/sysdeps/ia64/fpu/s_isnanl.S b/sysdeps/ia64/fpu/s_isnanl.S index 4d4df05003..82fb19d72c 100644 --- a/sysdeps/ia64/fpu/s_isnanl.S +++ b/sysdeps/ia64/fpu/s_isnanl.S @@ -1,42 +1 @@ -/* Test for NaN - Copyright (C) 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jes Sorensen <jes@linuxcare.com>, October 2000. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* - * isnanl(x) returns 1 is x is nan, else 0; - */ - -#include <sysdep.h> -#undef ret - -ENTRY (__isnanl) -{ -.mfi - fclass.m p6, p7 = farg0, @nat | @qnan | @snan - ;; -} -{ -.mib -(p6) mov ret0 = 1 -(p7) mov ret0 = 0 - br.ret.sptk.many rp -} -END (__isnanl) - -weak_alias (__isnanl, isnanl) +/* __isnanl is in s_isnan.S. */ diff --git a/sysdeps/ia64/fpu/s_signbit.S b/sysdeps/ia64/fpu/s_signbit.S new file mode 100644 index 0000000000..0b6ab2c353 --- /dev/null +++ b/sysdeps/ia64/fpu/s_signbit.S @@ -0,0 +1,37 @@ +/* Copyright (C) 2000 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <sysdep.h> +#undef ret + +ENTRY (__signbit) +{ +.mfi + fclass.m p6, p7 = farg0, @zero | @unorm | @norm | @inf | @neg + ;; +} +{ +.mib +(p6) mov ret0 = 1 +(p7) mov ret0 = 0 + br.ret.sptk.many rp +} +END (__signbit) + +strong_alias (__signbit, __signbitf) +strong_alias (__signbit, __signbitl) diff --git a/sysdeps/ia64/fpu/s_signbitf.S b/sysdeps/ia64/fpu/s_signbitf.S new file mode 100644 index 0000000000..34eadfca36 --- /dev/null +++ b/sysdeps/ia64/fpu/s_signbitf.S @@ -0,0 +1 @@ +/* __signbitf is in s_signbit.S. */ diff --git a/sysdeps/ia64/fpu/s_signbitl.S b/sysdeps/ia64/fpu/s_signbitl.S new file mode 100644 index 0000000000..52d7678526 --- /dev/null +++ b/sysdeps/ia64/fpu/s_signbitl.S @@ -0,0 +1 @@ +/* __signbitl is in s_signbit.S. */ |