| OLD | NEW |
| 1 /* ix87 specific implementation of arctanh function. | 1 /* ix87 specific implementation of arctanh function. |
| 2 Copyright (C) 1996, 1999, 2005 Free Software Foundation, Inc. | 2 Copyright (C) 1996, 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 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 fmul %st(2) // 2*|x|^2 : 1-|x| : 2*|x| : 0.5*ln2 | 81 fmul %st(2) // 2*|x|^2 : 1-|x| : 2*|x| : 0.5*ln2 |
| 82 fdivp // (2*|x|^2)/(1-|x|) : 2*|x| : 0.5*ln2 | 82 fdivp // (2*|x|^2)/(1-|x|) : 2*|x| : 0.5*ln2 |
| 83 faddp // 2*|x|+(2*|x|^2)/(1-|x|) : 0.5*ln2 | 83 faddp // 2*|x|+(2*|x|^2)/(1-|x|) : 0.5*ln2 |
| 84 fcoml MO(limit) // 2*|x|+(2*|x|^2)/(1-|x|) : 0.5*ln2 | 84 fcoml MO(limit) // 2*|x|+(2*|x|^2)/(1-|x|) : 0.5*ln2 |
| 85 fnstsw // 2*|x|+(2*|x|^2)/(1-|x|) : 0.5*ln2 | 85 fnstsw // 2*|x|+(2*|x|^2)/(1-|x|) : 0.5*ln2 |
| 86 sahf | 86 sahf |
| 87 jae 4f | 87 jae 4f |
| 88 fyl2xp1 // 0.5*ln2*ld(1+2*|x|+(2*|x|^2)/(1-|x|)) | 88 fyl2xp1 // 0.5*ln2*ld(1+2*|x|+(2*|x|^2)/(1-|x|)) |
| 89 jecxz 3f | 89 jecxz 3f |
| 90 fchs // 0.5*ln2*ld(1+2*x+(2*x^2)/(1-x)) | 90 fchs // 0.5*ln2*ld(1+2*x+(2*x^2)/(1-x)) |
| 91 3:» ret | 91 3:» NACLRET |
| 92 | 92 |
| 93 .align ALIGNARG(4) | 93 .align ALIGNARG(4) |
| 94 4: faddl MO(one) // 1+2*|x|+(2*|x|^2)/(1-|x|) : 0.5*ln2 | 94 4: faddl MO(one) // 1+2*|x|+(2*|x|^2)/(1-|x|) : 0.5*ln2 |
| 95 fyl2x // 0.5*ln2*ld(1+2*|x|+(2*|x|^2)/(1-|x|)) | 95 fyl2x // 0.5*ln2*ld(1+2*|x|+(2*|x|^2)/(1-|x|)) |
| 96 jecxz 3f | 96 jecxz 3f |
| 97 fchs // 0.5*ln2*ld(1+2*x+(2*x^2)/(1-x)) | 97 fchs // 0.5*ln2*ld(1+2*x+(2*x^2)/(1-x)) |
| 98 3:» ret | 98 3:» NACLRET |
| 99 | 99 |
| 100 .align ALIGNARG(4) | 100 .align ALIGNARG(4) |
| 101 2: faddl MO(one) // 1+|x| : |x| : 0.5*ln2 | 101 2: faddl MO(one) // 1+|x| : |x| : 0.5*ln2 |
| 102 fxch // |x| : 1+|x| : 0.5*ln2 | 102 fxch // |x| : 1+|x| : 0.5*ln2 |
| 103 fsubrl MO(one) // 1-|x| : 1+|x| : 0.5*ln2 | 103 fsubrl MO(one) // 1-|x| : 1+|x| : 0.5*ln2 |
| 104 fdivrp // (1+|x|)/(1-|x|) : 0.5*ln2 | 104 fdivrp // (1+|x|)/(1-|x|) : 0.5*ln2 |
| 105 fyl2x // 0.5*ln2*ld((1+|x|)/(1-|x|)) | 105 fyl2x // 0.5*ln2*ld((1+|x|)/(1-|x|)) |
| 106 jecxz 3f | 106 jecxz 3f |
| 107 fchs // 0.5*ln2*ld((1+x)/(1-x)) | 107 fchs // 0.5*ln2*ld((1+x)/(1-x)) |
| 108 3:» ret | 108 3:» NACLRET |
| 109 | 109 |
| 110 // x == NaN or ±Inf | 110 // x == NaN or ±Inf |
| 111 5: ja 6f | 111 5: ja 6f |
| 112 cmpl $0, 4(%esp) | 112 cmpl $0, 4(%esp) |
| 113 je 7b | 113 je 7b |
| 114 6: fldl 4(%esp) | 114 6: fldl 4(%esp) |
| 115 » ret | 115 » NACLRET |
| 116 END(__ieee754_atanh) | 116 END(__ieee754_atanh) |
| OLD | NEW |