]>
Commit | Line | Data |
---|---|---|
d38cd08c UD |
1 | /* |
2 | * Written by J.T. Conklin <jtc@netbsd.org>. | |
3 | * Public domain. | |
4 | * Adapted for float type by Ulrich Drepper <drepper@cygnus.com>. | |
5 | * | |
6 | * Changed to use fyl2xp1 for values near 1, <drepper@cygnus.com>. | |
7 | */ | |
8 | ||
9 | #include <machine/asm.h> | |
10 | ||
11 | RCSID("$NetBSD: $") | |
12 | ||
13 | #ifdef __ELF__ | |
14 | .section .rodata | |
15 | #else | |
16 | .text | |
17 | #endif | |
18 | .align ALIGNARG(4) | |
19 | ASM_TYPE_DIRECTIVE(one,@object) | |
20 | one: .double 1.0 | |
21 | ASM_SIZE_DIRECTIVE(one) | |
22 | /* It is not important that this constant is precise. It is only | |
23 | a value which is known to be on the safe side for using the | |
24 | fyl2xp1 instruction. */ | |
25 | ASM_TYPE_DIRECTIVE(limit,@object) | |
26 | limit: .double 0.29 | |
27 | ASM_SIZE_DIRECTIVE(limit) | |
28 | ||
29 | ||
30 | #ifdef PIC | |
31 | #define MO(op) op##@GOTOFF(%edx) | |
32 | #else | |
33 | #define MO(op) op | |
34 | #endif | |
35 | ||
36 | .text | |
37 | ENTRY(__ieee754_log10f) | |
38 | fldlg2 // log10(2) | |
39 | flds 4(%esp) // x : log10(2) | |
40 | #ifdef PIC | |
0ecb606c | 41 | LOAD_PIC_REG (dx) |
d38cd08c | 42 | #endif |
15daa639 UD |
43 | fxam |
44 | fnstsw | |
d38cd08c | 45 | fld %st // x : x : log10(2) |
15daa639 UD |
46 | sahf |
47 |