Stefan Reinauer stepan@suse.de writes:
Hi Eric,
I recently added the function smbus_write_byte() to src/southbridge/amd/amd8111/amd8111_early_smbus.c. if the code within #if 0 in that function is enabled, I get the following internal compiler error:
./romcc -mcpu=k8 -O ./auto.E > auto.inc <built-in>:1.0: warning: edge: <built-in>:1.0: warning: 0x2fe7e40 __inw amd8111_early_smbus.c:120.39: warning: edge: amd8111_early_smbus.c:120.39: warning: 0x2fe80e0 copy <built-in>:1.0: warning: edge: <built-in>:1.0: warning: 0x3126060 copy <built-in>:1.0: warning: edge: <built-in>:1.0: warning: 0x2fea8d0 __inw amd8111_early_smbus.c:125.63: warning: edge: amd8111_early_smbus.c:125.63: warning: 0x2feab70 copy <built-in>:1.0: warning: edge: <built-in>:1.0: warning: 0x2feba50 __inw io.h:39.1: warning: edge: io.h:39.1: warning: 0x2febb70 copy amd8111_early_smbus.c:128.48: warning: 0x2febcf0 copy <built-in>:1.0: warning: edge: <built-in>:1.0: warning: 0x2fe6450 __inw auto.c:102.45: warning: def: auto.c:102.45: warning: 0x2fe5020 copy amd8111_early_smbus.c:131.33: warning: 0x2fec520 copy auto.c:102.45: 0x2fe5020 copy Internal compiler error: live range with already used color %ax
Is the code running out of registers? What's happening here?
Yes the compiler ran out of registers.
Although in this case it looks like this was cause by a compiler bug.
The compiler tried to assign %ax to two variables simultaneously.
Eric