home *** CD-ROM | disk | FTP | other *** search
- / fixudfdi.s (emx+gcc) -- Copyright (c) 1992-1993 by Eberhard Mattes
-
- .globl ___fixunsdfdi
-
- .text
-
- .align 2, 0x90
-
- / ldexp (1.0, 63)
-
- LC0: .long 0x00000000
- .long 0x43e00000
-
- .align 2, 0x90
-
- #define tmp_lo -12(%ebp)
- #define tmp_hi -8(%ebp)
- #define cw1 -4(%ebp)
- #define cw2 -2(%ebp)
- /define saved_ebp 0(%ebp)
- /define ret_addr 4(%ebp)
- #define x 8(%ebp)
-
- ___fixunsdfdi:
- pushl %ebp
- movl %esp, %ebp
- subl $12, %esp
- fstcw cw1
- movw cw1, %ax
- orw $0x0c00, %ax / truncate towards zero
- movw %ax, cw2
- fldcw cw2
- fldl x
- fcoml LC0
- fstsww %ax
- sahf
- jb 1f
- fsubl LC0
- fistpq tmp_lo
- addl $0x80000000, tmp_hi
- jmp 2f
-
- .align 2, 0x90
- 1: fistpq tmp_lo
- 2: movl tmp_lo, %eax
- movl tmp_hi, %edx
- fldcw cw1
- leave
- ret
-