summaryrefslogtreecommitdiff
path: root/libffi/include
diff options
context:
space:
mode:
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-07 18:24:42 +0000
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-07 18:24:42 +0000
commitf6a16bd8ad4ac0b9377cf76034622e8cc97498a3 (patch)
tree2067fd3b0161aebe36726eaf4d9574b16aa6c1d3 /libffi/include
parent2bb9f7ed4a54e86b1c521976b69aab71b0e868fc (diff)
downloadgcc-f6a16bd8ad4ac0b9377cf76034622e8cc97498a3.tar.gz
2002-03-07 Andreas Tobler <toa@pop.agri.ch>
David Edelsohn <edelsohn@gnu.org> * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files. (TARGET_SRC_POWERPC_AIX): Add aix_closure.S. (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S. * Makefile.in: Regenerate. * include/ffi.h.in: Add AIX and Darwin closure definitions. * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function. (flush_icache, flush_range): New functions. (ffi_closure_helper_DARWIN): New function. * src/powerpc/aix_closure.S: New file. * src/powerpc/darwin_closure.S: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50408 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libffi/include')
-rw-r--r--libffi/include/ffi.h.in22
1 files changed, 22 insertions, 0 deletions
diff --git a/libffi/include/ffi.h.in b/libffi/include/ffi.h.in
index 90ed2692305..8097917fe10 100644
--- a/libffi/include/ffi.h.in
+++ b/libffi/include/ffi.h.in
@@ -412,6 +412,18 @@ struct ffi_ia64_trampoline_struct {
#define FFI_TRAMPOLINE_SIZE 40
#define FFI_NATIVE_RAW_API 0
+#elif defined(POWERPC_DARWIN)
+
+#define FFI_CLOSURES 1
+#define FFI_TRAMPOLINE_SIZE 40
+#define FFI_NATIVE_RAW_API 0
+
+#elif defined(POWERPC_AIX)
+
+#define FFI_CLOSURES 1
+#define FFI_TRAMPOLINE_SIZE 24 /* see struct below */
+#define FFI_NATIVE_RAW_API 0
+
#else
#define FFI_CLOSURES 0
@@ -419,6 +431,16 @@ struct ffi_ia64_trampoline_struct {
#endif
+#if defined(POWERPC_DARWIN) || defined(POWERPC_AIX)
+
+struct ffi_aix_trampoline_struct {
+ void * code_pointer; /* Pointer to ffi_closure_ASM */
+ void * toc; /* TOC */
+ void * static_chain; /* Pointer to closure */
+};
+
+#endif
+
#if FFI_CLOSURES