/ fxam.s (emx+gcc) -- Copyright (c) 1991-1993 by Eberhard Mattes

#include <libm.h>

#if defined (LONG_DOUBLE)
        .globl  __fxaml
#else
        .globl  __fxam
#endif

        .text

        .align  2, 0x90

/ int fxam (double x)

#define x       4(%esp)

#if defined (LONG_DOUBLE)
__fxaml:
#else
__fxam:
#endif
        FLD     x                       / x
        fxam
        fstsww  %ax
        ffree   %st(0)
        fincstp
        movl    %eax, %edx
        shrl    $8, %eax
        andl    $7, %eax
        test    $0x4000, %edx
        jz      fxam1
        orl     $8, %eax
fxam1:  ret
