Skip to content

Commit

Permalink
Update FloatMathPlugin to accord with the BIT_IDENTICAL_FLOATINT_POIN…
Browse files Browse the repository at this point in the history
…T regime if in

effect.  N.B. Nicolas, this needs your rebiew.  Look at the defines in
FloatMathPlugin.h.

This check-in contains a provisional hack insertion of sqMathShim.h in
FloatMathPlugin.c, which needs VMMaker changes.
  • Loading branch information
eliotmiranda committed Apr 24, 2020
1 parent 67c69e0 commit c6eaa7d
Show file tree
Hide file tree
Showing 129 changed files with 320 additions and 13,255 deletions.
111 changes: 77 additions & 34 deletions platforms/Cross/plugins/FloatMathPlugin/FloatMathPlugin.h
@@ -1,34 +1,77 @@
/* we only declare those functions from fdlibm that we actually use
and avoid including fdlibm.h alltogether as it conflicts with math.h */

/* #define NO_ISNAN -- do NOT define this by default but in command line*/

#if !defined(NO_ISNAN) && !defined(isnan)
/* by default we use fdlibm's isnan() */
extern int isnan(double);
#endif
extern double __ieee754_sqrt(double);

extern double __ieee754_acos(double);
extern double __ieee754_acosh(double);
extern double __ieee754_asin(double);
extern double __ieee754_asinh(double);
extern double __ieee754_atan(double);
extern double __ieee754_atan2(double,double);
extern double __ieee754_atanh(double);
extern double __ieee754_cos(double);
extern double __ieee754_cosh(double);
extern double __ieee754_exp(double);
extern double __ieee754_fmod(double,double);
extern double __ieee754_modf(double,double*);
extern double __ieee754_hypot(double,double);
extern double __ieee754_log10(double);
extern double __ieee754_log(double);
extern double __ieee754_pow(double,double);
extern double __ieee754_sin(double);
extern double __ieee754_sinh(double);
extern double __ieee754_sqrt(double);
extern double __ieee754_tan(double);
extern double __ieee754_tanh(double);
extern double __ieee754_ldexp(double, int);

/* we only declare those functions from fdlibm that we actually use
and avoid including fdlibm.h alltogether as it conflicts with math.h */



/* #define NO_ISNAN -- do NOT define this by default but in command line*/



#if !defined(NO_ISNAN) && !defined(isnan)

/* by default we use fdlibm's isnan() */

extern int isnan(double);

#endif

extern double __ieee754_sqrt(double);



#if BIT_IDENTICAL_FLOATING_POINT
# define __ieee754_asin asin
# define __ieee754_asinh asinh
# define __ieee754_atan atan
# define __ieee754_cos cos
# define __ieee754_ldexp ldexp
# define __ieee754_modf modf
# define __ieee754_sin sin
# define __ieee754_tan tan
# define __ieee754_tanh tanh
#else
extern double __ieee754_asin(double);

extern double __ieee754_asinh(double);

extern double __ieee754_atan(double);

extern double __ieee754_cos(double);

extern double __ieee754_ldexp(double, int);

extern double __ieee754_modf(double,double*);

extern double __ieee754_sin(double);

extern double __ieee754_tan(double);

extern double __ieee754_tanh(double);
#endif

extern double __ieee754_acos(double);

extern double __ieee754_acosh(double);

extern double __ieee754_atan2(double,double);

extern double __ieee754_atanh(double);

extern double __ieee754_cosh(double);

extern double __ieee754_exp(double);

extern double __ieee754_fmod(double,double);

extern double __ieee754_hypot(double,double);

extern double __ieee754_log10(double);

extern double __ieee754_log(double);

extern double __ieee754_pow(double,double);

extern double __ieee754_sinh(double);

extern double __ieee754_sqrt(double);
1 change: 0 additions & 1 deletion platforms/Cross/plugins/FloatMathPlugin/FloatMathPlugin.st

This file was deleted.

8 changes: 6 additions & 2 deletions platforms/Cross/plugins/FloatMathPlugin/acos.c
@@ -1,2 +1,6 @@
#include "ieee754names.h"
#include "fdlibm/e_acos.c"
#if !BIT_IDENTICAL_FLOATING_POINT
#include "ieee754names.h"

#include "../../third-party/fdlibm/e_acos.c"

#endif
8 changes: 6 additions & 2 deletions platforms/Cross/plugins/FloatMathPlugin/acosh.c
@@ -1,2 +1,6 @@
#include "ieee754names.h"
#include "fdlibm/e_acosh.c"
#if !BIT_IDENTICAL_FLOATING_POINT
#include "ieee754names.h"

#include "../../third-party/fdlibm/e_acosh.c"

#endif
8 changes: 6 additions & 2 deletions platforms/Cross/plugins/FloatMathPlugin/asin.c
@@ -1,2 +1,6 @@
#include "ieee754names.h"
#include "fdlibm/e_asin.c"
#if !BIT_IDENTICAL_FLOATING_POINT
#include "ieee754names.h"

#include "../../third-party/fdlibm/e_asin.c"

#endif
8 changes: 6 additions & 2 deletions platforms/Cross/plugins/FloatMathPlugin/asinh.c
@@ -1,2 +1,6 @@
#include "ieee754names.h"
#include "fdlibm/s_asinh.c"
#if !BIT_IDENTICAL_FLOATING_POINT
#include "ieee754names.h"

#include "../../third-party/fdlibm/s_asinh.c"

#endif
8 changes: 6 additions & 2 deletions platforms/Cross/plugins/FloatMathPlugin/atan.c
@@ -1,2 +1,6 @@
#include "ieee754names.h"
#include "fdlibm/s_atan.c"
#if !BIT_IDENTICAL_FLOATING_POINT
#include "ieee754names.h"

#include "../../third-party/fdlibm/s_atan.c"

#endif
8 changes: 6 additions & 2 deletions platforms/Cross/plugins/FloatMathPlugin/atan2.c
@@ -1,2 +1,6 @@
#include "ieee754names.h"
#include "fdlibm/e_atan2.c"
#if !BIT_IDENTICAL_FLOATING_POINT
#include "ieee754names.h"

#include "../../third-party/fdlibm/e_atan2.c"

#endif
8 changes: 6 additions & 2 deletions platforms/Cross/plugins/FloatMathPlugin/atanh.c
@@ -1,2 +1,6 @@
#include "ieee754names.h"
#include "fdlibm/e_atanh.c"
#if !BIT_IDENTICAL_FLOATING_POINT
#include "ieee754names.h"

#include "../../third-party/fdlibm/e_atanh.c"

#endif
8 changes: 6 additions & 2 deletions platforms/Cross/plugins/FloatMathPlugin/copysign.c
@@ -1,2 +1,6 @@
#include "ieee754names.h"
#include "fdlibm/s_copysign.c"
#if !BIT_IDENTICAL_FLOATING_POINT
#include "ieee754names.h"

#include "../../third-party/fdlibm/s_copysign.c"

#endif
8 changes: 6 additions & 2 deletions platforms/Cross/plugins/FloatMathPlugin/cos.c
@@ -1,2 +1,6 @@
#include "ieee754names.h"
#include "fdlibm/s_cos.c"
#if !BIT_IDENTICAL_FLOATING_POINT
#include "ieee754names.h"

#include "../../third-party/fdlibm/s_cos.c"

#endif
8 changes: 6 additions & 2 deletions platforms/Cross/plugins/FloatMathPlugin/cosh.c
@@ -1,2 +1,6 @@
#include "ieee754names.h"
#include "fdlibm/e_cosh.c"
#if !BIT_IDENTICAL_FLOATING_POINT
#include "ieee754names.h"

#include "../../third-party/fdlibm/e_cosh.c"

#endif
8 changes: 6 additions & 2 deletions platforms/Cross/plugins/FloatMathPlugin/exp.c
@@ -1,2 +1,6 @@
#include "ieee754names.h"
#include "fdlibm/e_exp.c"
#if !BIT_IDENTICAL_FLOATING_POINT
#include "ieee754names.h"

#include "../../third-party/fdlibm/e_exp.c"

#endif
8 changes: 6 additions & 2 deletions platforms/Cross/plugins/FloatMathPlugin/expm1.c
@@ -1,2 +1,6 @@
#include "ieee754names.h"
#include "fdlibm/s_expm1.c"
#if !BIT_IDENTICAL_FLOATING_POINT
#include "ieee754names.h"

#include "../../third-party/fdlibm/s_expm1.c"

#endif

0 comments on commit c6eaa7d

Please sign in to comment.