This is the mail archive of the gcc@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: gcc-4.1-20050709: alpha: "macro requires $at register while noatin effect" while compiling Linux kernel


Falk Hueffner wrote:
Dan Kegel <dank@kegel.com> writes:


Likewise, compiling that version of gcc for alpha
dies while building the linux kernel, but for a different reason:

{standard input}:496: Error: macro requires $at register while noat in effect
make[1]: *** [arch/alpha/kernel/core_cia.o] Error 1


This doesn't really sound like a gcc bug, rather like an invalid asm,
or bad options passed to as. But it's impossible to tell without a
test case.

OK, I extracted a minimal test case. This is from compiling arch/alpha/kernel/core_cia.c from linux-2.6.11.3 for alpha. Works fine with gcc-4.0.1. Can somebody familiar with inline assembly guess whether the source or the compiler are wrong here?

--- snip ---
inline unsigned int
cia_bwx_ioread8(void *a)
{
 return ({ unsigned char __kir; __asm__("ldbu %0,%1" : "=r"(__kir) : "m"(*(volatile unsigned char *)a)); __kir; });
}
--- snip ---

$ alpha-unknown-linux-gnu-gcc -fno-common -ffreestanding -O2 \
-mno-fp-regs -ffixed-8 -msmall-data -mcpu=ev5 -Wa,-mev6 -c core_cia.i

/tmp/ccmvyEzr.s: Assembler messages:
/tmp/ccmvyEzr.s:16: Error: macro requires $at register while noat in effect

--
Trying to get a job as a c++ developer?  See http://kegel.com/academy/getting-hired.html


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