xref: /minix3/lib/libm/arch/i387/s_ilogb.S (revision 2fe8fb192fe7e8720e3e7a77f928da545e872a6a)
1*2fe8fb19SBen Gras/*
2*2fe8fb19SBen Gras * Written by J.T. Conklin <jtc@NetBSD.org>.
3*2fe8fb19SBen Gras * Public domain.
4*2fe8fb19SBen Gras */
5*2fe8fb19SBen Gras
6*2fe8fb19SBen Gras#include <machine/asm.h>
7*2fe8fb19SBen Gras
8*2fe8fb19SBen GrasRCSID("$NetBSD: s_ilogb.S,v 1.7 2003/07/26 19:25:02 salo Exp $")
9*2fe8fb19SBen Gras
10*2fe8fb19SBen GrasENTRY(ilogb)
11*2fe8fb19SBen Gras#ifdef __i386__
12*2fe8fb19SBen Gras	pushl	%ebp
13*2fe8fb19SBen Gras	movl	%esp,%ebp
14*2fe8fb19SBen Gras	subl	$4,%esp
15*2fe8fb19SBen Gras
16*2fe8fb19SBen Gras	fldl	8(%ebp)
17*2fe8fb19SBen Gras	fxtract
18*2fe8fb19SBen Gras	fstp	%st
19*2fe8fb19SBen Gras
20*2fe8fb19SBen Gras	fistpl	-4(%ebp)
21*2fe8fb19SBen Gras	movl	-4(%ebp),%eax
22*2fe8fb19SBen Gras
23*2fe8fb19SBen Gras	leave
24*2fe8fb19SBen Gras#else
25*2fe8fb19SBen Gras	movsd	%xmm0,-8(%rsp)
26*2fe8fb19SBen Gras	fldl	-8(%rsp)
27*2fe8fb19SBen Gras	fxtract
28*2fe8fb19SBen Gras	fstp	%st
29*2fe8fb19SBen Gras	fistpl	-8(%rsp)
30*2fe8fb19SBen Gras	movl	-8(%rsp),%eax
31*2fe8fb19SBen Gras#endif
32*2fe8fb19SBen Gras	ret
33