Commit 7f8c11d5 by Scott Bambrough Committed by Tom Tromey

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
parent 0f00654b
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.
......
...@@ -97,19 +97,13 @@ ENTRY(ffi_call_SYSV) ...@@ -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}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment