This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


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: iwmmxt requires an AAPCS compatible ABI for proper operation


On Mon, Jun 05, 2006 at 05:46:09PM -0500, Sean Kelley wrote:

> In trying to build an ARM-iwmmxt-elf tool chain with interworking
> support, I have hit a roadblock with this error:
> 
> /home/kelleys/crosstool-0.42/build/arm-iwmmxt-linux-gnu/gcc-4.0.2-glibc-2.3.5/gcc-4.0.2/gcc/crtstuff.c:1:
> error: iwmmxt requires an AAPCS compatible ABI for proper operation
> 
> Any thoughts?

Most ARM systems still use 'hardfloat', where the applications emit
FP instructions for the FPA floating point coprocessor, which are then
trapped by the kernel and emulated (since pretty much no ARM hardware
out there has an FPA floating point coprocessor (anymore).)

iwmmxt instructions and FPA instructions conflict with each other (they
use the same opcodes.)  In order to use iwmmxt instructions, the kernel
has to know that you want to use the iwmmxt coprocessor, instead of having
the instructions interpreted as FPA instructions and emulated, and this
requires that you don't use FPA instructions anywhere else in your userland
process.

This, in turn, requires that you use something other than the hardfloat
model.  What is most commonly done in this case is to use an alternate
ABI where the default is not to emit FPA instructions.


cheers,
Lennert

--
For unsubscribe information see http://sourceware.org/lists.html#faq


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