((freelist*)cl)->next = closure_freelist;
closure_freelist = (freelist*)cl;
+extern bool ffi64_stret_needs_ptr(const ffi_type* inType,
+ unsigned short*, unsigned short*);
* Define SMALL_STRUCT_LIMIT as the largest struct that will be returned
* in registers instead of with a hidden pointer argument.
# define SMALL_STRUCT_LIMIT 4
+# define SMALL_STRUCT_LIMIT 8
# define SMALL_STRUCT_LIMIT 8
if (*rettype == _C_STRUCT_B &&
+ ffi64_stret_needs_ptr(signature_to_ffi_return_type(rettype), NULL, NULL)
(resultSize > SMALL_STRUCT_LIMIT
/* darwin/x86 ABI is slightly odd ;-) */
NOTE: 64-bit support is beta quality, that is: all unittests pass, but I haven't tried
running real programs yet and hence there might be issues lurking below the surface.
+ NOTE2: PPC64 support is completely untested, aka "it compiles and therefore must work".
This requires Leopard (OSX 10.5), earlier version of the OS don't have a 64-bit
Objective-C runtime at all. This currently also requires a copy of python that was
build with ``MACOSX_DEPLOYMENT_TARGET=10.5``.
+ #'-arch', 'x86_64', '-arch', 'ppc64',
"-Wall", "-Wstrict-prototypes", "-Wmissing-prototypes",