Bug 20653 - value too large for field on k6-2 (loop instruction)
Summary: value too large for field on k6-2 (loop instruction)
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 3.4.4
: P2 normal
Target Milestone: 4.1.0
Assignee: Not yet assigned to anyone
URL:
Keywords: wrong-code
: 25574 26856 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-03-27 08:49 UTC by Mark Loeser
Modified: 2006-03-24 22:56 UTC (History)
3 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2005-03-27 16:36:40


Attachments
Preprocessed file for above failure (25.49 KB, application/octet-stream)
2005-03-27 08:50 UTC, Mark Loeser
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Loeser 2005-03-27 08:49:27 UTC
This error only seems to occur when "-O2 -march=k6-2 -ftracer" are used
together.  Removing -ftracer causes the error to go away.  This problem does not
seem to exist in the GCC4.0 branch.

i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -O20 -ffast-math
-D_REENTRANT -fsigned-char -march=k6-2 -ftracer -O2 -mno-sse2 -fPIC
-DUSE_MEMORY_H -MT psy.lo -MD -MP -MF .deps/psy.Tpo -c psy.c  -fPIC -DPIC -o
.libs/psy.o -save-temps
psy.s: Assembler messages:
psy.s:6581: Error: value of ffffffffffffff7f too large for field of 1 bytes at
0000000000000428


gcc -v
Reading specs from /usr/lib/gcc/i686-pc-linux-gnu/3.4.3-20050110/specs
Configured with: /var/tmp/portage/gcc-3.4.3.20050110-r1/work/gcc-3.4.3/configure
--enable-version-specific-runtime-libs --prefix=/usr
--bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.4.3-20050110
--includedir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.3-20050110/include
--datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.3-20050110
--mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.3-20050110/man
--infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.3-20050110/info
--with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.3-20050110/include/g++-v3
--host=i686-pc-linux-gnu --disable-altivec --enable-nls
--without-included-gettext --enable-__cxa_atexit --disable-sjlj-exceptions
--enable-clocale=gnu --with-system-zlib --disable-checking --disable-werror
--disable-libunwind-exceptions --disable-multilib --disable-libgcj
--enable-languages=c,c++ --enable-shared --enable-threads=posix
Thread model: posix
gcc version 3.4.3-20050110 (Gentoo Linux 3.4.3.20050110-r1,
ssp-3.4.3.20050110-0, pie-8.7.7)
Comment 1 Mark Loeser 2005-03-27 08:50:35 UTC
Created attachment 8461 [details]
Preprocessed file for above failure
Comment 2 Andrew Pinski 2005-03-27 16:36:40 UTC
Confirmed, there might be a testcase for 4.0.0 which can reproduce this too but I don't know of any.
Anyways the problem looks like not taking into counting some alignment or something into the length 
so get the loop instruction but we should not.
Comment 3 Andrew Pinski 2005-07-15 21:22:49 UTC
Fixed for sure on the mainline for 4.1.0 by removal of the loop instruction:
2005-06-05  Steven Bosscher  <stevenb@suse.de>

        * config/i386/i386.c (x86_use_loop): Remove.
        * config/i386/i386.h (x86_use_loop): Remove extern decl.
        (TARGET_USE_LOOP): Remove.
        * config/i386/i386.md (doloop_end, doloop_end_internal): Remove.
        Also remove related define_splits.
Comment 4 Andrew Pinski 2005-12-27 07:39:40 UTC
*** Bug 25574 has been marked as a duplicate of this bug. ***
Comment 5 Andrew Pinski 2006-03-24 22:56:20 UTC
*** Bug 26856 has been marked as a duplicate of this bug. ***