80386 alternative math lib - ooops
Glenn Geers
glenn at extro.ucc.su.OZ.AU
Sat Dec 8 18:15:59 AEST 1990
Hi,
I sent an old version of ieee_ext.s in my original group of postings.
Please replace that file with the one affixed to this posting.
This is not a shar file...
Cheers,
Glenn
------------------CUT HERE--------------------
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
.align 4
.globl isnan
isnan:
pushl %ebp
movl %esp,%ebp
movl 12(%ebp), %eax
andl $0x7ff00000, %eax
cmpl $0x7ff00000, %eax
jne .Lnotnan
movl 12(%ebp), %eax
andl $0xfffff, %eax
orl 8(%ebp), %eax
je .Lnotnan
movl $1, %eax
leave
ret
.Lnotnan:
movl $0, %eax
.Ldone:
leave
ret
.align 4
.globl isinf
isinf:
pushl %ebp
movl %esp,%ebp
movl 12(%ebp), %eax
andl $0x7ff00000, %eax
cmpl $0x7ff00000, %eax
je .Lcouldbeinf
.Lnotinf:
movl $0, %eax
leave
ret
.Lcouldbeinf:
movl 12(%ebp), %eax
andl $0xfffff, %eax
orl 8(%ebp), %eax
jne .Lnotinf
movl $1, %eax
leave
ret
.align 4
.globl iszero
iszero:
pushl %ebp
movl %esp,%ebp
movl 12(%ebp), %eax
cmpl $0x0, %eax
je .Lcouldbezero
.Lnotzero:
movl $0, %eax
leave
ret
.Lcouldbezero:
andl $0xfffff, %eax
orl 8(%ebp), %eax
jne .Lnotzero
movl $1, %eax
leave
ret
.align 4
.globl signbit
signbit:
pushl %ebp
movl %esp,%ebp
movl 12(%ebp), %eax
andl $0x80000000, %eax
cmpl $0x80000000, %eax
jne .Lpos
movl $1, %eax
leave
ret
.Lpos:
movl $0, %eax
leave
ret
.align 4
.globl issubnormal
issubnormal:
pushl %ebp
movl %esp,%ebp
movl 12(%ebp), %eax
andl $0x7ff00000, %eax
cmpl $0x0, %eax
je .Lcouldbesub
.Lnotsubnorm:
movl $0, %eax
leave
ret
.Lcouldbesub:
movl 12(%ebp), %eax
andl $0xfffff, %eax
orl 8(%ebp), %eax
je .Lnotsubnorm
movl $1, %eax
leave
ret
.align 4
.globl isnormal
isnormal:
pushl %ebp
movl %esp,%ebp
movl 12(%ebp), %eax
andl $0x7ff00000, %eax /* mask sign bit */
xorl $0x7ff00000, %eax
cmpl $0x0, %eax
je .Lnotnorm
cmpl $0x7ff00000, %eax
je .Lcouldbenorm
.Lnorm:
movl $1, %eax
leave
ret
.Lcouldbenorm:
movl 12(%ebp), %eax
andl $0xfffff, %eax
orl 8(%ebp), %eax
je .Lnorm
.Lnotnorm:
movl $0, %eax
leave
ret
----------------CUT HERE--------------------
--
Glenn Geers | "So when it's over, we're back to people.
Department of Theoretical Physics | Just to prove that human touch can have
The University of Sydney | no equal."
Sydney NSW 2006 Australia | - Basia Trzetrzelewska, 'Prime Time TV'
More information about the Alt.sources
mailing list