The following code gives: zimmerma@gcc40:~$ /opt/cfarm/release/4.3.3/bin/gcc -mpowerpc64 -Wa,-mppc64 -mcpu=970 -c bug.c /tmp/ccCzXnwd.s: Assembler messages: /tmp/ccCzXnwd.s:24: Error: junk at end of line: `1' zimmerma@gcc40:~$ cat bug.c typedef unsigned long long int mp_limb_t; typedef const mp_limb_t *mp_srcptr; typedef long int mp_size_t; void foo (mp_srcptr src, mp_limb_t divisor) { mp_limb_t h, s; mp_limb_t p0; for (;;) { s = src[0]; h = bar (&p0, divisor > s, divisor); } }
This problem was discovered while trying to compile GMP with ABI=mode32: http://gmplib.org/list-archives/gmp-bugs/2009-March/001307.html If either one of the three options -mpowerpc64 -Wa,-mppc64 -mcpu=970 is removed, the compilation works.
Sounds like a user error. If you compile with -mcpu=970, you shouldn't be telling the assembler not to grok power4 or altivec instructions, which it can generate. Just drop that -Wa,-mppc64, gcc will take care of passing the right options to gas.