|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.