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:
parent
0f00654bf8
commit
7f8c11d571
|
@ -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.
|
||||||
|
|
|
@ -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}
|
||||||
|
|
Loading…
Reference in New Issue