[PATCH, FFI, ARM] Rework FFI call code for ARM

Richard Earnshaw rearnsha@gcc.gnu.org
Wed Oct 27 15:36:00 GMT 2004


I've had some of this in my local tree for a long time now, so I thought
it was high-time I finished the work off and committed it.  I've also
rolled in the long-long fix (since I'd touched just about every line of
code already).

This patch does a number of things:

It changes to the use of gnu-standard register names for ARM (no more
use of a1-a4).  It fixes the code so that it can be used from Thumb
state and for interworking.  It adds support for returning long long
values and it simplifies the code when compiled for soft float.

There's still more to do: structure returning is still broken, for
example; but it's much better than it was.

Fixes one testsuite failure in ARM state, and 20 failures in Thumb
state.

R.

2004-10-27  Richard Earnshaw  <rearnsha@arm.com>

	* src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
	long long values.  Round stack allocation to a multiple of 8 bytes
	for ATPCS compatibility.
	* src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
	names.  Handle returning long long types.  Add Thumb and interworking
	support.  Improve soft-float code.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: ffi-thumb.patch
Type: text/x-patch
Size: 7075 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20041027/6032cbed/attachment.bin>


More information about the Gcc-patches mailing list