Makefile.am: Add m32r support.
authorKazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
Wed, 13 Oct 2004 17:20:24 +0000 (17:20 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Wed, 13 Oct 2004 17:20:24 +0000 (17:20 +0000)
* Makefile.am: Add m32r support.
* configure.ac: Likewise.
* Makefile.in: Regenerate.
* confiugre: Regenerate.
* src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
 (uint64, sint64, double, longdouble)
* src/m32r: New directory.
* src/m32r/ffi.c: New file.
* src/m32r/sysv.S: Likewise.
* src/m32r/ffitarget.h: Likewise.

From-SVN: r88993

libffi/ChangeLog
libffi/Makefile.am
libffi/Makefile.in
libffi/configure
libffi/configure.ac
libffi/include/Makefile.in
libffi/src/m32r/ffi.c [new file with mode: 0644]
libffi/src/m32r/ffitarget.h [new file with mode: 0644]
libffi/src/m32r/sysv.S [new file with mode: 0644]
libffi/src/types.c
libffi/testsuite/Makefile.in

index 40e9396..e5044bd 100644 (file)
@@ -1,3 +1,16 @@
+2004-10-13  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
+
+       * Makefile.am: Add m32r support.
+       * configure.ac: Likewise.
+       * Makefile.in: Regenerate.
+       * confiugre: Regenerate.
+       * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
+       (uint64, sint64, double, longdouble)
+       * src/m32r: New directory.
+       * src/m32r/ffi.c: New file.
+       * src/m32r/sysv.S: Likewise.
+       * src/m32r/ffitarget.h: Likewise.
+
 2004-10-02  Kaz Kojima  <kkojima@gcc.gnu.org>
 
        * testsuite/libffi.call/negint.c: New test case.
index 6195d89..225fa54 100644 (file)
@@ -9,6 +9,7 @@ EXTRA_DIST = LICENSE ChangeLog.v1 \
        src/arm/ffi.c src/arm/sysv.S src/arm/ffitarget.h \
        src/mips/ffi.c src/mips/n32.S src/mips/o32.S \
        src/mips/ffitarget.h \
+       src/m32r/ffi.c src/m32r/sysv.S src/m32r/ffitarget.h \
        src/m68k/ffi.c src/m68k/sysv.S src/m68k/ffitarget.h \
        src/powerpc/ffi.c src/powerpc/sysv.S \
        src/powerpc/linux64.S src/powerpc/linux64_closure.S \
@@ -101,6 +102,9 @@ endif
 if IA64
 nodist_libffi_la_SOURCES += src/ia64/ffi.c src/ia64/unix.S
 endif
+if M32R
+nodist_libffi_la_SOURCES += src/m32r/sysv.S src/m32r/ffi.c
+endif
 if M68K
 nodist_libffi_la_SOURCES += src/m68k/ffi.c src/m68k/sysv.S
 endif
index e1de967..49c701e 100644 (file)
@@ -46,17 +46,18 @@ target_triplet = @target@
 @SPARC_TRUE@am__append_5 = src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S
 @ALPHA_TRUE@am__append_6 = src/alpha/ffi.c src/alpha/osf.S
 @IA64_TRUE@am__append_7 = src/ia64/ffi.c src/ia64/unix.S
-@M68K_TRUE@am__append_8 = src/m68k/ffi.c src/m68k/sysv.S
-@POWERPC_TRUE@am__append_9 = src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S src/powerpc/linux64.S src/powerpc/linux64_closure.S
-@POWERPC_AIX_TRUE@am__append_10 = src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S
-@POWERPC_DARWIN_TRUE@am__append_11 = src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S
-@ARM_TRUE@am__append_12 = src/arm/sysv.S src/arm/ffi.c
-@FRV_TRUE@am__append_13 = src/frv/eabi.S src/frv/ffi.c
-@S390_TRUE@am__append_14 = src/s390/sysv.S src/s390/ffi.c
-@X86_64_TRUE@am__append_15 = src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S
-@SH_TRUE@am__append_16 = src/sh/sysv.S src/sh/ffi.c
-@SH64_TRUE@am__append_17 = src/sh64/sysv.S src/sh64/ffi.c
-@PA_TRUE@am__append_18 = src/pa/linux.S src/pa/ffi.c
+@M32R_TRUE@am__append_8 = src/m32r/sysv.S src/m32r/ffi.c
+@M68K_TRUE@am__append_9 = src/m68k/ffi.c src/m68k/sysv.S
+@POWERPC_TRUE@am__append_10 = src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S src/powerpc/linux64.S src/powerpc/linux64_closure.S
+@POWERPC_AIX_TRUE@am__append_11 = src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S
+@POWERPC_DARWIN_TRUE@am__append_12 = src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S
+@ARM_TRUE@am__append_13 = src/arm/sysv.S src/arm/ffi.c
+@FRV_TRUE@am__append_14 = src/frv/eabi.S src/frv/ffi.c
+@S390_TRUE@am__append_15 = src/s390/sysv.S src/s390/ffi.c
+@X86_64_TRUE@am__append_16 = src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S
+@SH_TRUE@am__append_17 = src/sh/sysv.S src/sh/ffi.c
+@SH64_TRUE@am__append_18 = src/sh64/sysv.S src/sh64/ffi.c
+@PA_TRUE@am__append_19 = src/pa/linux.S src/pa/ffi.c
 DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \
        $(srcdir)/../config.guess $(srcdir)/../config.sub \
        $(srcdir)/../install-sh $(srcdir)/../ltmain.sh \
@@ -91,45 +92,47 @@ am_libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo src/types.lo \
 @SPARC_TRUE@   src/sparc/v9.lo
 @ALPHA_TRUE@am__objects_6 = src/alpha/ffi.lo src/alpha/osf.lo
 @IA64_TRUE@am__objects_7 = src/ia64/ffi.lo src/ia64/unix.lo
-@M68K_TRUE@am__objects_8 = src/m68k/ffi.lo src/m68k/sysv.lo
-@POWERPC_TRUE@am__objects_9 = src/powerpc/ffi.lo src/powerpc/sysv.lo \
+@M32R_TRUE@am__objects_8 = src/m32r/sysv.lo src/m32r/ffi.lo
+@M68K_TRUE@am__objects_9 = src/m68k/ffi.lo src/m68k/sysv.lo
+@POWERPC_TRUE@am__objects_10 = src/powerpc/ffi.lo src/powerpc/sysv.lo \
 @POWERPC_TRUE@ src/powerpc/ppc_closure.lo \
 @POWERPC_TRUE@ src/powerpc/linux64.lo \
 @POWERPC_TRUE@ src/powerpc/linux64_closure.lo
-@POWERPC_AIX_TRUE@am__objects_10 = src/powerpc/ffi_darwin.lo \
+@POWERPC_AIX_TRUE@am__objects_11 = src/powerpc/ffi_darwin.lo \
 @POWERPC_AIX_TRUE@     src/powerpc/aix.lo \
 @POWERPC_AIX_TRUE@     src/powerpc/aix_closure.lo
-@POWERPC_DARWIN_TRUE@am__objects_11 = src/powerpc/ffi_darwin.lo \
+@POWERPC_DARWIN_TRUE@am__objects_12 = src/powerpc/ffi_darwin.lo \
 @POWERPC_DARWIN_TRUE@  src/powerpc/darwin.lo \
 @POWERPC_DARWIN_TRUE@  src/powerpc/darwin_closure.lo
-@ARM_TRUE@am__objects_12 = src/arm/sysv.lo src/arm/ffi.lo
-@FRV_TRUE@am__objects_13 = src/frv/eabi.lo src/frv/ffi.lo
-@S390_TRUE@am__objects_14 = src/s390/sysv.lo src/s390/ffi.lo
-@X86_64_TRUE@am__objects_15 = src/x86/ffi64.lo src/x86/unix64.lo \
+@ARM_TRUE@am__objects_13 = src/arm/sysv.lo src/arm/ffi.lo
+@FRV_TRUE@am__objects_14 = src/frv/eabi.lo src/frv/ffi.lo
+@S390_TRUE@am__objects_15 = src/s390/sysv.lo src/s390/ffi.lo
+@X86_64_TRUE@am__objects_16 = src/x86/ffi64.lo src/x86/unix64.lo \
 @X86_64_TRUE@  src/x86/ffi.lo src/x86/sysv.lo
-@SH_TRUE@am__objects_16 = src/sh/sysv.lo src/sh/ffi.lo
-@SH64_TRUE@am__objects_17 = src/sh64/sysv.lo src/sh64/ffi.lo
-@PA_TRUE@am__objects_18 = src/pa/linux.lo src/pa/ffi.lo
+@SH_TRUE@am__objects_17 = src/sh/sysv.lo src/sh/ffi.lo
+@SH64_TRUE@am__objects_18 = src/sh64/sysv.lo src/sh64/ffi.lo
+@PA_TRUE@am__objects_19 = src/pa/linux.lo src/pa/ffi.lo
 nodist_libffi_la_OBJECTS = $(am__objects_1) $(am__objects_2) \
        $(am__objects_3) $(am__objects_4) $(am__objects_5) \
        $(am__objects_6) $(am__objects_7) $(am__objects_8) \
        $(am__objects_9) $(am__objects_10) $(am__objects_11) \
        $(am__objects_12) $(am__objects_13) $(am__objects_14) \
        $(am__objects_15) $(am__objects_16) $(am__objects_17) \
-       $(am__objects_18)
+       $(am__objects_18) $(am__objects_19)
 libffi_la_OBJECTS = $(am_libffi_la_OBJECTS) \
        $(nodist_libffi_la_OBJECTS)
 libffi_convenience_la_LIBADD =
-am__objects_19 = src/debug.lo src/prep_cif.lo src/types.lo \
+am__objects_20 = src/debug.lo src/prep_cif.lo src/types.lo \
        src/raw_api.lo src/java_raw_api.lo
-am_libffi_convenience_la_OBJECTS = $(am__objects_19)
-am__objects_20 = $(am__objects_1) $(am__objects_2) $(am__objects_3) \
+am_libffi_convenience_la_OBJECTS = $(am__objects_20)
+am__objects_21 = $(am__objects_1) $(am__objects_2) $(am__objects_3) \
        $(am__objects_4) $(am__objects_5) $(am__objects_6) \
        $(am__objects_7) $(am__objects_8) $(am__objects_9) \
        $(am__objects_10) $(am__objects_11) $(am__objects_12) \
        $(am__objects_13) $(am__objects_14) $(am__objects_15) \
-       $(am__objects_16) $(am__objects_17) $(am__objects_18)
-nodist_libffi_convenience_la_OBJECTS = $(am__objects_20)
+       $(am__objects_16) $(am__objects_17) $(am__objects_18) \
+       $(am__objects_19)
+nodist_libffi_convenience_la_OBJECTS = $(am__objects_21)
 libffi_convenience_la_OBJECTS = $(am_libffi_convenience_la_OBJECTS) \
        $(nodist_libffi_convenience_la_OBJECTS)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
@@ -219,6 +222,8 @@ LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
+M32R_FALSE = @M32R_FALSE@
+M32R_TRUE = @M32R_TRUE@
 M68K_FALSE = @M68K_FALSE@
 M68K_TRUE = @M68K_TRUE@
 MAINT = @MAINT@
@@ -320,6 +325,7 @@ EXTRA_DIST = LICENSE ChangeLog.v1 \
        src/arm/ffi.c src/arm/sysv.S src/arm/ffitarget.h \
        src/mips/ffi.c src/mips/n32.S src/mips/o32.S \
        src/mips/ffitarget.h \
+       src/m32r/ffi.c src/m32r/sysv.S src/m32r/ffitarget.h \
        src/m68k/ffi.c src/m68k/sysv.S src/m68k/ffitarget.h \
        src/powerpc/ffi.c src/powerpc/sysv.S \
        src/powerpc/linux64.S src/powerpc/linux64_closure.S \
@@ -382,7 +388,7 @@ noinst_LTLIBRARIES = libffi_convenience.la
 libffi_la_SOURCES = src/debug.c src/prep_cif.c src/types.c \
                src/raw_api.c src/java_raw_api.c
 
-nodist_libffi_la_SOURCES = $(am__append_1) $(am__append_2) $(am__append_3) $(am__append_4) $(am__append_5) $(am__append_6) $(am__append_7) $(am__append_8) $(am__append_9) $(am__append_10) $(am__append_11) $(am__append_12) $(am__append_13) $(am__append_14) $(am__append_15) $(am__append_16) $(am__append_17) $(am__append_18)
+nodist_libffi_la_SOURCES = $(am__append_1) $(am__append_2) $(am__append_3) $(am__append_4) $(am__append_5) $(am__append_6) $(am__append_7) $(am__append_8) $(am__append_9) $(am__append_10) $(am__append_11) $(am__append_12) $(am__append_13) $(am__append_14) $(am__append_15) $(am__append_16) $(am__append_17) $(am__append_18) $(am__append_19)
 libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
 nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
 AM_CFLAGS = -Wall -g -fexceptions
@@ -516,6 +522,11 @@ src/ia64/$(am__dirstamp):
        @: > src/ia64/$(am__dirstamp)
 src/ia64/ffi.lo: src/ia64/$(am__dirstamp)
 src/ia64/unix.lo: src/ia64/$(am__dirstamp)
+src/m32r/$(am__dirstamp):
+       @$(mkdir_p) src/m32r
+       @: > src/m32r/$(am__dirstamp)
+src/m32r/sysv.lo: src/m32r/$(am__dirstamp)
+src/m32r/ffi.lo: src/m32r/$(am__dirstamp)
 src/m68k/$(am__dirstamp):
        @$(mkdir_p) src/m68k
        @: > src/m68k/$(am__dirstamp)
@@ -593,6 +604,10 @@ mostlyclean-compile:
        -rm -f src/ia64/unix.lo
        -rm -f src/java_raw_api.$(OBJEXT)
        -rm -f src/java_raw_api.lo
+       -rm -f src/m32r/ffi.$(OBJEXT)
+       -rm -f src/m32r/ffi.lo
+       -rm -f src/m32r/sysv.$(OBJEXT)
+       -rm -f src/m32r/sysv.lo
        -rm -f src/m68k/ffi.$(OBJEXT)
        -rm -f src/m68k/ffi.lo
        -rm -f src/m68k/sysv.$(OBJEXT)
@@ -746,6 +761,15 @@ src/ia64/unix.obj: src/ia64/unix.S
 src/ia64/unix.lo: src/ia64/unix.S
        $(LIBTOOL) --mode=compile $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o src/ia64/unix.lo `test -f 'src/ia64/unix.S' || echo '$(srcdir)/'`src/ia64/unix.S
 
+src/m32r/sysv.o: src/m32r/sysv.S
+       $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o src/m32r/sysv.o `test -f 'src/m32r/sysv.S' || echo '$(srcdir)/'`src/m32r/sysv.S
+
+src/m32r/sysv.obj: src/m32r/sysv.S
+       $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o src/m32r/sysv.obj `if test -f 'src/m32r/sysv.S'; then $(CYGPATH_W) 'src/m32r/sysv.S'; else $(CYGPATH_W) '$(srcdir)/src/m32r/sysv.S'; fi`
+
+src/m32r/sysv.lo: src/m32r/sysv.S
+       $(LIBTOOL) --mode=compile $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o src/m32r/sysv.lo `test -f 'src/m32r/sysv.S' || echo '$(srcdir)/'`src/m32r/sysv.S
+
 src/m68k/sysv.o: src/m68k/sysv.S
        $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o src/m68k/sysv.o `test -f 'src/m68k/sysv.S' || echo '$(srcdir)/'`src/m68k/sysv.S
 
@@ -989,6 +1013,15 @@ src/ia64/ffi.obj: src/ia64/ffi.c
 src/ia64/ffi.lo: src/ia64/ffi.c
        $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/ia64/ffi.lo `test -f 'src/ia64/ffi.c' || echo '$(srcdir)/'`src/ia64/ffi.c
 
+src/m32r/ffi.o: src/m32r/ffi.c
+       $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/m32r/ffi.o `test -f 'src/m32r/ffi.c' || echo '$(srcdir)/'`src/m32r/ffi.c
+
+src/m32r/ffi.obj: src/m32r/ffi.c
+       $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/m32r/ffi.obj `if test -f 'src/m32r/ffi.c'; then $(CYGPATH_W) 'src/m32r/ffi.c'; else $(CYGPATH_W) '$(srcdir)/src/m32r/ffi.c'; fi`
+
+src/m32r/ffi.lo: src/m32r/ffi.c
+       $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/m32r/ffi.lo `test -f 'src/m32r/ffi.c' || echo '$(srcdir)/'`src/m32r/ffi.c
+
 src/m68k/ffi.o: src/m68k/ffi.c
        $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/m68k/ffi.o `test -f 'src/m68k/ffi.c' || echo '$(srcdir)/'`src/m68k/ffi.c
 
@@ -1089,6 +1122,7 @@ clean-libtool:
        -rm -rf src/arm/.libs src/arm/_libs
        -rm -rf src/frv/.libs src/frv/_libs
        -rm -rf src/ia64/.libs src/ia64/_libs
+       -rm -rf src/m32r/.libs src/m32r/_libs
        -rm -rf src/m68k/.libs src/m68k/_libs
        -rm -rf src/mips/.libs src/mips/_libs
        -rm -rf src/pa/.libs src/pa/_libs
@@ -1236,7 +1270,7 @@ distclean-tags:
 distdir: $(DISTFILES)
        $(am__remove_distdir)
        mkdir $(distdir)
-       $(mkdir_p) $(distdir)/.. $(distdir)/../config $(distdir)/include $(distdir)/src/alpha $(distdir)/src/arm $(distdir)/src/frv $(distdir)/src/m68k $(distdir)/src/mips $(distdir)/src/pa $(distdir)/src/powerpc $(distdir)/src/s390 $(distdir)/src/sh $(distdir)/src/sh64 $(distdir)/src/sparc $(distdir)/src/x86
+       $(mkdir_p) $(distdir)/.. $(distdir)/../config $(distdir)/include $(distdir)/src/alpha $(distdir)/src/arm $(distdir)/src/frv $(distdir)/src/m32r $(distdir)/src/m68k $(distdir)/src/mips $(distdir)/src/pa $(distdir)/src/powerpc $(distdir)/src/s390 $(distdir)/src/sh $(distdir)/src/sh64 $(distdir)/src/sparc $(distdir)/src/x86
        @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
        list='$(DISTFILES)'; for file in $$list; do \
@@ -1406,6 +1440,7 @@ distclean-generic:
        -rm -f src/mips/$(am__dirstamp)
        -rm -f src/frv/$(am__dirstamp)
        -rm -f src/powerpc/$(am__dirstamp)
+       -rm -f src/m32r/$(am__dirstamp)
        -rm -f src/sh/$(am__dirstamp)
        -rm -f src/m68k/$(am__dirstamp)
        -rm -f src/sparc/$(am__dirstamp)
@@ -1413,8 +1448,8 @@ distclean-generic:
        -rm -f src/$(am__dirstamp)
        -rm -f src/ia64/$(am__dirstamp)
        -rm -f src/alpha/$(am__dirstamp)
-       -rm -f src/sh64/$(am__dirstamp)
        -rm -f src/x86/$(am__dirstamp)
+       -rm -f src/sh64/$(am__dirstamp)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
index d806da0..df27631 100755 (executable)
@@ -310,7 +310,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot CC ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CFLAGS CCAS CCASFLAGS LN_S RANLIB ac_ct_RANLIB LIBTOOL MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CPP CPPFLAGS EGREP TESTSUBDIR_TRUE TESTSUBDIR_FALSE AM_RUNTESTFLAGS MIPS_IRIX_TRUE MIPS_IRIX_FALSE MIPS_LINUX_TRUE MIPS_LINUX_FALSE SPARC_TRUE SPARC_FALSE X86_TRUE X86_FALSE X86_WIN32_TRUE X86_WIN32_FALSE ALPHA_TRUE ALPHA_FALSE IA64_TRUE IA64_FALSE M68K_TRUE M68K_FALSE POWERPC_TRUE POWERPC_FALSE POWERPC_AIX_TRUE POWERPC_AIX_FALSE POWERPC_DARWIN_TRUE POWERPC_DARWIN_FALSE ARM_TRUE ARM_FALSE FRV_TRUE FRV_FALSE S390_TRUE S390_FALSE X86_64_TRUE X86_64_FALSE SH_TRUE SH_FALSE SH64_TRUE SH64_FALSE PA_TRUE PA_FALSE ALLOCA HAVE_LONG_DOUBLE TARGET TARGETDIR toolexecdir toolexeclibdir tool_include_dir gcc_version LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot CC ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CFLAGS CCAS CCASFLAGS LN_S RANLIB ac_ct_RANLIB LIBTOOL MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CPP CPPFLAGS EGREP TESTSUBDIR_TRUE TESTSUBDIR_FALSE AM_RUNTESTFLAGS MIPS_IRIX_TRUE MIPS_IRIX_FALSE MIPS_LINUX_TRUE MIPS_LINUX_FALSE SPARC_TRUE SPARC_FALSE X86_TRUE X86_FALSE X86_WIN32_TRUE X86_WIN32_FALSE ALPHA_TRUE ALPHA_FALSE IA64_TRUE IA64_FALSE M32R_TRUE M32R_FALSE M68K_TRUE M68K_FALSE POWERPC_TRUE POWERPC_FALSE POWERPC_AIX_TRUE POWERPC_AIX_FALSE POWERPC_DARWIN_TRUE POWERPC_DARWIN_FALSE ARM_TRUE ARM_FALSE FRV_TRUE FRV_FALSE S390_TRUE S390_FALSE X86_64_TRUE X86_64_FALSE SH_TRUE SH_FALSE SH64_TRUE SH64_FALSE PA_TRUE PA_FALSE ALLOCA HAVE_LONG_DOUBLE TARGET TARGETDIR toolexecdir toolexeclibdir tool_include_dir gcc_version LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -5320,6 +5320,7 @@ sparc-*-linux* | sparc-*-netbsdelf* | sparc-*-knetbsd*-gnu) TARGET=SPARC; TARGET
 sparc64-*-linux* | sparc64-*-netbsd* | sparc64-*-knetbsd*-gnu) TARGET=SPARC; TARGETDIR=sparc;;
 alpha*-*-linux* | alpha*-*-osf* | alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu | alpha*-*-netbsd* | alpha*-*-knetbsd*-gnu) TARGET=ALPHA; TARGETDIR=alpha;;
 ia64*-*-*) TARGET=IA64; TARGETDIR=ia64;;
+m32r*-*-linux* ) TARGET=M32R; TARGETDIR=m32r;;
 m68k-*-linux*) TARGET=M68K; TARGETDIR=m68k;;
 mips64*-*);;
 mips-sgi-irix5.* | mips-sgi-irix6.*) TARGET=MIPS_IRIX; TARGETDIR=mips;;
@@ -5419,6 +5420,16 @@ fi
 
 
 
+if test x$TARGET = xM32R; then
+  M32R_TRUE=
+  M32R_FALSE='#'
+else
+  M32R_TRUE='#'
+  M32R_FALSE=
+fi
+
+
+
 if test x$TARGET = xM68K; then
   M68K_TRUE=
   M68K_FALSE='#'
@@ -6968,6 +6979,13 @@ echo "$as_me: error: conditional \"IA64\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${M32R_TRUE}" && test -z "${M32R_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"M32R\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"M32R\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${M68K_TRUE}" && test -z "${M68K_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"M68K\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -7676,6 +7694,8 @@ s,@ALPHA_TRUE@,$ALPHA_TRUE,;t t
 s,@ALPHA_FALSE@,$ALPHA_FALSE,;t t
 s,@IA64_TRUE@,$IA64_TRUE,;t t
 s,@IA64_FALSE@,$IA64_FALSE,;t t
+s,@M32R_TRUE@,$M32R_TRUE,;t t
+s,@M32R_FALSE@,$M32R_FALSE,;t t
 s,@M68K_TRUE@,$M68K_TRUE,;t t
 s,@M68K_FALSE@,$M68K_FALSE,;t t
 s,@POWERPC_TRUE@,$POWERPC_TRUE,;t t
index ec19944..0eb3b96 100644 (file)
@@ -56,6 +56,7 @@ sparc-*-linux* | sparc-*-netbsdelf* | sparc-*-knetbsd*-gnu) TARGET=SPARC; TARGET
 sparc64-*-linux* | sparc64-*-netbsd* | sparc64-*-knetbsd*-gnu) TARGET=SPARC; TARGETDIR=sparc;;
 alpha*-*-linux* | alpha*-*-osf* | alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu | alpha*-*-netbsd* | alpha*-*-knetbsd*-gnu) TARGET=ALPHA; TARGETDIR=alpha;;
 ia64*-*-*) TARGET=IA64; TARGETDIR=ia64;;
+m32r*-*-linux* ) TARGET=M32R; TARGETDIR=m32r;;
 m68k-*-linux*) TARGET=M68K; TARGETDIR=m68k;;
 mips64*-*);;
 mips-sgi-irix5.* | mips-sgi-irix6.*) TARGET=MIPS_IRIX; TARGETDIR=mips;;
@@ -88,6 +89,7 @@ AM_CONDITIONAL(X86, test x$TARGET = xX86)
 AM_CONDITIONAL(X86_WIN32, test x$TARGET = xX86_WIN32)
 AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA)
 AM_CONDITIONAL(IA64, test x$TARGET = xIA64)
+AM_CONDITIONAL(M32R, test x$TARGET = xM32R)
 AM_CONDITIONAL(M68K, test x$TARGET = xM68K)
 AM_CONDITIONAL(POWERPC, test x$TARGET = xPOWERPC)
 AM_CONDITIONAL(POWERPC_AIX, test x$TARGET = xPOWERPC_AIX)
index f081586..9185e90 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# Makefile.in generated by automake 1.8.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -89,6 +89,8 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FRV_FALSE = @FRV_FALSE@
+FRV_TRUE = @FRV_TRUE@
 HAVE_LONG_DOUBLE = @HAVE_LONG_DOUBLE@
 IA64_FALSE = @IA64_FALSE@
 IA64_TRUE = @IA64_TRUE@
@@ -101,6 +103,8 @@ LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
+M32R_FALSE = @M32R_FALSE@
+M32R_TRUE = @M32R_TRUE@
 M68K_FALSE = @M68K_FALSE@
 M68K_TRUE = @M68K_TRUE@
 MAINT = @MAINT@
@@ -301,11 +305,9 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
          done | \
          $(AWK) '    { files[$$0] = 1; } \
               END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-         test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
-       fi
+       test -z "$(ETAGS_ARGS)$$tags$$unique" \
+         || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+            $$tags $$unique
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
diff --git a/libffi/src/m32r/ffi.c b/libffi/src/m32r/ffi.c
new file mode 100644 (file)
index 0000000..9a3b550
--- /dev/null
@@ -0,0 +1,247 @@
+/* -----------------------------------------------------------------------
+   ffi.c - Copyright (c) 2004  Renesas Technology
+   
+   M32R Foreign Function Interface 
+
+   Permission is hereby granted, free of charge, to any person obtaining
+   a copy of this software and associated documentation files (the
+   ``Software''), to deal in the Software without restriction, including
+   without limitation the rights to use, copy, modify, merge, publish,
+   distribute, sublicense, and/or sell copies of the Software, and to
+   permit persons to whom the Software is furnished to do so, subject to
+   the following conditions:
+
+   The above copyright notice and this permission notice shall be included
+   in all copies or substantial portions of the Software.
+
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
+   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+   IN NO EVENT SHALL RENESAS TECHNOLOGY BE LIABLE FOR ANY CLAIM, DAMAGES OR
+   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+   OTHER DEALINGS IN THE SOFTWARE.
+   ----------------------------------------------------------------------- */
+
+#include <ffi.h>
+#include <ffi_common.h>
+
+#include <stdlib.h>
+
+/* ffi_prep_args is called by the assembly routine once stack
+   space has been allocated for the function's arguments.  */
+
+/*@-exportheader@*/
+void ffi_prep_args(char *stack, extended_cif *ecif)
+/*@=exportheader@*/
+{
+  unsigned int i;
+  int tmp;
+  unsigned int avn;
+  void **p_argv;
+  char *argp;
+  ffi_type **p_arg;
+
+  tmp = 0;
+  argp = stack;
+
+  if (ecif->cif->rtype->type == FFI_TYPE_STRUCT && ecif->cif->rtype->size > 8)
+    {
+      *(void **) argp = ecif->rvalue;
+      argp += 4;
+    }
+
+  avn = ecif->cif->nargs;
+  p_argv = ecif->avalue;
+
+  for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types;
+       (i != 0) && (avn != 0);
+       i--, p_arg++)
+    {
+      size_t z;
+
+      /* Align if necessary.  */
+      if (((*p_arg)->alignment - 1) & (unsigned) argp)
+       argp = (char *) ALIGN (argp, (*p_arg)->alignment);
+
+      if (avn != 0) 
+       {
+         avn--;
+         z = (*p_arg)->size;
+         if (z < sizeof (int))
+           {
+             z = sizeof (int);
+
+             switch ((*p_arg)->type)
+               {
+               case FFI_TYPE_SINT8:
+                 *(signed int *) argp = (signed int)*(SINT8 *)(* p_argv);
+                 break;
+                 
+               case FFI_TYPE_UINT8:
+                 *(unsigned int *) argp = (unsigned int)*(UINT8 *)(* p_argv);
+                 break;
+                 
+               case FFI_TYPE_SINT16:
+                 *(signed int *) argp = (signed int)*(SINT16 *)(* p_argv);
+                 break;
+                 
+               case FFI_TYPE_UINT16:
+                 *(unsigned int *) argp = (unsigned int)*(UINT16 *)(* p_argv);
+                 break;
+                 
+               case FFI_TYPE_STRUCT:
+                 z = (*p_arg)->size;
+                 if ((*p_arg)->alignment != 1)
+                   memcpy (argp, *p_argv, z);
+                 else
+                   memcpy (argp + 4 - z, *p_argv, z);
+                 z = sizeof (int);
+                 break;
+
+               default:
+                 FFI_ASSERT(0);
+               }
+           }
+         else if (z == sizeof (int))
+           {
+              *(unsigned int *) argp = (unsigned int)*(UINT32 *)(* p_argv);
+           }
+         else
+           {
+             if ((*p_arg)->type == FFI_TYPE_STRUCT)
+               {
+                 if (z > 8)
+                   {
+                     *(unsigned int *) argp = (unsigned int)(void *)(* p_argv);
+                     z = sizeof(void *);
+                   }
+                 else
+                   {
+                     memcpy(argp, *p_argv, z);
+                     z = 8;
+                   }
+               }
+             else
+               {
+                 /* Double or long long 64bit.  */
+                 memcpy (argp, *p_argv, z);
+               }
+           }
+         p_argv++;
+         argp += z;
+       }
+    }
+  
+  return;
+}
+
+/* Perform machine dependent cif processing.  */
+ffi_status
+ffi_prep_cif_machdep(ffi_cif *cif)
+{
+  /* Set the return type flag.  */
+  switch (cif->rtype->type)
+    {
+    case FFI_TYPE_VOID:
+      cif->flags = (unsigned) cif->rtype->type;
+      break;
+
+    case FFI_TYPE_STRUCT:
+      if (cif->rtype->size <= 4)
+       cif->flags = FFI_TYPE_INT;
+
+      else if (cif->rtype->size <= 8)
+       cif->flags = FFI_TYPE_DOUBLE;
+
+      else
+       cif->flags = (unsigned) cif->rtype->type;
+      break;
+
+    case FFI_TYPE_SINT64:
+    case FFI_TYPE_UINT64:
+    case FFI_TYPE_DOUBLE:
+      cif->flags = FFI_TYPE_DOUBLE;
+      break;
+
+    case FFI_TYPE_FLOAT:
+    default:
+      cif->flags = FFI_TYPE_INT;
+      break;
+    }
+
+  return FFI_OK;
+}
+
+/*@-declundef@*/
+/*@-exportheader@*/
+extern void ffi_call_SYSV(void (*)(char *, extended_cif *), 
+                         /*@out@*/ extended_cif *, 
+                         unsigned, unsigned, 
+                         /*@out@*/ unsigned *, 
+                         void (*fn)());
+/*@=declundef@*/
+/*@=exportheader@*/
+
+void ffi_call(/*@dependent@*/ ffi_cif *cif, 
+             void (*fn)(), 
+             /*@out@*/ void *rvalue, 
+             /*@dependent@*/ void **avalue)
+{
+  extended_cif ecif;
+
+  ecif.cif = cif;
+  ecif.avalue = avalue;
+  
+  /* If the return value is a struct and we don't have
+     a return value address then we need to make one.  */
+  if ((rvalue == NULL) && 
+      (cif->rtype->type == FFI_TYPE_STRUCT))
+    {
+      /*@-sysunrecog@*/
+      ecif.rvalue = alloca (cif->rtype->size);
+      /*@=sysunrecog@*/
+    }
+  else
+    ecif.rvalue = rvalue;    
+  
+  switch (cif->abi) 
+    {
+    case FFI_SYSV:
+      /*@-usedef@*/
+      ffi_call_SYSV(ffi_prep_args, &ecif, cif->bytes, 
+                   cif->flags, ecif.rvalue, fn);
+      if (cif->rtype->type == FFI_TYPE_STRUCT)
+       {
+         int size = cif->rtype->size;
+         int align = cif->rtype->alignment;
+
+         if (size < 4)
+           {
+             if (align == 1)
+               *(unsigned long *)(ecif.rvalue) <<= (4 - size) * 8;
+           }
+         else if (4 < size && size < 8)
+           {
+             if (align == 1)
+               {
+                 memcpy (ecif.rvalue, ecif.rvalue + 8-size, size);
+               }
+             else if (align == 2)
+               {
+                 if (size & 1)
+                   size += 1;
+
+                 if (size != 8)
+                   memcpy (ecif.rvalue, ecif.rvalue + 8-size, size);
+               }
+           }
+       }
+      /*@=usedef@*/
+      break;
+
+    default:
+      FFI_ASSERT(0);
+      break;
+    }
+}
diff --git a/libffi/src/m32r/ffitarget.h b/libffi/src/m32r/ffitarget.h
new file mode 100644 (file)
index 0000000..478a8db
--- /dev/null
@@ -0,0 +1,48 @@
+/* -----------------------------------------------------------------*-C-*-
+   ffitarget.h - Copyright (c) 2004  Renesas Technology.
+   Target configuration macros for M32R.
+
+   Permission is hereby granted, free of charge, to any person obtaining
+   a copy of this software and associated documentation files (the
+   ``Software''), to deal in the Software without restriction, including
+   without limitation the rights to use, copy, modify, merge, publish,
+   distribute, sublicense, and/or sell copies of the Software, and to
+   permit persons to whom the Software is furnished to do so, subject to
+   the following conditions:
+
+   The above copyright notice and this permission notice shall be included
+   in all copies or substantial portions of the Software.
+
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
+   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+   IN NO EVENT SHALL RENESAS TECHNOLOGY BE LIABLE FOR ANY CLAIM, DAMAGES OR
+   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+   OTHER DEALINGS IN THE SOFTWARE.
+
+   ----------------------------------------------------------------------- */
+
+#ifndef LIBFFI_TARGET_H
+#define LIBFFI_TARGET_H
+
+/* ---- Generic type definitions ----------------------------------------- */
+
+#ifndef LIBFFI_ASM
+typedef unsigned long          ffi_arg;
+typedef signed long            ffi_sarg;
+
+typedef enum ffi_abi
+  {
+    FFI_FIRST_ABI = 0,
+    FFI_SYSV,
+    FFI_DEFAULT_ABI = FFI_SYSV,
+    FFI_LAST_ABI = FFI_DEFAULT_ABI + 1
+  } ffi_abi;
+#endif
+
+#define FFI_CLOSURES           1
+#define FFI_TRAMPOLINE_SIZE    24
+#define FFI_NATIVE_RAW_API     0
+
+#endif
diff --git a/libffi/src/m32r/sysv.S b/libffi/src/m32r/sysv.S
new file mode 100644 (file)
index 0000000..06b75c2
--- /dev/null
@@ -0,0 +1,121 @@
+/* -----------------------------------------------------------------------
+   sysv.S - Copyright (c) 2004 Renesas Technology
+   
+   M32R Foreign Function Interface 
+
+   Permission is hereby granted, free of charge, to any person obtaining
+   a copy of this software and associated documentation files (the
+   ``Software''), to deal in the Software without restriction, including
+   without limitation the rights to use, copy, modify, merge, publish,
+   distribute, sublicense, and/or sell copies of the Software, and to
+   permit persons to whom the Software is furnished to do so, subject to
+   the following conditions:
+
+   The above copyright notice and this permission notice shall be included
+   in all copies or substantial portions of the Software.
+
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
+   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+   IN NO EVENT SHALL RENESAS TECHNOLOGY BE LIABLE FOR ANY CLAIM, DAMAGES OR
+   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+   OTHER DEALINGS IN THE SOFTWARE.
+   ----------------------------------------------------------------------- */
+
+#define LIBFFI_ASM
+#include <fficonfig.h>
+#include <ffi.h>
+#ifdef HAVE_MACHINE_ASM_H
+#include <machine/asm.h>
+#else
+/* XXX these lose for some platforms, I'm sure.  */
+#define CNAME(x) x
+#define ENTRY(x) .globl CNAME(x)! .type CNAME(x),%function! CNAME(x):
+#endif
+
+.text
+
+       /* R0:   ffi_prep_args */
+       /* R1:   &ecif */
+       /* R2:   cif->bytes */
+       /* R3:   fig->flags */
+       /* sp+0: ecif.rvalue */
+       /* sp+4: fn */
+
+       /* This assumes we are using gas.  */
+ENTRY(ffi_call_SYSV)
+       /* Save registers.  */
+       push    fp
+       push    lr
+       push    r3
+       push    r2
+       push    r1
+       push    r0
+       mv      fp, sp
+
+       /* Make room for all of the new args.  */
+       sub     sp, r2
+
+       /* Place all of the ffi_prep_args in position.  */
+       mv      lr, r0  
+       mv      r0, sp
+       /* R1 already set.  */
+
+       /* And call.  */
+       jl      lr
+
+       /* Move first 4 parameters in registers...  */
+       ld      r0, @(0,sp)
+       ld      r1, @(4,sp)
+       ld      r2, @(8,sp)
+        ld     r3, @(12,sp)
+
+       /* ...and adjust the stack.  */
+       ld      lr, @(8,fp)
+        cmpi   lr, #16
+       bc      adjust_stack
+       ldi     lr, #16
+adjust_stack:
+        add    sp, lr
+
+       /* Call the function.  */
+       ld      lr, @(28,fp)
+       jl      lr      
+
+       /* Remove the space we pushed for the args.  */
+       mv      sp, fp  
+
+       /* Load R2 with the pointer to storage for the return value.  */
+       ld      r2, @(24,sp)
+
+       /* Load R3 with the return type code.  */
+       ld      r3, @(12,sp)
+
+       /* If the return value pointer is NULL, assume no return value.  */
+       beqz    r2, epilogue
+
+       /* Return INT.  */
+       ldi     r4, #FFI_TYPE_INT
+       bne     r3, r4, return_double
+       st      r0, @r2 
+       bra     epilogue
+
+return_double:
+       /* Return DOUBLE or LONGDOUBLE.  */
+       ldi     r4, #FFI_TYPE_DOUBLE
+       bne     r3, r4, epilogue
+       st      r0, @r2 
+       st      r1, @(4,r2)
+
+epilogue:
+       pop     r0
+       pop     r1
+       pop     r2
+       pop     r3
+       pop     lr
+       pop     fp
+        jmp lr
+
+.ffi_call_SYSV_end:
+        .size    CNAME(ffi_call_SYSV),.ffi_call_SYSV_end-CNAME(ffi_call_SYSV)
index 09863c0..47ee656 100644 (file)
@@ -80,7 +80,7 @@ FFI_INTEGRAL_TYPEDEF(double, 8, 4, FFI_TYPE_DOUBLE);
 #endif
 FFI_INTEGRAL_TYPEDEF(longdouble, 12, 4, FFI_TYPE_LONGDOUBLE);
 
-#elif defined ARM || defined SH || defined POWERPC_AIX
+#elif defined ARM || defined SH || defined POWERPC_AIX || defined M32R
 
 FFI_INTEGRAL_TYPEDEF(double, 8, 4, FFI_TYPE_DOUBLE);
 FFI_INTEGRAL_TYPEDEF(longdouble, 8, 4, FFI_TYPE_LONGDOUBLE);
index 2d8ea21..bc9d420 100644 (file)
@@ -95,6 +95,8 @@ LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
+M32R_FALSE = @M32R_FALSE@
+M32R_TRUE = @M32R_TRUE@
 M68K_FALSE = @M68K_FALSE@
 M68K_TRUE = @M68K_TRUE@
 MAINT = @MAINT@