Annotation of coherent/b/lib/libc/crt/i386/fops.s, revision 1.1.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.