| OLD | NEW |
| 1 /* ix87 specific implementation of arcsinh. | 1 /* ix87 specific implementation of arcsinh. |
| 2 Copyright (C) 1996, 1997, 1999, 2005 Free Software Foundation, Inc. | 2 Copyright (C) 1996, 1997, 1999, 2005 Free Software Foundation, Inc. |
| 3 This file is part of the GNU C Library. | 3 This file is part of the GNU C Library. |
| 4 Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. | 4 Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. |
| 5 | 5 |
| 6 The GNU C Library is free software; you can redistribute it and/or | 6 The GNU C Library is free software; you can redistribute it and/or |
| 7 modify it under the terms of the GNU Lesser General Public | 7 modify it under the terms of the GNU Lesser General Public |
| 8 License as published by the Free Software Foundation; either | 8 License as published by the Free Software Foundation; either |
| 9 version 2.1 of the License, or (at your option) any later version. | 9 version 2.1 of the License, or (at your option) any later version. |
| 10 | 10 |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 faddl MO(one) // 1+sqrt(1+|x|^2) : |x|^2 : |x| : log(2
) | 76 faddl MO(one) // 1+sqrt(1+|x|^2) : |x|^2 : |x| : log(2
) |
| 77 fdivrp // |x|^2/(1+sqrt(1+|x|^2)) : |x| : log(2
) | 77 fdivrp // |x|^2/(1+sqrt(1+|x|^2)) : |x| : log(2
) |
| 78 faddp // |x|+|x|^2/(1+sqrt(1+|x|^2)) : log(2) | 78 faddp // |x|+|x|^2/(1+sqrt(1+|x|^2)) : log(2) |
| 79 fcoml MO(limit) | 79 fcoml MO(limit) |
| 80 fnstsw | 80 fnstsw |
| 81 sahf | 81 sahf |
| 82 ja 6f | 82 ja 6f |
| 83 fyl2xp1 | 83 fyl2xp1 |
| 84 jecxz 4f | 84 jecxz 4f |
| 85 fchs | 85 fchs |
| 86 4:» ret | 86 4:» NACLRET |
| 87 | 87 |
| 88 7: flds 4(%esp) | 88 7: flds 4(%esp) |
| 89 » ret | 89 » NACLRET |
| 90 | 90 |
| 91 6: faddl MO(one) | 91 6: faddl MO(one) |
| 92 fyl2x | 92 fyl2x |
| 93 jecxz 4f | 93 jecxz 4f |
| 94 fchs | 94 fchs |
| 95 4:» ret | 95 4:» NACLRET |
| 96 | 96 |
| 97 // |x| < 2^-14 => y = x (inexact iff |x| != 0.0) | 97 // |x| < 2^-14 => y = x (inexact iff |x| != 0.0) |
| 98 .align ALIGNARG(4) | 98 .align ALIGNARG(4) |
| 99 2: | 99 2: |
| 100 #ifdef PIC | 100 #ifdef PIC |
| 101 LOAD_PIC_REG (dx) | 101 LOAD_PIC_REG (dx) |
| 102 #endif | 102 #endif |
| 103 jecxz 4f | 103 jecxz 4f |
| 104 fchs // x | 104 fchs // x |
| 105 4: fld %st // x : x | 105 4: fld %st // x : x |
| 106 faddl MO(huge) // huge+x : x | 106 faddl MO(huge) // huge+x : x |
| 107 fstp %st(0) // x | 107 fstp %st(0) // x |
| 108 » ret | 108 » NACLRET |
| 109 | 109 |
| 110 // |x| > 2^14 => y = sign(x) * (log(|x|) + log(2)) | 110 // |x| > 2^14 => y = sign(x) * (log(|x|) + log(2)) |
| 111 .align ALIGNARG(4) | 111 .align ALIGNARG(4) |
| 112 3: fyl2x // log(|x|) | 112 3: fyl2x // log(|x|) |
| 113 fldln2 // log(2) : log(|x|) | 113 fldln2 // log(2) : log(|x|) |
| 114 faddp // log(|x|)+log(2) | 114 faddp // log(|x|)+log(2) |
| 115 jecxz 4f | 115 jecxz 4f |
| 116 fchs | 116 fchs |
| 117 4:» ret | 117 4:» NACLRET |
| 118 | 118 |
| 119 // |x| > 2 => y = sign(x) * log(2*|x| + 1/(|x|+sqrt(x*x+1))) | 119 // |x| > 2 => y = sign(x) * log(2*|x| + 1/(|x|+sqrt(x*x+1))) |
| 120 .align ALIGNARG(4) | 120 .align ALIGNARG(4) |
| 121 5: fld %st // |x| : |x| : log(2) | 121 5: fld %st // |x| : |x| : log(2) |
| 122 fadd %st, %st(1) // |x| : 2*|x| : log(2) | 122 fadd %st, %st(1) // |x| : 2*|x| : log(2) |
| 123 fld %st // |x| : |x| : 2*|x| : log(2) | 123 fld %st // |x| : |x| : 2*|x| : log(2) |
| 124 fmul %st(1) // |x|^2 : |x| : 2*|x| : log(2) | 124 fmul %st(1) // |x|^2 : |x| : 2*|x| : log(2) |
| 125 faddl MO(one) // 1+|x|^2 : |x| : 2*|x| : log(2) | 125 faddl MO(one) // 1+|x|^2 : |x| : 2*|x| : log(2) |
| 126 fsqrt // sqrt(1+|x|^2) : |x| : 2*|x| : log(2) | 126 fsqrt // sqrt(1+|x|^2) : |x| : 2*|x| : log(2) |
| 127 faddp // |x|+sqrt(1+|x|^2) : 2*|x| : log(2) | 127 faddp // |x|+sqrt(1+|x|^2) : 2*|x| : log(2) |
| 128 fdivrl MO(one) // 1/(|x|+sqrt(1+|x|^2)) : 2*|x| : log(2
) | 128 fdivrl MO(one) // 1/(|x|+sqrt(1+|x|^2)) : 2*|x| : log(2
) |
| 129 faddp // 2*|x|+1/(|x|+sqrt(1+|x|^2)) : log(2) | 129 faddp // 2*|x|+1/(|x|+sqrt(1+|x|^2)) : log(2) |
| 130 fyl2x // log(2*|x|+1/(|x|+sqrt(1+|x|^2))) | 130 fyl2x // log(2*|x|+1/(|x|+sqrt(1+|x|^2))) |
| 131 jecxz 4f | 131 jecxz 4f |
| 132 fchs | 132 fchs |
| 133 4:» ret | 133 4:» NACLRET |
| 134 END(__asinhf) | 134 END(__asinhf) |
| 135 weak_alias (__asinhf, asinhf) | 135 weak_alias (__asinhf, asinhf) |
| OLD | NEW |