[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