| OLD | NEW |
| 1 /* ix87 specific implementation of arcsinh. | 1 /* ix87 specific implementation of arcsinh. |
| 2 Copyright (C) 1996, 1997, 2005 Free Software Foundation, Inc. | 2 Copyright (C) 1996, 1997, 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 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 fmul %st(1) // (x-1)^2 : x-1 : log(2) | 61 fmul %st(1) // (x-1)^2 : x-1 : log(2) |
| 62 fadd %st(1) // x-1+(x-1)^2 : x-1 : log(2) | 62 fadd %st(1) // x-1+(x-1)^2 : x-1 : log(2) |
| 63 fadd %st(1) // 2*(x-1)+(x-1)^2 : x-1 : log(2) | 63 fadd %st(1) // 2*(x-1)+(x-1)^2 : x-1 : log(2) |
| 64 fsqrt // sqrt(2*(x-1)+(x-1)^2) : x-1 : log(2) | 64 fsqrt // sqrt(2*(x-1)+(x-1)^2) : x-1 : log(2) |
| 65 faddp // x-1+sqrt(2*(x-1)+(x-1)^2) : log(2) | 65 faddp // x-1+sqrt(2*(x-1)+(x-1)^2) : log(2) |
| 66 fcoml MO(limit) | 66 fcoml MO(limit) |
| 67 fnstsw | 67 fnstsw |
| 68 sahf | 68 sahf |
| 69 ja 2f | 69 ja 2f |
| 70 fyl2xp1 // log1p(x-1+sqrt(2*(x-1)+(x-1)^2)) | 70 fyl2xp1 // log1p(x-1+sqrt(2*(x-1)+(x-1)^2)) |
| 71 » ret | 71 » NACLRET |
| 72 | 72 |
| 73 2: faddl MO(one) // x+sqrt(2*(x-1)+(x-1)^2) : log(2) | 73 2: faddl MO(one) // x+sqrt(2*(x-1)+(x-1)^2) : log(2) |
| 74 fyl2x // log(x+sqrt(2*(x-1)+(x-1)^2)) | 74 fyl2x // log(x+sqrt(2*(x-1)+(x-1)^2)) |
| 75 » ret | 75 » NACLRET |
| 76 | 76 |
| 77 // x > 2^14 => y = log(x) + log(2) | 77 // x > 2^14 => y = log(x) + log(2) |
| 78 .align ALIGNARG(4) | 78 .align ALIGNARG(4) |
| 79 3: fyl2x // log(x) | 79 3: fyl2x // log(x) |
| 80 fldln2 // log(2) : log(x) | 80 fldln2 // log(2) : log(x) |
| 81 faddp // log(x)+log(2) | 81 faddp // log(x)+log(2) |
| 82 » ret | 82 » NACLRET |
| 83 | 83 |
| 84 // 2^28 > x > 2 => y = log(2*x - 1/(x+sqrt(x*x-1))) | 84 // 2^28 > x > 2 => y = log(2*x - 1/(x+sqrt(x*x-1))) |
| 85 .align ALIGNARG(4) | 85 .align ALIGNARG(4) |
| 86 4: fld %st // x : x : log(2) | 86 4: fld %st // x : x : log(2) |
| 87 fadd %st, %st(1) // x : 2*x : log(2) | 87 fadd %st, %st(1) // x : 2*x : log(2) |
| 88 fld %st // x : x : 2*x : log(2) | 88 fld %st // x : x : 2*x : log(2) |
| 89 fmul %st(1) // x^2 : x : 2*x : log(2) | 89 fmul %st(1) // x^2 : x : 2*x : log(2) |
| 90 fsubl MO(one) // x^2-1 : x : 2*x : log(2) | 90 fsubl MO(one) // x^2-1 : x : 2*x : log(2) |
| 91 fsqrt // sqrt(x^2-1) : x : 2*x : log(2) | 91 fsqrt // sqrt(x^2-1) : x : 2*x : log(2) |
| 92 faddp // x+sqrt(x^2-1) : 2*x : log(2) | 92 faddp // x+sqrt(x^2-1) : 2*x : log(2) |
| 93 fdivrl MO(one) // 1/(x+sqrt(x^2-1)) : 2*x : log(2) | 93 fdivrl MO(one) // 1/(x+sqrt(x^2-1)) : 2*x : log(2) |
| 94 fsubrp // 2*x+1/(x+sqrt(x^2)-1) : log(2) | 94 fsubrp // 2*x+1/(x+sqrt(x^2)-1) : log(2) |
| 95 fyl2x // log(2*x+1/(x+sqrt(x^2-1))) | 95 fyl2x // log(2*x+1/(x+sqrt(x^2-1))) |
| 96 » ret | 96 » NACLRET |
| 97 | 97 |
| 98 // x < 1 => NaN | 98 // x < 1 => NaN |
| 99 .align ALIGNARG(4) | 99 .align ALIGNARG(4) |
| 100 5: fldz | 100 5: fldz |
| 101 fdiv %st, %st(0) | 101 fdiv %st, %st(0) |
| 102 » ret | 102 » NACLRET |
| 103 END(__ieee754_acoshf) | 103 END(__ieee754_acoshf) |
| OLD | NEW |