This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/16185] New: qemu 0.5.5 fails to compile with -march={i686,pentium4,athlon}
- From: "herton at brturbo dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 24 Jun 2004 21:24:09 -0000
- Subject: [Bug c/16185] New: qemu 0.5.5 fails to compile with -march={i686,pentium4,athlon}
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
When compiling qemu 0.5.5 (http://fabrice.bellard.free.fr/qemu/), the following
error occurs:
gcc -O2 -frename-registers -fomit-frame-pointer -march=i686 -fomit-frame-pointer
-I. -I/tmp/qemu/BUILD/qemu-0.5.5/target-i386 -I/tmp/qemu/BUILD/qemu-0.5.5
-D_GNU_SOURCE -c -o translate.o /tmp/qemu/BUILD/qemu-0.5.5/target-i386/translate.c
gcc -O2 -frename-registers -fomit-frame-pointer -march=i686 -I.
-I/tmp/qemu/BUILD/qemu-0.5.5/target-i386 -I/tmp/qemu/BUILD/qemu-0.5.5
-D_GNU_SOURCE -c -o helper.o /tmp/qemu/BUILD/qemu-0.5.5/target-i386/helper.c
In file included from /tmp/qemu/BUILD/qemu-0.5.5/target-i386/helper.c:2492:
/tmp/qemu/BUILD/qemu-0.5.5/softmmu_template.h: In function `slow_ldq_mmu':
/tmp/qemu/BUILD/qemu-0.5.5/softmmu_template.h:179: error: unable to find a
register to spill in class `GENERAL_REGS'
/tmp/qemu/BUILD/qemu-0.5.5/softmmu_template.h:179: error: this is the insn:
(insn:HI 167 164 168 6 0x407a0ec8 (parallel [
(set (reg:DI 112)
(lshiftrt:DI (reg/v:DI 63)
(subreg:QI (reg:SI 111) 0)))
(clobber (scratch:SI))
(clobber (reg:CC 17 flags))
]) 320 {lshrdi3_1} (insn_list 136 (insn_list 164 (nil)))
(expr_list:REG_DEAD (reg/v:DI 63)
(expr_list:REG_UNUSED (scratch:SI)
(expr_list:REG_UNUSED (reg:CC 17 flags)
(nil)))))
/tmp/qemu/BUILD/qemu-0.5.5/softmmu_template.h:179: confused by earlier errors,
bailing out
make[1]: ** [helper.o] Erro 1
make[1]: Leaving directory `/tmp/qemu/BUILD/qemu-0.5.5/i386'
make: ** [all] Erro 1
erro: Status de saída ruim em /tmp/qemu/BUILDROOT/rpm-tmp.6894 (%build)
As the log shows, I used the flags "-O2 -frename-registers -fomit-frame-pointer
-march=i686". Interestingly, the problem above doesn't occurs when I specify
-march={i386,i486,i586}, I only have an error when using i686/athlon/pentium4 (I
didn't test all combinations, probably other options greater than i686 are also
affected). To compile qemu with different flags, you must edit Makefile and
Makefile.target from qemu sources, using for example sed:
sed -i "s/CFLAGS=.*/CFLAGS=-O2 -frename-registers -fomit-frame-pointer
-march=i686/" Makefile{,.target}
--
Summary: qemu 0.5.5 fails to compile with -
march={i686,pentium4,athlon}
Product: gcc
Version: 3.3.3
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: herton at brturbo dot com
CC: gcc-bugs at gcc dot gnu dot org
GCC host triplet: i386-conectiva-linux
GCC target triplet: i386-conectiva-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16185