]>
Commit | Line | Data |
---|---|---|
e7fd8a39 | 1 | /* |
e7fd8a39 | 2 | * Public domain. |
e7fd8a39 UD |
3 | */ |
4 | ||
5 | #include <machine/asm.h> | |
220622dd | 6 | #include <libm-alias-finite.h> |
e7fd8a39 | 7 | |
0ac5ae23 | 8 | .section .rodata.cst8,"aM",@progbits,8 |
622c86f4 | 9 | |
0ac5ae23 | 10 | .p2align 3 |
b67e9372 | 11 | .type one,@object |
e7fd8a39 UD |
12 | one: .double 1.0 |
13 | ASM_SIZE_DIRECTIVE(one) | |
14 | /* It is not important that this constant is precise. It is only | |
15 | a value which is known to be on the safe side for using the | |
16 | fyl2xp1 instruction. */ | |
b67e9372 | 17 | .type limit,@object |
e7fd8a39 UD |
18 | limit: .double 0.29 |
19 | ASM_SIZE_DIRECTIVE(limit) | |
20 | ||
21 | ||
22 | #ifdef PIC | |
0ac5ae23 | 23 | # define MO(op) op##@GOTOFF(%edx) |
e7fd8a39 | 24 | #else |
0ac5ae23 | 25 | # define MO(op) op |
e7fd8a39 UD |
26 | #endif |
27 | ||
28 | .text | |
601d2942 | 29 | ENTRY(__ieee754_log2l) |
e7fd8a39 | 30 | #ifdef PIC |
fee732e5 | 31 | LOAD_PIC_REG (dx) |
e7fd8a39 UD |
32 | #endif |
33 | fldl MO(one) | |
34 | fldt 4(%esp) // x : 1 | |
15daa639 UD |
35 | fxam |
36 | fnstsw | |
e7fd8a39 | 37 | fld %st // x : x : 1 |
15daa639 UD |
38 | sahf |
39 |