i386 clobbering

Jeffrey A Law law@cygnus.com
Sun Oct 31 23:03:00 GMT 1999


  In message < E11gl76-00040f-00@gateway.internal-0.net >you write:
  > GCC Version: 2.95.1   versus 2.94
  > SYSTEM: ix86-Linux 2.2.13 (SuSE 6.2)
  > 
  > Kernel compiling with newly installed 2.95.1 caused the error 
  > described on
  > http://www.gnu.org/software/gcc/faq.html#asmclobber
  >   foo.c:7: fixed or forbidden register 0 (ax) was spilled for class 
  > AREG.
  > 
  > where as compiling with the v2.94 (included in SuSE 6.2) worked 
  > well. From my knowledge, the kernel code from 2.2x on should be 
  > ok concerning the clobbering. the main make-file tests ans inserts 
  > the required otion to the compiler: -fno-strict-aliasing. The 
  > mentioned part of code in .../delay.h is adapted, so should the part 
  > in /drivers/char/hfmodem/refclock.c which caused the mentioned 
  > error message:
This code is buggy.

The two mull asms explicitly list "ax" as a clobbered register and as an
input register.

Please read the FAQ more closely.

jeff



More information about the Gcc-bugs mailing list