Guillem Jover wrote:
Hi,
I'm using gcc 3.3 (but this happens as well with gcc 3.2), and the following error occurs when compiling src/fdrivers/svga24.c:
gcc -c -O2 -Wall -DLFB_BY_NEAR_POINTER -pipe -DSVGALIB_DRIVER -DFRAMEBUFFER_DRIVER -DINOUTP_FRAMEDRIVERS -I. -I./include -I../include -I../addons/print fdrivers/svga24.c -o fdrivers/svga24.o fdrivers/svga24.c: In function `drawhline': fdrivers/svga24.c:256: error: can't find a register in class `AD_REGS' while reloading `asm' fdrivers/svga24.c:257: error: can't find a register in class `AD_REGS' while reloading `asm' fdrivers/svga24.c:258: error: can't find a register in class `AD_REGS' while reloading `asm' fdrivers/svga24.c:259: error: can't find a register in class `AD_REGS' while reloading `asm' make[1]: *** [fdrivers/svga24.o] Error 1
At last I have installed a linux distribution with gcc 3.2 andd I have seem the bug (Well, a gcc bug really I think, but...). The problem is in the __INLINE_386_REPFILL24__ macro in src/include/gcc/memfill.h
But, the macro is coded in assembler and I don't know what to do.
There are two possible workarounds:
- Use -O1 as suggested by Andris - Not use the specific gcc macro as suggested by Guillem
Really I don't like any, are there some people here who knows assembler?
M.Alvarez