Description of problem: gcc-3.2.2-5 creates bad asm with -march=k6: compiling the 2.6 kernel for a K6 architecture, for example, is giving me the error: {standard input}: Assembler messages: {standard input}:614: Error: value of -135 too large for field of 1 bytes at 939 The problem appears to be a "loop" instruction being generated with a 1-byte branch offset, for a target at offset -135 bytes. Version-Release number of selected component (if applicable): gcc-3.2.2-5.i386 How reproducible: Always Steps to Reproduce: Compile the attached preprocessed .i file with: gcc -Wall -Wstrict-prototypes -Wno-trigraphs -Os -fno-strict-aliasing -fno-common -Wno-unused -pipe -msoft-float -mpreferred-stack-boundary=2 -march=k6 -fomit-frame-pointer -c -o ide-dma.o ide-dma.i Actual results: The error shown above.
Created attachment 96314 [details] gzipped preprocessed test case.
Cannot reproduce with gcc-3.2.3-6, gcc-3.2.3-14 nor gcc-3.3.2-2. There were a few fixes for k6 on both the gcc-3_2-rhl8-branch and gcc-3_3-rhl-branch, e.g. http://gcc.gnu.org/PR9888
Looks like that could well be the culprit, removing the -Os makes the symptoms disappear.