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