30#ifndef LIBFFI_TARGET_H
31#define LIBFFI_TARGET_H
34#error "Please do not include ffitarget.h directly into your source. Use ffi.h instead."
39#if defined (POWERPC) && defined (__powerpc64__)
43#elif defined (POWERPC_DARWIN) && defined (__ppc64__)
47#ifndef POWERPC_DARWIN64
48#define POWERPC_DARWIN64
50#elif defined (POWERPC_AIX) && defined (__64BIT__)
63#if defined (POWERPC_AIX)
69#elif defined (POWERPC_DARWIN)
85# if defined (POWERPC64)
92 FFI_LINUX_STRUCT_ALIGN = 1,
93 FFI_LINUX_LONG_DOUBLE_128 = 2,
95# ifdef __STRUCT_PARM_ALIGN__
96 | FFI_LINUX_STRUCT_ALIGN
98# ifdef __LONG_DOUBLE_128__
99 | FFI_LINUX_LONG_DOUBLE_128
118#
if (defined (__SVR4_STRUCT_RETURN) \
119 || defined (POWERPC_FREEBSD) && !defined (__AIX_STRUCT_RETURN))
122# if __LDBL_MANT_DIG__ == 106
125# ifdef __LONG_DOUBLE_128__
138#define FFI_CLOSURES 1
139#define FFI_NATIVE_RAW_API 0
140#if defined (POWERPC) || defined (POWERPC_FREEBSD)
141# define FFI_TARGET_SPECIFIC_VARIADIC 1
142# define FFI_EXTRA_CIF_FIELDS unsigned nfixedargs
149#define FFI_TYPE_UINT128 (FFI_TYPE_LAST + 1)
152#define FFI_SYSV_TYPE_SMALL_STRUCT (FFI_TYPE_LAST + 2)
155#define FFI_V2_TYPE_FLOAT_HOMOG (FFI_TYPE_LAST + 1)
156#define FFI_V2_TYPE_DOUBLE_HOMOG (FFI_TYPE_LAST + 2)
157#define FFI_V2_TYPE_SMALL_STRUCT (FFI_TYPE_LAST + 3)
160# define FFI_TRAMPOLINE_SIZE 32
162# if defined(POWERPC64) || defined(POWERPC_AIX)
163# if defined(POWERPC_DARWIN64)
164# define FFI_TRAMPOLINE_SIZE 48
166# define FFI_TRAMPOLINE_SIZE 24
169# define FFI_TRAMPOLINE_SIZE 40
174#if defined(POWERPC_DARWIN) || defined(POWERPC_AIX)
175struct ffi_aix_trampoline_struct {
@ FFI_SYSV_LONG_DOUBLE_128
@ FFI_SYSV_IBM_LONG_DOUBLE
@ FFI_COMPAT_LINUX_SOFT_FLOAT