sysv.S (ffi_call_SYSV): Doubles are not saved to memory correctly.

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.

From-SVN: r33852
This commit is contained in:
Scott Bambrough 2000-05-11 18:16:37 +00:00 committed by Tom Tromey
parent 0f00654bf8
commit 7f8c11d571
2 changed files with 11 additions and 11 deletions

View 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> 2000-05-04 Tom Tromey <tromey@cygnus.com>
* configure: Rebuilt. * configure: Rebuilt.

View File

@ -97,19 +97,13 @@ ENTRY(ffi_call_SYSV)
beq epilogue beq epilogue
# return FLOAT # return FLOAT
cmp a4, #FFI_TYPE_FLOAT cmp a4, #FFI_TYPE_FLOAT
bne retdouble stfeqs f0, [a3]
stfs f0, [a3] beq epilogue
b epilogue
# return DOUBLE or LONGDOUBLE # return DOUBLE or LONGDOUBLE
retdouble: cmp a4, #FFI_TYPE_DOUBLE
cmp a4, #FFI_TYPE_DOUBLE stfeqd f0, [a3]
bne epilogue
stfs f0, [a3, #0]
stfs f1, [a3, #4]
b epilogue
epilogue: epilogue:
ldmfd sp!, {a1-a4, fp, pc} ldmfd sp!, {a1-a4, fp, pc}