Annotation of coherent/b/lib/libm/i387/cosh87.s, revision 1.1

1.1     ! root        1: //////////
        !             2: / /usr/src/libm/i387/cosh87.s
        !             3: / i387 mathematics library
        !             4: / cosh(d), sinh(d)
        !             5: //////////
        !             6: 
        !             7: RASIZE =       4
        !             8: 
        !             9:        .globl  cosh
        !            10:        .globl  sinh
        !            11:        .globl  _exp
        !            12: 
        !            13: //////////
        !            14: / double
        !            15: / cosh(d)
        !            16: / double d;
        !            17: /
        !            18: / double
        !            19: / sinh(d)
        !            20: / double d;
        !            21: /
        !            22: / cosh(d) = (exp(d) + 1/exp(d))/2
        !            23: / sinh(d) = (exp(d) - 1/exp(d))/2
        !            24: //////////
        !            25: 
        !            26: d      =       RASIZE          / arg offset
        !            27: 
        !            28: cosh:
        !            29:        clc                     / Clear Carry to indicate cosh.
        !            30:        jmp     .L0             / Go to common code.
        !            31: 
        !            32: sinh:
        !            33:        stc                     / Set Carry to indicate sinh.
        !            34: 
        !            35: .L0:
        !            36:        fldl    d(%esp)         / Load argument d.
        !            37: 
        !            38:        pushf                   / Save the Carry flag.
        !            39:        call    _exp            / exp(d)
        !            40:        fld     %st             / exp(d), exp(d)
        !            41:        fld1                    / 1, exp(d), exp(d)
        !            42:        fdiv    %st, %st(1)     / 1/exp(d), exp(d)
        !            43:        popf                    / Restore the flags.
        !            44:        jnc     ?1              / Jump if cosh.
        !            45:        fchs                    / -1/exp(d), exp(d) for cosh
        !            46: 
        !            47: ?1:
        !            48:        fadd                    / exp(d) +- 1/exp(d)
        !            49:        fld1                    / 1, exp(d) +- 1/exp(d)
        !            50:        fchs                    / -1, exp(d) +- 1/exp(d)
        !            51:        fxch                    / exp(d) +- 1/exp(d), -1
        !            52:        fscale                  / (exp(d) +- 1/exp(d)) / 2, -1
        !            53:        fstp    %st(1)          / (exp(d) +- 1/exp(d)) / 2
        !            54:        ret
        !            55: 
        !            56: / end of cosh87.s

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.