mirror of https://gitee.com/Nocallback/glibc.git
Browse Source
* sysdeps/sparc/sparc32/fpu/s_signbit.S: New file. * sysdeps/sparc/sparc32/fpu/s_signbitf.S: New file. * sysdeps/sparc/sparc32/fpu/s_signbitl.S: New file. * sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S: New file. * sysdeps/sparc/sparc64/fpu/s_isnan.S: New file. * sysdeps/sparc/sparc64/fpu/s_isnanf.S: New file. * sysdeps/sparc/sparc64/fpu/s_signbit.S: New file. * sysdeps/sparc/sparc64/fpu/s_signbitf.S: New file. * sysdeps/sparc/sparc64/fpu/s_signbitl.S: New file.aj/revert-sunrpc
10 changed files with 234 additions and 0 deletions
@ -0,0 +1,32 @@ |
|||
/* signbit(). sparc32 version. |
|||
Copyright (C) 2012 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 Lesser General Public |
|||
License as published by the Free Software Foundation; either |
|||
version 2.1 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 |
|||
Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public |
|||
License along with the GNU C Library; if not, see |
|||
<http://www.gnu.org/licenses/>. */ |
|||
|
|||
#include <sysdep.h> |
|||
|
|||
ENTRY (__signbit) |
|||
retl |
|||
srl %o0, 31, %o0 |
|||
END (__signbit) |
|||
weak_alias (__signbit, signbit) |
|||
|
|||
/* On 32-bit the double version will also always work for |
|||
single-precision since in both cases the word with the |
|||
sign bit in it is passed always in register %o0. */ |
|||
strong_alias (__signbit, __signbitf) |
|||
hidden_def (__signbitf) |
|||
weak_alias (__signbitf, signbitf) |
|||
@ -0,0 +1 @@ |
|||
/* signbitf is implemented in s_signbit.S */ |
|||
@ -0,0 +1,32 @@ |
|||
/* signbitl(). sparc32 version. |
|||
Copyright (C) 2012 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 Lesser General Public |
|||
License as published by the Free Software Foundation; either |
|||
version 2.1 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 |
|||
Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public |
|||
License along with the GNU C Library; if not, see |
|||
<http://www.gnu.org/licenses/>. */ |
|||
|
|||
#include <sysdep.h> |
|||
#include <math_ldbl_opt.h> |
|||
|
|||
ENTRY (___signbitl) |
|||
ld [%o0], %o1 |
|||
retl |
|||
srl %o1, 31, %o0 |
|||
END (___signbitl) |
|||
|
|||
#ifdef IS_IN_libm |
|||
long_double_symbol (libm, ___signbitl, __signbitl); |
|||
#else |
|||
long_double_symbol (libc, ___signbitl, __signbitl); |
|||
#endif |
|||
@ -0,0 +1,32 @@ |
|||
/* isnan(). sparc32 v9 version. |
|||
Copyright (C) 2012 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 Lesser General Public |
|||
License as published by the Free Software Foundation; either |
|||
version 2.1 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 |
|||
Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public |
|||
License along with the GNU C Library; if not, see |
|||
<http://www.gnu.org/licenses/>. */ |
|||
|
|||
#include <sysdep.h> |
|||
|
|||
ENTRY (__isnan) |
|||
sethi %hi(0x7ff00000), %g1 |
|||
sllx %o0, 33, %o0 |
|||
sllx %g1, 32, %g1 |
|||
srlx %o0, 1, %o0 |
|||
or %o0, %o1, %o0 |
|||
sub %g1, %o0, %o0 |
|||
retl |
|||
srlx %o0, 63, %o0 |
|||
END (__isnan) |
|||
hidden_def (__isnan) |
|||
weak_alias (__isnan, isnan) |
|||
@ -0,0 +1,33 @@ |
|||
/* isnan(). sparc64 version. |
|||
Copyright (C) 2012 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 Lesser General Public |
|||
License as published by the Free Software Foundation; either |
|||
version 2.1 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 |
|||
Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public |
|||
License along with the GNU C Library; if not, see |
|||
<http://www.gnu.org/licenses/>. */ |
|||
|
|||
#include <sysdep.h> |
|||
|
|||
ENTRY (__isnan) |
|||
std %f0, [%sp + STACK_BIAS + 128] |
|||
sethi %hi(0x7ff00000), %g1 |
|||
ldx [%sp + STACK_BIAS + 128], %o0 |
|||
sllx %g1, 32, %g1 |
|||
sllx %o0, 1, %o0 |
|||
srlx %o0, 1, %o0 |
|||
sub %g1, %o0, %o0 |
|||
retl |
|||
srlx %o0, 63, %o0 |
|||
END (__isnan) |
|||
hidden_def (__isnan) |
|||
weak_alias (__isnan, isnan) |
|||
@ -0,0 +1,32 @@ |
|||
/* isnanf(). sparc64 version. |
|||
Copyright (C) 2012 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 Lesser General Public |
|||
License as published by the Free Software Foundation; either |
|||
version 2.1 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 |
|||
Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public |
|||
License along with the GNU C Library; if not, see |
|||
<http://www.gnu.org/licenses/>. */ |
|||
|
|||
#include <sysdep.h> |
|||
|
|||
ENTRY (__isnanf) |
|||
st %f1, [%sp + STACK_BIAS + 128] |
|||
sethi %hi(0x7f800000), %g1 |
|||
lduw [%sp + STACK_BIAS + 128], %o0 |
|||
sll %o0, 1, %o0 |
|||
srl %o0, 1, %o0 |
|||
sub %g1, %o0, %o0 |
|||
retl |
|||
srl %o0, 31, %o0 |
|||
END (__isnanf) |
|||
hidden_def (__isnanf) |
|||
weak_alias (__isnanf, isnanf) |
|||
@ -0,0 +1,34 @@ |
|||
/* signbit(). sparc64 version. |
|||
Copyright (C) 2012 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 Lesser General Public |
|||
License as published by the Free Software Foundation; either |
|||
version 2.1 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 |
|||
Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public |
|||
License along with the GNU C Library; if not, see |
|||
<http://www.gnu.org/licenses/>. */ |
|||
|
|||
#include <sysdep.h> |
|||
|
|||
ENTRY (__signbit) |
|||
st %f0, [%sp + STACK_BIAS + 128] |
|||
ld [%sp + STACK_BIAS + 128], %o0 |
|||
retl |
|||
srl %o0, 31, %o0 |
|||
END (__signbit) |
|||
weak_alias (__signbit, signbit) |
|||
|
|||
/* On 64-bit the double version will also always work for |
|||
long-double-precision since in both cases the word with the |
|||
sign bit in it is passed always in register %f0. */ |
|||
strong_alias (__signbit, __signbitl) |
|||
hidden_def (__signbitl) |
|||
weak_alias (__signbitl, signbitl) |
|||
@ -0,0 +1,27 @@ |
|||
/* signbitf(). sparc64 version. |
|||
Copyright (C) 2012 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 Lesser General Public |
|||
License as published by the Free Software Foundation; either |
|||
version 2.1 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 |
|||
Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public |
|||
License along with the GNU C Library; if not, see |
|||
<http://www.gnu.org/licenses/>. */ |
|||
|
|||
#include <sysdep.h> |
|||
|
|||
ENTRY (__signbitf) |
|||
st %f1, [%sp + STACK_BIAS + 128] |
|||
ld [%sp + STACK_BIAS + 128], %o0 |
|||
retl |
|||
srl %o0, 31, %o0 |
|||
END (__signbitf) |
|||
weak_alias (__signbitf, signbitf) |
|||
@ -0,0 +1 @@ |
|||
/* signbitl is implemented in s_signbit.S */ |
|||
Loading…
Reference in new issue