diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2025-07-31 21:01:00 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2025-07-31 21:01:16 +0200 |
| commit | 27312d7a15d9428ea66797c761ec8ee92904b4ca (patch) | |
| tree | a1c290b3fbb1c768a33ca92905d4b19377f284cb /src | |
| parent | d19a3d987b5c8eced66e087ba90f823f3cc99959 (diff) | |
| download | box64-27312d7a15d9428ea66797c761ec8ee92904b4ca.tar.gz box64-27312d7a15d9428ea66797c761ec8ee92904b4ca.zip | |
[WRAPPER] Added __powl_finite wrapping to libm (for #2862)
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedlibmtypes.h | 5 | ||||
| -rw-r--r-- | src/wrapped/wrappedlibm.c | 9 | ||||
| -rw-r--r-- | src/wrapped/wrappedlibm_private.h | 1 |
4 files changed, 16 insertions, 1 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 7e1f0f62..c85af77d 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -5130,6 +5130,8 @@ wrappedlibm: - __fmod_finite - __hypot_finite - __pow_finite +- DFDD: + - __powl_finite wrappedlibncurses: - pFv: - initscr diff --git a/src/wrapped/generated/wrappedlibmtypes.h b/src/wrapped/generated/wrappedlibmtypes.h index adeff992..2d0b0c22 100644 --- a/src/wrapped/generated/wrappedlibmtypes.h +++ b/src/wrapped/generated/wrappedlibmtypes.h @@ -25,9 +25,11 @@ typedef double (*dFdd_t)(double, double); #if defined(HAVE_LD80BITS) || defined(ANDROID) typedef int64_t (*IFD_t)(long double); typedef long double (*DFD_t)(long double); +typedef long double (*DFDD_t)(long double, long double); #else // !HAVE_LD80BITS && !ANDROID typedef int64_t (*IFD_t)(double); typedef double (*DFD_t)(double); +typedef double (*DFDD_t)(double, double); #endif #define SUPER() ADDED_FUNCTIONS() \ @@ -74,6 +76,7 @@ typedef double (*DFD_t)(double); GO(__atan2_finite, dFdd_t) \ GO(__fmod_finite, dFdd_t) \ GO(__hypot_finite, dFdd_t) \ - GO(__pow_finite, dFdd_t) + GO(__pow_finite, dFdd_t) \ + GO(__powl_finite, DFDD_t) #endif // __wrappedlibmTYPES_H_ diff --git a/src/wrapped/wrappedlibm.c b/src/wrapped/wrappedlibm.c index 8a7273ec..9e7a9ebc 100644 --- a/src/wrapped/wrappedlibm.c +++ b/src/wrapped/wrappedlibm.c @@ -27,6 +27,9 @@ typedef float (*fFff_t) (float, float); typedef double (*dFdd_t) (double, double); typedef float (*fFf_t) (float); typedef double (*dFd_t) (double); +#ifdef HAVE_LD80BITS +typedef long double (*DFDD_t) (long double, long double); +#endif #undef GO_cFc @@ -81,6 +84,12 @@ F1D(log) F2F(fmodf) F2D(fmod) +#ifdef HAVE_LD80BITS +FINITE(powl, DFDD_t, long double, (long double a, long double b), a, b) +#else +EXPORT double my___powl_finite(double a, double b) __attribute__((alias("my___pow_finite"))); +#endif + #undef F2D #undef F2F #undef F1D diff --git a/src/wrapped/wrappedlibm_private.h b/src/wrapped/wrappedlibm_private.h index effcf49c..c827b2c7 100644 --- a/src/wrapped/wrappedlibm_private.h +++ b/src/wrapped/wrappedlibm_private.h @@ -303,6 +303,7 @@ GOWM(pow10l, DFD) GOW(powf, fFff) GOM(__powf_finite, fFff) GOM(__pow_finite, dFdd) +GOM(__powl_finite, DFDD) GOWD(powl, DFDD, pow) GOW(remainder, dFdd) GOW(remainderf, fFff) |