1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /* Set 80387 floating point hardware rounding precision */
- .file "setprec.387"
- .version "01.01"
- .text
- .align 16
- .globl sprec
- sprec:
- pushl %ebp
- movl %esp,%ebp
- pushl %eax
- subl $4,%esp
- fstcw (%esp)
- fwait
- movl (%esp),%eax
- andl $0xfcff,%eax
- movl %eax,(%esp)
- fldcw (%esp)
- popl %eax
- popl %eax
- leave
- ret
- .Lfe1:
- .size sprec,.Lfe1-sprec
- .align 16
- .globl dprec
- dprec:
- pushl %ebp
- movl %esp,%ebp
- pushl %eax
- subl $4,%esp
- fstcw (%esp)
- fwait
- movl (%esp),%eax
- andl $0xfcff,%eax
- /* trap on overflow */
- /* andl $0xfcf7,%eax */
- orl $0x200,%eax
- movl %eax,(%esp)
- fldcw (%esp)
- popl %eax
- popl %eax
- leave
- ret
- .Lfe2:
- .size dprec,.Lfe2-dprec
- .align 16
- .globl ldprec
- ldprec:
- pushl %ebp
- movl %esp,%ebp
- pushl %eax
- subl $4,%esp
- fstcw (%esp)
- fwait
- movl (%esp),%eax
- orl $0x300,%eax
- movl %eax,(%esp)
- fldcw (%esp)
- popl %eax
- popl %eax
- leave
- ret
- .Lfe3:
- .size ldprec,.Lfe3-ldprec
- .align 16
- .globl getprec
- getprec:
- pushl %ebp
- movl %esp,%ebp
- subl $4,%esp
- fstcw (%esp)
- fwait
- movl (%esp),%eax
- leave
- ret
- .Lfe4:
- .size getprec,.Lfe4-getprec
|