Home | History | Annotate | Download | only in i387
      1 /*
      2  * Based on code written by J.T. Conklin <jtc (at) NetBSD.org>.
      3  * Public domain.
      4  */
      5 
      6 #include <machine/asm.h>
      7 __FBSDID("$FreeBSD: src/lib/msun/i387/s_truncl.S,v 1.1 2005/04/16 21:12:55 das Exp $")
      8 
      9 ENTRY(truncl)
     10 	pushl	%ebp
     11 	movl	%esp,%ebp
     12 	subl	$8,%esp
     13 
     14 	fstcw	-4(%ebp)		/* store fpu control word */
     15 	movw	-4(%ebp),%dx
     16 	orw	$0x0c00,%dx		/* round towards -oo */
     17 	movw	%dx,-8(%ebp)
     18 	fldcw	-8(%ebp)		/* load modfied control word */
     19 
     20 	fldt	8(%ebp)			/* round */
     21 	frndint
     22 
     23 	fldcw	-4(%ebp)		/* restore original control word */
     24 
     25 	leave
     26 	ret
     27