win64: Rewrite

It's way too different from the 32-bit ABIs with which it is
currently associated. As seen from all of the existing XFAILs.
This commit is contained in:
Richard Henderson
2014-11-12 09:15:35 +01:00
parent 6b62fb4a26
commit 99db4d42ac
11 changed files with 492 additions and 532 deletions
+11 -18
View File
@@ -127,25 +127,18 @@ typedef enum ffi_abi {
#define FFI_TYPE_SMALL_STRUCT_4B (FFI_TYPE_LAST + 3)
#define FFI_TYPE_MS_STRUCT (FFI_TYPE_LAST + 4)
#if defined (X86_64) || (defined (__x86_64__) && defined (X86_DARWIN))
#define FFI_TRAMPOLINE_SIZE 24
#define FFI_NATIVE_RAW_API 0
#define FFI_GO_CLOSURES 1
#if defined (X86_64) || defined(X86_WIN64) \
|| (defined (__x86_64__) && defined (X86_DARWIN))
# define FFI_TRAMPOLINE_SIZE 24
# define FFI_NATIVE_RAW_API 0
# define FFI_GO_CLOSURES 1
#else
#ifdef X86_WIN32
#define FFI_TRAMPOLINE_SIZE 52
#else
#ifdef X86_WIN64
#define FFI_TRAMPOLINE_SIZE 29
#define FFI_NATIVE_RAW_API 0
#define FFI_NO_RAW_API 1
#else
#define FFI_TRAMPOLINE_SIZE 10
#endif
#endif
#ifndef X86_WIN64
#define FFI_NATIVE_RAW_API 1 /* x86 has native raw api support */
#endif
# ifdef X86_WIN32
# define FFI_TRAMPOLINE_SIZE 52
# else
# define FFI_TRAMPOLINE_SIZE 10
# endif
# define FFI_NATIVE_RAW_API 1 /* x86 has native raw api support */
#endif
#endif