* 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
+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.
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}