On Sun, 2009-08-30 at 21:39 +0100, Dave Korn wrote:
> Danny Backx wrote:
> > Hi,
> > 
> > Does anyone know how well gcc-4.4 works with ARM and wmmx instructions ?
> > 
> > I'm working on cegcc. It currently says :
> > pavilion: {86} arm-mingw32ce-gcc -mcpu=iwmmxt t.c
> > t.c:1: error: iwmmxt requires an AAPCS compatible ABI for proper
> > operation
> > pavilion: {87} 
> > 
> > It's clear to me where in the source this message is generated.
> > 
> > It is not clear whether this is caused by errors in my port, or whether
> > gcc has some other problem with this.
> 
>   You should mention that long double alignment macro that the guy on the
> cegcc list thought it was connected with.  ARM_DOUBLEWORD_ALIGN.  If I was
> following that discussion correctly, the ABI requires it, and you have it
> #defined to zero to fix the problem you were getting with float double
> function argument passing, but maybe what this means is that it there's some
> more fundamental problem in the ABI-related MD macros, that fixing it this way
> ended up just papering over.

I (naively) kept my message simple, hoping to get a reaction like :
- I use this all the time in gcc-4.4 so the issue must be in your port
or
- nobody's been using that stuff for ages, it's almost certainly broken.

I guess life is not as simple as that :-)

You already extended my message with a great summary, so I'm finding it
hard to add sensible stuff to it.

Here are two references to why ARM_DOUBLEWORD_ALIGN was added there :
- the commit message
http://sourceforge.net/mailarchive/message.php?msg_name=E1Itn8S-0001xI-Nu%40sc8-pr-svn3.sourceforge.net
- the explanation
http://sourceforge.net/mailarchive/message.php?msg_name=473F27A8.1060805%40portugalmail.pt

The end result of all that was this code in gcc/config/arm/wince-pe.h :
#undef  DEFAULT_STRUCTURE_SIZE_BOUNDARY
#define DEFAULT_STRUCTURE_SIZE_BOUNDARY 8

#undef ARM_DOUBLEWORD_ALIGN
#define ARM_DOUBLEWORD_ALIGN 0
#undef BIGGEST_ALIGNMENT
#define BIGGEST_ALIGNMENT 64

So, question time again : could this be in my port, or a more
fundamental issue as Dave hints ?

How can I find out ?

BTW the message on the cegcc list that started all this :
http://sourceforge.net/mailarchive/forum.php?thread_name=21121251665810%
40webmail35.yandex.ru&forum_name=cegcc-devel

        Danny
-- 
Danny Backx ; danny.backx - at - scarlet.be ; http://danny.backx.info

Reply via email to