This is the mail archive of the gcc-bugs@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]

Fixed or forbidden register 3 (bx) was spilled


I know this has been discussed before, but I think my case is different.
I get the error "fixed or forbidden register 3 (bx) was spilled for
class BREG.", but I DO NOT clobber an input/output register. Actually,
I'm not clobbering any register. My code is:


__asm__ __volatile__ ("
   prefetchnta (%%eax)
   prefetchnta (%%ebx)
   prefetchnta 32(%%eax)
   prefetchnta 32(%%ebx)
   prefetchnta 64(%%eax)
   prefetchnta 64(%%ebx)
   prefetchnta 96(%%eax)
   prefetchnta 96(%%ebx)
   prefetchnta 128(%%eax)
   prefetchnta 128(%%ebx)
   "
   : : "a" (means), "b" (vars)
   );

AFAIK, I'm doing everything OK. Why am I getting an error? Could that be
a bug or am I doing something wrong? 

% gcc -v      
Reading specs from /usr/lib/gcc-lib/i586-mandrake-linux/2.95.3/specs
gcc version 2.95.3 19991030 (prerelease)

Regards,

	Jean-Marc

P.S. Please also reply directly to me, as I am not subscribed to the
list.


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