OSDN Git Service

2000-05-11 Scott Bambrough <scottb@netwinder.org>
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 May 2000 18:16:37 +0000 (18:16 +0000)
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 May 2000 18:16:37 +0000 (18:16 +0000)
* libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
memory correctly.  Use conditional instructions, not branches where
possible.

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

libffi/ChangeLog
libffi/src/arm/sysv.S

index 9d08899..89ea007 100644 (file)
@@ -1,3 +1,9 @@
+2000-05-11  Scott Bambrough  <scottb@netwinder.org>
+
+       * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to 
+       memory correctly.  Use conditional instructions, not branches where 
+       possible.
+
 2000-05-04  Tom Tromey  <tromey@cygnus.com>
 
        * configure: Rebuilt.
index 14230c4..874b80a 100644 (file)
@@ -97,19 +97,13 @@ ENTRY(ffi_call_SYSV)
        beq   epilogue
 
 # return FLOAT
-       cmp   a4, #FFI_TYPE_FLOAT
-        bne   retdouble
-       stfs  f0, [a3]
-       b     epilogue
+       cmp     a4, #FFI_TYPE_FLOAT
+       stfeqs  f0, [a3]
+       beq     epilogue
 
 # return DOUBLE or LONGDOUBLE
-retdouble:
-       cmp   a4, #FFI_TYPE_DOUBLE
-       bne   epilogue
-
-       stfs  f0, [a3, #0]
-       stfs  f1, [a3, #4]
-       b     epilogue
+       cmp     a4, #FFI_TYPE_DOUBLE
+       stfeqd  f0, [a3]
 
 epilogue:
         ldmfd sp!, {a1-a4, fp, pc}