| OLD | NEW |
| 1 /* ix87 specific implementation of exp(x)-1. | 1 /* ix87 specific implementation of exp(x)-1. |
| 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 Based on code by John C. Bowman <bowman@ipp-garching.mpg.de>. | 5 Based on code by John C. Bowman <bowman@ipp-garching.mpg.de>. |
| 6 Corrections by H.J. Lu (hjl@gnu.ai.mit.edu), 1997. | 6 Corrections by H.J. Lu (hjl@gnu.ai.mit.edu), 1997. |
| 7 | 7 |
| 8 The GNU C Library is free software; you can redistribute it and/or | 8 The GNU C Library is free software; you can redistribute it and/or |
| 9 modify it under the terms of the GNU Lesser General Public | 9 modify it under the terms of the GNU Lesser General Public |
| 10 License as published by the Free Software Foundation; either | 10 License as published by the Free Software Foundation; either |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 fsubr %st, %st(1) // int(log2(e)*x) : fract(log2(e)*x) | 68 fsubr %st, %st(1) // int(log2(e)*x) : fract(log2(e)*x) |
| 69 fxch // fract(log2(e)*x) : int(log2(e)*x) | 69 fxch // fract(log2(e)*x) : int(log2(e)*x) |
| 70 f2xm1 // 2^fract(log2(e)*x)-1 : int(log2(e)*x) | 70 f2xm1 // 2^fract(log2(e)*x)-1 : int(log2(e)*x) |
| 71 fscale // 2^(log2(e)*x)-2^int(log2(e)*x) : int(log2(e)*
x) | 71 fscale // 2^(log2(e)*x)-2^int(log2(e)*x) : int(log2(e)*
x) |
| 72 fxch // int(log2(e)*x) : 2^(log2(e)*x)-2^int(log2(e)*
x) | 72 fxch // int(log2(e)*x) : 2^(log2(e)*x)-2^int(log2(e)*
x) |
| 73 fldl MO(one) // 1 : int(log2(e)*x) : 2^(log2(e)*x)-2^int(log2
(e)*x) | 73 fldl MO(one) // 1 : int(log2(e)*x) : 2^(log2(e)*x)-2^int(log2
(e)*x) |
| 74 fscale // 2^int(log2(e)*x) : int(log2(e)*x) : 2^(log2(e
)*x)-2^int(log2(e)*x) | 74 fscale // 2^int(log2(e)*x) : int(log2(e)*x) : 2^(log2(e
)*x)-2^int(log2(e)*x) |
| 75 fsubrl MO(one) // 1-2^int(log2(e)*x) : int(log2(e)*x) : 2^(log2
(e)*x)-2^int(log2(e)*x) | 75 fsubrl MO(one) // 1-2^int(log2(e)*x) : int(log2(e)*x) : 2^(log2
(e)*x)-2^int(log2(e)*x) |
| 76 fstp %st(1) // 1-2^int(log2(e)*x) : 2^(log2(e)*x)-2^int(log2
(e)*x) | 76 fstp %st(1) // 1-2^int(log2(e)*x) : 2^(log2(e)*x)-2^int(log2
(e)*x) |
| 77 fsubrp %st, %st(1) // 2^(log2(e)*x) | 77 fsubrp %st, %st(1) // 2^(log2(e)*x) |
| 78 » ret | 78 » NACLRET |
| 79 | 79 |
| 80 2: testl $0x200, %eax // Test sign. | 80 2: testl $0x200, %eax // Test sign. |
| 81 jz 3f // If positive, jump. | 81 jz 3f // If positive, jump. |
| 82 fstp %st | 82 fstp %st |
| 83 fldl MO(minus1) // Set result to -1.0. | 83 fldl MO(minus1) // Set result to -1.0. |
| 84 3:» ret | 84 3:» NACLRET |
| 85 END(__expm1) | 85 END(__expm1) |
| 86 weak_alias (__expm1, expm1) | 86 weak_alias (__expm1, expm1) |
| OLD | NEW |