x86: Tidy ffi_abi
authorRichard Henderson <rth@twiddle.net>
Thu, 30 Oct 2014 19:13:31 +0000 (12:13 -0700)
committerRichard Henderson <rth@twiddle.net>
Wed, 12 Nov 2014 08:15:35 +0000 (09:15 +0100)
The x86_64 unix port only handles one ABI; don't define all of the
other symbols.  The UNIX64 symbol retains the same value.

The i386 ports ought to have the same symbols, even if we can't yet
unify the values without incrementing the libffi soname.

src/x86/ffi.c
src/x86/ffitarget.h

index c387fb5f23e462ac8f1110352d99d049c240283d..90e3f79cd8736e3385ca9876e2a62569f19d6814 100644 (file)
@@ -260,7 +260,7 @@ ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
     }
 
 #ifndef X86_WIN32
-  if (cif->abi == FFI_SYSV || cif->abi == FFI_UNIX64)
+  if (cif->abi == FFI_SYSV)
     cif->bytes = (cif->bytes + 15) & ~0xF;
 #endif
 
index 8c5257388b2e073d55e8bd038a2aa16426eb90ba..a4c957377eaba47a2f03ffeeb35d8eab8386d7f5 100644 (file)
@@ -76,44 +76,44 @@ typedef signed long            ffi_sarg;
 #endif
 
 typedef enum ffi_abi {
+#if defined(X86_WIN64)
   FFI_FIRST_ABI = 0,
-
-  /* ---- Intel x86 Win32 ---------- */
-#ifdef X86_WIN32
-  FFI_SYSV,
-  FFI_STDCALL,
-  FFI_THISCALL,
-  FFI_FASTCALL,
-  FFI_MS_CDECL,
-  FFI_PASCAL,
-  FFI_REGISTER,
-  FFI_LAST_ABI,
-#ifdef _MSC_VER
-  FFI_DEFAULT_ABI = FFI_MS_CDECL
-#else
-  FFI_DEFAULT_ABI = FFI_SYSV
-#endif
-
-#elif defined(X86_WIN64)
   FFI_WIN64,
   FFI_LAST_ABI,
   FFI_DEFAULT_ABI = FFI_WIN64
 
-#else
-  /* ---- Intel x86 and AMD x86-64 - */
-  FFI_SYSV,
-  FFI_UNIX64,   /* Unix variants all use the same ABI for x86-64  */
-  FFI_THISCALL,
-  FFI_FASTCALL,
-  FFI_STDCALL,
-  FFI_PASCAL,
-  FFI_REGISTER,
+#elif defined(X86_64) || (defined (__x86_64__) && defined (X86_DARWIN))
+  FFI_FIRST_ABI = 1,
+  FFI_UNIX64,
   FFI_LAST_ABI,
-#if defined(__i386__) || defined(__i386)
+  FFI_DEFAULT_ABI = FFI_UNIX64
+
+#elif defined(X86_WIN32)
+  FFI_FIRST_ABI = 0,
+  FFI_SYSV      = 1,
+  FFI_STDCALL   = 2,
+  FFI_THISCALL  = 3,
+  FFI_FASTCALL  = 4,
+  FFI_MS_CDECL  = 5,
+  FFI_PASCAL    = 6,
+  FFI_REGISTER  = 7,
+  FFI_LAST_ABI,
+# ifdef _MSC_VER
+  FFI_DEFAULT_ABI = FFI_MS_CDECL
+# else
   FFI_DEFAULT_ABI = FFI_SYSV
+# endif
 #else
-  FFI_DEFAULT_ABI = FFI_UNIX64
-#endif
+  FFI_FIRST_ABI = 0,
+  FFI_SYSV      = 1,
+  FFI_THISCALL  = 3,
+  FFI_FASTCALL  = 4,
+  FFI_STDCALL   = 5,
+  FFI_PASCAL    = 6,
+  FFI_REGISTER  = 7,
+  FFI_MS_CDECL  = 8,
+  FFI_LAST_ABI,
+  FFI_DEFAULT_ABI = FFI_SYSV
 #endif
 } ffi_abi;
 #endif