This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch, libffi, ARM] VFP hard-float calling convention support


On 2010/11/20 20:40, Mikael Pettersson wrote:
On Thu, 28 Oct 2010 14:11:12 -0400, Anthony Green wrote:
  >
  >  I'm committing this patch from Chung-Lin Tang, who provided the
  >  following description:
  >
  >  "this patch implements VFP hard-float calling conventions, as a new ABI
  >  for ARM. Asides from VFP calling convention bits, some additional
  >  optimizations have been added to the current softfp assembly code
  >  paths too.
...
  >  2010-10-28  Chung-Lin Tang<cltang@codesourcery.com>
...

This commit, r166032, caused a build error on ARM:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46508

In short, you can't unconditionally use VFP instructions because the
target CPU may not support them and the assembler will (rightfully)
error out if you try.

/Mikael

I think I missed this earlier because my toolchain happened to be configured with --with-fpu=vfp.


Here's a patch that moves the VFP related functions together, and adds a '.fpu vfp' directive in front of them. The VFP hard-float support is always compiled in for more runtime flexibility, however VFP insns will only be executed if you use that hard-float functionality (which will be assumed you know you have a VFP unit)

Also added two missing conditional UNWINDs in the closure routines.

Anthony, is this patch okay?

Thanks,
Chung-Lin

Attachment: libffi.diff
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]