Annotation of coherent/b/lib/libc/crt/i386/fops.s, revision 1.1

1.1     ! root        1: //////////
        !             2: / libc/crt/i386/fops.s
        !             3: / i386 C runtime library.
        !             4: / IEEE software floating point support.
        !             5: //////////
        !             6: 
        !             7: //////////
        !             8: / double _fadd(float f)
        !             9: / Return f + %edx:eax in %edx:%eax.
        !            10: /
        !            11: / double _fdiv(float f)
        !            12: / Return f / %edx:eax in %edx:%eax.
        !            13: /
        !            14: / double _fmul(float f)
        !            15: / Return f * %edx:eax in %edx:%eax.
        !            16: /
        !            17: / double _fsub(float f)
        !            18: / Return f - %edx:eax in %edx:%eax.
        !            19: //////////
        !            20: 
        !            21:        .globl  _fadd
        !            22:        .globl  _fdiv
        !            23:        .globl  _fmul
        !            24:        .globl  _fsub
        !            25:        .globl  _dadd
        !            26:        .globl  _drdiv
        !            27:        .globl  _dmul
        !            28:        .globl  _drsub
        !            29:        .globl  _dsub
        !            30:        .globl  _dfcvt
        !            31: 
        !            32: _fadd:                                 / Stack: f ra
        !            33:        push    %ecx                    / f ra ECX
        !            34:        mov     %ecx, $_dadd            / function to execute fn to ECX
        !            35:        jmp     .L0
        !            36: 
        !            37: _fdiv:
        !            38:        push    %ecx
        !            39:        mov     %ecx, $_drdiv
        !            40:        jmp     .L0
        !            41: 
        !            42: _fmul:
        !            43:        push    %ecx
        !            44:        mov     %ecx, $_dmul
        !            45:        jmp     .L0
        !            46: 
        !            47: _fsub:
        !            48:        push    %ecx
        !            49:        mov     %ecx, $_drsub
        !            50: 
        !            51: .L0:                                   / Stack: f ra ECX; fn in ECX
        !            52:        push    %edx                    / f ra ECX hi(d)
        !            53:        push    %eax                    / f ra ECX hi(d) lo(d)
        !            54:        movl    %eax, 16(%esp)          / f to EAX
        !            55:        call    _dfcvt                  / (double)f to EDX:EAX
        !            56:        icall   %ecx                    / execute fn(d), result to EDX:EAX
        !            57:        addl    %esp, $8                / f ra ECX
        !            58:        pop     %ecx                    / restore ECX
        !            59:        ret                             / and return
        !            60:        
        !            61: / end of libc/crt/i386/fops.s

unix.superglobalmegacorp.com

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