aboutsummaryrefslogtreecommitdiff
path: root/libffi/include
diff options
context:
space:
mode:
authorAnthony Green <green@redhat.com>2004-08-30 15:43:03 +0000
committerAnthony Green <green@gcc.gnu.org>2004-08-30 15:43:03 +0000
commit88d8c771f98c83763f2ee41e5046417795a97eac (patch)
treea36cbe1ac1d0a30e257ceffcce0d0b8b21e90faa /libffi/include
parent8dc2b10365a3d9def1a6e0412db0cc0177cfad6d (diff)
downloadgcc-88d8c771f98c83763f2ee41e5046417795a97eac.zip
gcc-88d8c771f98c83763f2ee41e5046417795a97eac.tar.gz
gcc-88d8c771f98c83763f2ee41e5046417795a97eac.tar.bz2
Makefile.am: Add frv support.
2004-08-30 Anthony Green <green@redhat.com> * Makefile.am: Add frv support. * Makefile.in, testsuite/Makefile.in: Rebuilt. * configure.ac: Read configure.host. * configure, aclocal.m4: Rebuilt. * configure.host: New file. frv-elf needs libgloss. * include/ffi.h.in: Force ffi_closure to have a nice big (8) alignment. This is needed to frv and should harm the others. * include/ffi_common.h (ALIGN_DOWN): New macro. * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files. From-SVN: r86779
Diffstat (limited to 'libffi/include')
-rw-r--r--libffi/include/ffi.h.in2
-rw-r--r--libffi/include/ffi_common.h1
2 files changed, 2 insertions, 1 deletions
diff --git a/libffi/include/ffi.h.in b/libffi/include/ffi.h.in
index 9f61d48..4260045 100644
--- a/libffi/include/ffi.h.in
+++ b/libffi/include/ffi.h.in
@@ -218,7 +218,7 @@ typedef struct {
ffi_cif *cif;
void (*fun)(ffi_cif*,void*,void**,void*);
void *user_data;
-} ffi_closure;
+} ffi_closure __attribute__((aligned (8)));
ffi_status
ffi_prep_closure (ffi_closure*,
diff --git a/libffi/include/ffi_common.h b/libffi/include/ffi_common.h
index 1b948d5..da15ab8 100644
--- a/libffi/include/ffi_common.h
+++ b/libffi/include/ffi_common.h
@@ -60,6 +60,7 @@ void ffi_type_test(/*@temp@*/ /*@out@*/ ffi_type *a, /*@temp@*/ char *file, int
#endif
#define ALIGN(v, a) (((((size_t) (v))-1) | ((a)-1))+1)
+#define ALIGN_DOWN(v, a) (((size_t) (v)) & -a)
/* Perform machine dependent cif processing */
ffi_status ffi_prep_cif_machdep(ffi_cif *cif);