CRT library functions _adj_fdiv_m* and _adj_fdivr_m* have custom calling
convention. These functions take two arguments. First argument is passed in
x87 st(0) register and second argument on the stack (either 4 or 8 bytes).
Function itself pops the stack (like stdcall convention) and return value
is stored in x87 st(0) register.

CL.EXE compiler when invoked with flag /QIfdiv generates calls to these
functions. Generated symbol names are without @SIZE suffix decoration.

So for compatibility with msvc, do not decorate these symbols with @SIZE
suffix (the suffix used for stdcall) in all def files.

Note that neither gcc, nor clang does not provide a way to define C
function declaration with this calling convention, so currently the only
way how to call these functions from the assembler or via gcc inline
assembly in C/C++. And therefore mingw-w64 does not provide declaration for
these functions in header files.
---
 mingw-w64-crt/lib-common/msvcrt.def.in | 16 ++++++++--------
 mingw-w64-crt/lib32/msvcr70.def.in     | 16 ++++++++--------
 mingw-w64-crt/lib32/msvcr71.def.in     | 16 ++++++++--------
 mingw-w64-crt/lib32/msvcr80.def.in     | 16 ++++++++--------
 mingw-w64-crt/lib32/msvcr90.def.in     | 16 ++++++++--------
 mingw-w64-crt/lib32/msvcr90d.def.in    | 16 ++++++++--------
 mingw-w64-crt/lib32/msvcrt20.def.in    | 16 ++++++++--------
 mingw-w64-crt/lib32/msvcrt40.def.in    | 16 ++++++++--------
 8 files changed, 64 insertions(+), 64 deletions(-)

diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in 
b/mingw-w64-crt/lib-common/msvcrt.def.in
index e39a0c1b8aac..b5b971d2052c 100644
--- a/mingw-w64-crt/lib-common/msvcrt.def.in
+++ b/mingw-w64-crt/lib-common/msvcrt.def.in
@@ -419,15 +419,15 @@ F_I386(_abnormal_termination)
 _access
 _acmdln DATA
 #ifdef DEF_I386
-_adj_fdiv_m16i@4
-_adj_fdiv_m32@4
-_adj_fdiv_m32i@4
-_adj_fdiv_m64@8
+_adj_fdiv_m16i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m32 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m32i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m64 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @8)
 _adj_fdiv_r
-_adj_fdivr_m16i@4
-_adj_fdivr_m32@4
-_adj_fdivr_m32i@4
-_adj_fdivr_m64@8
+_adj_fdivr_m16i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m32 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m32i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m64 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @8)
 _adj_fpatan
 _adj_fprem
 _adj_fprem1
diff --git a/mingw-w64-crt/lib32/msvcr70.def.in 
b/mingw-w64-crt/lib32/msvcr70.def.in
index e80d2b68a5bc..31d09fe9f92b 100644
--- a/mingw-w64-crt/lib32/msvcr70.def.in
+++ b/mingw-w64-crt/lib32/msvcr70.def.in
@@ -238,15 +238,15 @@ __winitenv DATA
 _abnormal_termination
 _access
 _acmdln DATA
-_adj_fdiv_m16i@4
-_adj_fdiv_m32@4
-_adj_fdiv_m32i@4
-_adj_fdiv_m64@8
+_adj_fdiv_m16i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m32 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m32i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m64 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @8)
 _adj_fdiv_r
-_adj_fdivr_m16i@4
-_adj_fdivr_m32@4
-_adj_fdivr_m32i@4
-_adj_fdivr_m64@8
+_adj_fdivr_m16i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m32 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m32i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m64 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @8)
 _adj_fpatan
 _adj_fprem
 _adj_fprem1
diff --git a/mingw-w64-crt/lib32/msvcr71.def.in 
b/mingw-w64-crt/lib32/msvcr71.def.in
index 66c87d1dc654..afd74527d065 100644
--- a/mingw-w64-crt/lib32/msvcr71.def.in
+++ b/mingw-w64-crt/lib32/msvcr71.def.in
@@ -232,15 +232,15 @@ __winitenv DATA
 _abnormal_termination
 _access
 _acmdln DATA
-_adj_fdiv_m16i@4
-_adj_fdiv_m32@4
-_adj_fdiv_m32i@4
-_adj_fdiv_m64@8
+_adj_fdiv_m16i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m32 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m32i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m64 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @8)
 _adj_fdiv_r
-_adj_fdivr_m16i@4
-_adj_fdivr_m32@4
-_adj_fdivr_m32i@4
-_adj_fdivr_m64@8
+_adj_fdivr_m16i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m32 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m32i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m64 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @8)
 _adj_fpatan
 _adj_fprem
 _adj_fprem1
diff --git a/mingw-w64-crt/lib32/msvcr80.def.in 
b/mingw-w64-crt/lib32/msvcr80.def.in
index 254330b8b508..6073d4c582a2 100644
--- a/mingw-w64-crt/lib32/msvcr80.def.in
+++ b/mingw-w64-crt/lib32/msvcr80.def.in
@@ -336,15 +336,15 @@ imaxabs == _abs64
 _access
 _access_s
 _acmdln DATA
-_adj_fdiv_m16i@4
-_adj_fdiv_m32@4
-_adj_fdiv_m32i@4
-_adj_fdiv_m64@8
+_adj_fdiv_m16i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m32 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m32i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m64 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @8)
 _adj_fdiv_r
-_adj_fdivr_m16i@4
-_adj_fdivr_m32@4
-_adj_fdivr_m32i@4
-_adj_fdivr_m64@8
+_adj_fdivr_m16i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m32 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m32i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m64 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @8)
 _adj_fpatan
 _adj_fprem
 _adj_fprem1
diff --git a/mingw-w64-crt/lib32/msvcr90.def.in 
b/mingw-w64-crt/lib32/msvcr90.def.in
index c5a70d3e9ce9..b0c6fb88dc43 100644
--- a/mingw-w64-crt/lib32/msvcr90.def.in
+++ b/mingw-w64-crt/lib32/msvcr90.def.in
@@ -334,15 +334,15 @@ imaxabs == _abs64
 _access
 _access_s
 _acmdln DATA
-_adj_fdiv_m16i@4
-_adj_fdiv_m32@4
-_adj_fdiv_m32i@4
-_adj_fdiv_m64@8
+_adj_fdiv_m16i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m32 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m32i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m64 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @8)
 _adj_fdiv_r
-_adj_fdivr_m16i@4
-_adj_fdivr_m32@4
-_adj_fdivr_m32i@4
-_adj_fdivr_m64@8
+_adj_fdivr_m16i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m32 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m32i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m64 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @8)
 _adj_fpatan
 _adj_fprem
 _adj_fprem1
diff --git a/mingw-w64-crt/lib32/msvcr90d.def.in 
b/mingw-w64-crt/lib32/msvcr90d.def.in
index ba7dffa1cdad..3cdc83708fe6 100644
--- a/mingw-w64-crt/lib32/msvcr90d.def.in
+++ b/mingw-w64-crt/lib32/msvcr90d.def.in
@@ -377,15 +377,15 @@ imaxabs == _abs64
 _access
 _access_s
 _acmdln DATA
-_adj_fdiv_m16i@4
-_adj_fdiv_m32@4
-_adj_fdiv_m32i@4
-_adj_fdiv_m64@8
+_adj_fdiv_m16i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m32 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m32i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m64 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @8)
 _adj_fdiv_r ; Check!!! Couldn't determine function argument count. Function 
doesn't return. 
-_adj_fdivr_m16i@4
-_adj_fdivr_m32@4
-_adj_fdivr_m32i@4
-_adj_fdivr_m64@8
+_adj_fdivr_m16i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m32 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m32i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m64 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @8)
 _adj_fpatan
 _adj_fprem
 _adj_fprem1
diff --git a/mingw-w64-crt/lib32/msvcrt20.def.in 
b/mingw-w64-crt/lib32/msvcrt20.def.in
index 1ac4d4701ffd..4f7fcef10956 100644
--- a/mingw-w64-crt/lib32/msvcrt20.def.in
+++ b/mingw-w64-crt/lib32/msvcrt20.def.in
@@ -1569,15 +1569,15 @@ _wpgmptr DATA
 
 ; These symbols are not available in the original Microsoft Visual C++ 2.0 
version of msvcrt20.dll
 ; They were added in Microsoft Visual C++ 2.1 Upgrade version of msvcrt20.dll 
and are present also in all OS system version of msvcrt20.dll
-_adj_fdiv_m16i@4
-_adj_fdiv_m32@4
-_adj_fdiv_m32i@4
-_adj_fdiv_m64@8
+_adj_fdiv_m16i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m32 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m32i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m64 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @8)
 _adj_fdiv_r
-_adj_fdivr_m16i@4
-_adj_fdivr_m32@4
-_adj_fdivr_m32i@4
-_adj_fdivr_m64@8
+_adj_fdivr_m16i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m32 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m32i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m64 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @8)
 _adj_fpatan
 _adj_fprem
 _adj_fprem1
diff --git a/mingw-w64-crt/lib32/msvcrt40.def.in 
b/mingw-w64-crt/lib32/msvcrt40.def.in
index 2dbd8fc87276..da23d05698fc 100644
--- a/mingw-w64-crt/lib32/msvcrt40.def.in
+++ b/mingw-w64-crt/lib32/msvcrt40.def.in
@@ -1043,15 +1043,15 @@ __unDName
 __wgetmainargs
 _abnormal_termination
 _access
-_adj_fdiv_m16i@4
-_adj_fdiv_m32@4
-_adj_fdiv_m32i@4
-_adj_fdiv_m64@8
+_adj_fdiv_m16i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m32 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m32i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdiv_m64 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @8)
 _adj_fdiv_r
-_adj_fdivr_m16i@4
-_adj_fdivr_m32@4
-_adj_fdivr_m32i@4
-_adj_fdivr_m64@8
+_adj_fdivr_m16i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m32 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m32i ; msvc symbol is without decoration but callee pop stack (like 
stdcall @4)
+_adj_fdivr_m64 ; msvc symbol is without decoration but callee pop stack (like 
stdcall @8)
 _adj_fpatan
 _adj_fprem
 _adj_fprem1
-- 
2.20.1



_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to