OSDN Git Service

* src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
authorschwab <schwab@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Jan 2012 20:00:44 +0000 (20:00 +0000)
committerschwab <schwab@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Jan 2012 20:00:44 +0000 (20:00 +0000)
mc68000.  Test for __HAVE_68881__ in addition to __MC68881__.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183451 138bc75d-0d04-0410-961f-82ee72b054a4

libffi/ChangeLog
libffi/src/m68k/sysv.S

index 75ce3bf..867b571 100644 (file)
@@ -1,3 +1,8 @@
+2012-01-23  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
+       mc68000.  Test for __HAVE_68881__ in addition to __MC68881__.
+
 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
 
        PR rtl-optimization/48496
index c782f51..dfdd864 100644 (file)
@@ -1,6 +1,6 @@
 /* -----------------------------------------------------------------------
        
-   sysv.S - Copyright (c) 1998 Andreas Schwab
+   sysv.S - Copyright (c) 1998, 2012 Andreas Schwab
            Copyright (c) 2008 Red Hat, Inc. 
    
    m68k Foreign Function Interface 
@@ -87,7 +87,7 @@ ffi_call_SYSV:
 
        | If the return value pointer is NULL, assume no return value.
        | NOTE: On the mc68000, tst on an address register is not supported.
-#if defined(__mc68000__) && !defined(__mcoldfire__)
+#if !defined(__mc68020__) && !defined(__mc68030__) && !defined(__mc68040__) && !defined(__mc68060__) && !defined(__mcoldfire__)
        cmp.w   #0, %a1
 #else
        tst.l   %a1
@@ -109,7 +109,7 @@ retlongint:
 retfloat:
        btst    #2,%d2
        jbeq    retdouble
-#if defined(__MC68881__)
+#if defined(__MC68881__) || defined(__HAVE_68881__)
        fmove.s %fp0,(%a1)
 #else
        move.l  %d0,(%a1)
@@ -119,7 +119,7 @@ retfloat:
 retdouble:
        btst    #3,%d2
        jbeq    retlongdouble
-#if defined(__MC68881__)
+#if defined(__MC68881__) || defined(__HAVE_68881__)
        fmove.d %fp0,(%a1)
 #else
        move.l  %d0,(%a1)+
@@ -130,7 +130,7 @@ retdouble:
 retlongdouble:
        btst    #4,%d2
        jbeq    retpointer
-#if defined(__MC68881__)
+#if defined(__MC68881__) || defined(__HAVE_68881__)
        fmove.x %fp0,(%a1)
 #else
        move.l  %d0,(%a1)+
@@ -199,7 +199,7 @@ ffi_closure_SYSV:
        move.l  (%a0),%d1
        jra     .Lcls_epilogue
 .Lcls_ret_float:
-#if defined(__MC68881__)
+#if defined(__MC68881__) || defined(__HAVE_68881__)
        fmove.s (%a0),%fp0
 #else
        move.l  (%a0),%d0
@@ -209,7 +209,7 @@ ffi_closure_SYSV:
        lsr.l   #2,%d0
        jne     1f
        jcs     .Lcls_ret_ldouble
-#if defined(__MC68881__)
+#if defined(__MC68881__) || defined(__HAVE_68881__)
        fmove.d (%a0),%fp0
 #else
        move.l  (%a0)+,%d0
@@ -217,7 +217,7 @@ ffi_closure_SYSV:
 #endif
        jra     .Lcls_epilogue
 .Lcls_ret_ldouble:
-#if defined(__MC68881__)
+#if defined(__MC68881__) || defined(__HAVE_68881__)
        fmove.x (%a0),%fp0
 #else
        move.l  (%a0)+,%d0