Merge pull request #110 from joshtriplett/w64

Fix 64-bit Windows support
This commit is contained in:
Anthony Green
2014-03-25 16:12:17 -04:00

View File

@@ -309,7 +309,7 @@ ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
{ {
if (((*ptr)->alignment - 1) & cif->bytes) if (((*ptr)->alignment - 1) & cif->bytes)
cif->bytes = ALIGN(cif->bytes, (*ptr)->alignment); cif->bytes = ALIGN(cif->bytes, (*ptr)->alignment);
cif->bytes += ALIGN((*ptr)->size, FFI_SIZEOF_ARG); cif->bytes += (unsigned)ALIGN((*ptr)->size, FFI_SIZEOF_ARG);
} }
#ifdef X86_WIN64 #ifdef X86_WIN64
@@ -318,7 +318,9 @@ ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
#endif #endif
#ifndef X86_WIN32 #ifndef X86_WIN32
#ifndef X86_WIN64
if (cif->abi != FFI_STDCALL && cif->abi != FFI_THISCALL && cif->abi != FFI_FASTCALL) if (cif->abi != FFI_STDCALL && cif->abi != FFI_THISCALL && cif->abi != FFI_FASTCALL)
#endif
cif->bytes = (cif->bytes + 15) & ~0xF; cif->bytes = (cif->bytes + 15) & ~0xF;
#endif #endif