[PATCH 04/22] include: PPC64 relies on long calls being generated for thunks

André Hentschel nerv at dawncrow.de
Sun Aug 16 14:01:42 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 ad46c56591c..a22e5045a34 100644
--- a/include/msvcrt/corecrt.h
+++ b/include/msvcrt/corecrt.h
@@ -78,6 +78,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__ */
@@ -100,6 +103,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__))
 # else
 #  define __cdecl
 # endif
diff --git a/include/windef.h b/include/windef.h
index 521c3ab4512..a94921905ed 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__))
 # else
 #  define __cdecl
 # endif
-- 
2.25.1




More information about the wine-devel mailing list