[PATCH 6/9] include: PPC64 relies on long calls being generated for thunks
André Hentschel
nerv at dawncrow.de
Sun Apr 26 12:13:46 CDT 2020
From: Timothy Pearson <tpearson at raptorengineering.com>
Signed-off-by: André Hentschel <nerv at dawncrow.de>
---
include/msvcrt/corecrt.h | 6 ++++++
include/windef.h | 6 ++++++
2 files changed, 12 insertions(+)
diff --git a/include/msvcrt/corecrt.h b/include/msvcrt/corecrt.h
index bc93de023f2..fcb95b409bd 100644
--- a/include/msvcrt/corecrt.h
+++ b/include/msvcrt/corecrt.h
@@ -70,6 +70,9 @@
# define __stdcall __attribute__((pcs("aapcs-vfp")))
# elif defined(__aarch64__) && defined (__GNUC__)
# define __stdcall __attribute__((ms_abi))
+# elif defined(__powerpc64__) && defined (__GNUC__) && !defined (__clang__)
+ /* ppc64 relies on long calls being generated for thunks (r2 save / restore) */
+# define __stdcall __attribute__((__longcall__))
# else /* __i386__ */
# define __stdcall
# endif /* __i386__ */
@@ -92,6 +95,9 @@
# define __cdecl __attribute__((pcs("aapcs-vfp")))
# elif defined(__aarch64__) && defined (__GNUC__)
# define __cdecl __attribute__((ms_abi))
+# elif defined(__powerpc64__) && defined (__GNUC__) && !defined (__clang__)
+ /* ppc64 relies on long calls being generated for thunks (r2 save / restore) */
+# define __cdecl __attribute__((__longcall__))
# endif
#endif /* __cdecl */
diff --git a/include/windef.h b/include/windef.h
index 436ac6afd87..962dcabe6c8 100644
--- a/include/windef.h
+++ b/include/windef.h
@@ -71,6 +71,9 @@ extern "C" {
# define __stdcall __attribute__((pcs("aapcs-vfp")))
# elif defined(__aarch64__) && defined (__GNUC__)
# define __stdcall __attribute__((ms_abi))
+# elif defined(__powerpc64__) && defined (__GNUC__) && !defined (__clang__)
+ /* ppc64 relies on long calls being generated for thunks (r2 save / restore) */
+# define __stdcall __attribute__((__longcall__))
# else /* __i386__ */
# define __stdcall
# endif /* __i386__ */
@@ -93,6 +96,9 @@ extern "C" {
# define __cdecl __attribute__((pcs("aapcs-vfp")))
# elif defined(__aarch64__) && defined (__GNUC__)
# define __cdecl __attribute__((ms_abi))
+# elif defined(__powerpc64__) && defined (__GNUC__) && !defined (__clang__)
+ /* ppc64 relies on long calls being generated for thunks (r2 save / restore) */
+# define __cdecl __attribute__((__longcall__))
# elif !defined(_MSC_VER)
# define __cdecl
# endif
--
2.17.1
More information about the wine-devel
mailing list