| OLD | NEW |
| 1 /* Compute the hypothenuse of X and Y. | 1 /* Compute the hypothenuse of X and Y. |
| 2 Copyright (C) 1998 Free Software Foundation, Inc. | 2 Copyright (C) 1998 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>, 1998. | 4 Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. |
| 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 20 matching lines...) Expand all Loading... |
| 31 fnstsw | 31 fnstsw |
| 32 movb %ah, %al | 32 movb %ah, %al |
| 33 orb %ch, %ah | 33 orb %ch, %ah |
| 34 sahf | 34 sahf |
| 35 jc 1f | 35 jc 1f |
| 36 fmul %st(0) // y * y : x | 36 fmul %st(0) // y * y : x |
| 37 fxch // x : y * y | 37 fxch // x : y * y |
| 38 fmul %st(0) // x * x : y * y | 38 fmul %st(0) // x * x : y * y |
| 39 faddp // x * x + y * y | 39 faddp // x * x + y * y |
| 40 fsqrt | 40 fsqrt |
| 41 2:» ret | 41 2:» NACLRET |
| 42 | 42 |
| 43 // We have to test whether any of the parameters is Inf. | 43 // We have to test whether any of the parameters is Inf. |
| 44 // In this case the result is infinity. | 44 // In this case the result is infinity. |
| 45 1: andb $0x45, %al | 45 1: andb $0x45, %al |
| 46 cmpb $5, %al | 46 cmpb $5, %al |
| 47 je 3f // jump if y is Inf | 47 je 3f // jump if y is Inf |
| 48 andb $0x45, %ch | 48 andb $0x45, %ch |
| 49 cmpb $5, %ch | 49 cmpb $5, %ch |
| 50 jne 4f // jump if x is not Inf | 50 jne 4f // jump if x is not Inf |
| 51 fxch | 51 fxch |
| 52 3: fstp %st(1) | 52 3: fstp %st(1) |
| 53 fabs | 53 fabs |
| 54 jmp 2b | 54 jmp 2b |
| 55 | 55 |
| 56 4: testb $1, %al | 56 4: testb $1, %al |
| 57 jnz 5f // y is NaN | 57 jnz 5f // y is NaN |
| 58 fxch | 58 fxch |
| 59 5: fstp %st(1) | 59 5: fstp %st(1) |
| 60 jmp 2b | 60 jmp 2b |
| 61 | 61 |
| 62 END(__ieee754_hypot) | 62 END(__ieee754_hypot) |
| OLD | NEW |