Signed-off-by: Francois Gouget fgouget@free.fr --- dlls/msvcrt/locale.c | 4 ++-- dlls/msvcrt/math.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/dlls/msvcrt/locale.c b/dlls/msvcrt/locale.c index 5a4a701dfc6..4c0fce194bd 100644 --- a/dlls/msvcrt/locale.c +++ b/dlls/msvcrt/locale.c @@ -556,7 +556,7 @@ void CDECL _unlock_locales(void) _unlock(_SETLOCALE_LOCK); }
-static void CDECL grab_locinfo(pthreadlocinfo locinfo) +static void grab_locinfo(pthreadlocinfo locinfo) { int i;
@@ -578,7 +578,7 @@ static void CDECL grab_locinfo(pthreadlocinfo locinfo) InterlockedIncrement(&locinfo->lc_time_curr->refcount); }
-static void CDECL update_thread_locale(thread_data_t *data) +static void update_thread_locale(thread_data_t *data) { if((data->locale_flags & LOCALE_FREE) && ((data->locale_flags & LOCALE_THREAD) || (data->locinfo == MSVCRT_locale->locinfo && data->mbcinfo == MSVCRT_locale->mbcinfo))) diff --git a/dlls/msvcrt/math.c b/dlls/msvcrt/math.c index efdde8e4afb..7f59a4d20d4 100644 --- a/dlls/msvcrt/math.c +++ b/dlls/msvcrt/math.c @@ -90,7 +90,7 @@ static inline double fp_barrier(double x) return y; }
-static inline double CDECL ret_nan( BOOL update_sw ) +static inline double ret_nan( BOOL update_sw ) { double x = 1.0; if (!update_sw) return -NAN; @@ -2663,7 +2663,7 @@ double CDECL cos( double x ) }
/* Copied from musl: src/math/expm1.c */ -static double CDECL __expm1(double x) +static double __expm1(double x) { static const double o_threshold = 7.09782712893383973096e+02, ln2_hi = 6.93147180369123816490e-01,
Hi Francois,
The patch is already in wine but it breaks Rémi's change:
commit a24ad51e3f2515c1970b56f8dfe2206e2b282dc9 Author: Rémi Bernon rbernon@codeweavers.com Date: Tue Nov 10 16:58:37 2020 +0100
msvcrt: Make locale and thread helper functions CDECL.
This prevent callers from having to save SSE registers to the stack.
It is for instance the case in MSVCRT__towlower_l, which is called on every character by MSVCRT__wcsicmp_l.
Maybe it's better to use CDECL on all internal static functions instead? This change probably deserves a comment so it's not removed in future.
Thanks, Piotr
On 9/3/21 11:50 AM, Francois Gouget wrote:
Signed-off-by: Francois Gouget fgouget@free.fr
dlls/msvcrt/locale.c | 4 ++-- dlls/msvcrt/math.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/dlls/msvcrt/locale.c b/dlls/msvcrt/locale.c index 5a4a701dfc6..4c0fce194bd 100644 --- a/dlls/msvcrt/locale.c +++ b/dlls/msvcrt/locale.c @@ -556,7 +556,7 @@ void CDECL _unlock_locales(void) _unlock(_SETLOCALE_LOCK); }
-static void CDECL grab_locinfo(pthreadlocinfo locinfo) +static void grab_locinfo(pthreadlocinfo locinfo) { int i;
@@ -578,7 +578,7 @@ static void CDECL grab_locinfo(pthreadlocinfo locinfo) InterlockedIncrement(&locinfo->lc_time_curr->refcount); }
-static void CDECL update_thread_locale(thread_data_t *data) +static void update_thread_locale(thread_data_t *data) { if((data->locale_flags & LOCALE_FREE) && ((data->locale_flags & LOCALE_THREAD) || (data->locinfo == MSVCRT_locale->locinfo && data->mbcinfo == MSVCRT_locale->mbcinfo))) diff --git a/dlls/msvcrt/math.c b/dlls/msvcrt/math.c index efdde8e4afb..7f59a4d20d4 100644 --- a/dlls/msvcrt/math.c +++ b/dlls/msvcrt/math.c @@ -90,7 +90,7 @@ static inline double fp_barrier(double x) return y; }
-static inline double CDECL ret_nan( BOOL update_sw ) +static inline double ret_nan( BOOL update_sw ) { double x = 1.0; if (!update_sw) return -NAN; @@ -2663,7 +2663,7 @@ double CDECL cos( double x ) }
/* Copied from musl: src/math/expm1.c */ -static double CDECL __expm1(double x) +static double __expm1(double x) { static const double o_threshold = 7.09782712893383973096e+02, ln2_hi = 6.93147180369123816490e-01,
On 9/10/21 9:48 PM, Piotr Caban wrote:
Hi Francois,
The patch is already in wine but it breaks Rémi's change:
commit a24ad51e3f2515c1970b56f8dfe2206e2b282dc9 Author: Rémi Bernon rbernon@codeweavers.com Date: Tue Nov 10 16:58:37 2020 +0100
msvcrt: Make locale and thread helper functions CDECL.
This prevent callers from having to save SSE registers to the stack.
It is for instance the case in MSVCRT__towlower_l, which is called on every character by MSVCRT__wcsicmp_l.
Maybe it's better to use CDECL on all internal static functions instead? This change probably deserves a comment so it's not removed in future.
Things may have changed now that msvcrt is built as PE, as all the functions should be ms_abi by default, while they were sysv_abi by default at the time of that change (causing an abi change and register spilling between the exported functions and any internal helpers).