• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 /*
7  * Written by J.T. Conklin <jtc@netbsd.org>.
8  * Public domain.
9  *
10  * Adapted for float type by Danny Smith
11  *  <dannysmith@users.sourceforge.net>.
12  */
13 
14 #include <math.h>
15 
16 float
fmodf(float x,float y)17 fmodf (float x, float y)
18 {
19   float res = 0.0F;
20 
21   asm volatile (
22        "1:\tfprem\n\t"
23        "fstsw   %%ax\n\t"
24        "sahf\n\t"
25        "jp      1b\n\t"
26        "fstp    %%st(1)"
27        : "=t" (res) : "0" (x), "u" (y) : "ax", "st(1)");
28   return res;
29 }
30