OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [newlib-1.10.0/] [newlib/] [libm/] [machine/] [i386/] [f_frexp.S] - Rev 1010

Go to most recent revision | Compare with Previous | Blame | View Log

/*
 * ====================================================
 * Copyright (C) 1998 by Cygnus Solutions. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this
 * software is freely granted, provided that this notice
 * is preserved.
 * ====================================================
 */

#if !defined(_SOFT_FLOAT)

/*
Fast version of frexp using Intel float instructions.

   double _f_frexp (double x, int *exp);

Function splits x into y * 2 ** z.  It then
returns the value of y and updates *exp with z.
There is no error checking or setting of errno.
*/

        #include "i386mach.h"

        .global SYM (_f_frexp)
       SOTYPE_FUNCTION(_f_frexp)

SYM (_f_frexp):
        pushl ebp
        movl esp,ebp
        fldl 8(ebp)
        movl 16(ebp),eax

        fxtract
        fld1
        fchs
        fxch
        fscale
        fstp st1
        fxch
        fld1
        faddp
        fistpl 0(eax)

        leave
        ret

#endif

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.