diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-05-11 18:16:37 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-05-11 18:16:37 +0000 |
commit | d03e800cca37fa8e86bc70f6cbddc39856bfa0e1 (patch) | |
tree | 85a96b3cc4ba338824f1ca5374bf6aca87a9e18f /libffi | |
parent | 193fbd01c1e470d7b96cbae30b8b35d5bfd400fa (diff) | |
download | gcc-d03e800cca37fa8e86bc70f6cbddc39856bfa0e1.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33852 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libffi')
-rw-r--r-- | libffi/ChangeLog | 6 | ||||
-rw-r--r-- | libffi/src/arm/sysv.S | 16 |
2 files changed, 11 insertions, 11 deletions
diff --git a/libffi/ChangeLog b/libffi/ChangeLog index 9d08899e6d3..89ea007c11d 100644 --- a/libffi/ChangeLog +++ b/libffi/ChangeLog @@ -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. diff --git a/libffi/src/arm/sysv.S b/libffi/src/arm/sysv.S index 14230c4b25f..874b80a24ae 100644 --- a/libffi/src/arm/sysv.S +++ b/libffi/src/arm/sysv.S @@ -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} |