File:  [DVB] / dietlibc / i386 / exp10.S
Revision 1.2: download - view: text, annotated - select for diffs
Mon Jul 30 13:52:55 2001 UTC (22 years, 10 months ago) by fefe
Branches: MAIN
CVS tags: finnland_test_200301, branch_rc14_fieldtest_finnland, branch_rc13_fieldtest_finnland, branch_rc12_fieldtest_finnland, branch_rc10_fieldtest_finnland, RELEASE_finnland_200301_1, RC12_FIELDTEST_FINNLAND, RC10_FIELDTEST_FINNLAND, HEAD
more math stuff


.text
.type   exp10,@function
.global exp10
.type   pow10,@function
.global pow10


pow10:
exp10:                          # note: 10^(x) = 2^(x*log2(10))
        fldl2t
        fmull    4(%esp)        # x*log2(10)
        fld      %st(0)         # x*log2(10)              x*log2(10)
        frndint                 # int(x*log2(10))         x*log2(10)
        fxch                    # x*log2(10)              int(x*log2(10))
        fsub     %st(1),%st(0)  # frac(x*log2(10))        int(x*log2(10))
        f2xm1                   # 2^(fract(x*log2(10)))-1 int(x*log2(10))
        fld1                    # 1                       2^(fract(x*log2(10)))-1       int(x*log2(10))
        faddp    %st(0),%st(1)  # 2^(fract(x*log2(10)))   int(x*log2(10))
        fscale                  # 2^(x*log2(10))          int(x*log2(10))
        fstp     %st(1)         # 2^(x*log2(10))
        ret

.ende:

.size    exp10,.ende-exp10
.size    pow10,.ende-pow10

LinuxTV legacy CVS <linuxtv.org/cvs>