This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: target/8309: [3.2/? regression][m68k] m68k-elf-gcc -m5200 produces erroneous SImode set of short varaible on stack
- From: Peter Barada <pbarada at mail dot wm dot sps dot mot dot com>
- To: giovannibajo at libero dot it, Peter dot Barada at motorola dot com, gcc-bugs at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org, gcc-gnats at gcc dot gnu dot org
- Date: Mon, 12 May 2003 11:48:55 -0400
- Subject: Re: target/8309: [3.2/? regression][m68k] m68k-elf-gcc -m5200 produces erroneous SImode set of short varaible on stack
- References: <20030510074819.7354.qmail@sources.redhat.com>
>you reported this bug about 6 months ago. Can you confirm whether it's
>still present in 3.3 branch and mainline today? Thanks,
Ok, I pulled out the prerelease of gcc-3.3 and I still see this problem:
[pbarada: /tmp] > /tmp/m68k-elf-3.3/bin/m68k-elf-gcc -v
Reading specs from /tmp/m68k-elf-3.3/lib/gcc-lib/m68k-elf/3.3/specs
Configured with: /home/pbarada/work/cvs-wavemark/cross-linux-tools/gcc-3.3-20030508/configure --target=m68k-elf --prefix=/tmp/m68k-elf-3.3 --enable-languages=c --with-local-prefix=/tmp/m68k-elf-3.3/m68k-elf --without-headers --with-newlib --disable-shared --verbose
Thread model: single
gcc version 3.3 20030509 (prerelease)
[pbarada: /tmp] > /tmp/m68k-elf-3.3/bin/m68k-elf-gcc -O2 -fno-common -ffixed-a2 -m5200 -S -o yy.s yy.c -dp -da
yy.c.11.gcse:
(insn 230 228 231 9 0x4001f420 (set (reg:SI 94)
(plus:SI (subreg:SI (reg/v:HI 40) 0)
(const_int 1 [0x1]))) 100 {*addsi3_5200} (nil)
(nil))
(insn 231 230 232 9 0x4001f420 (set (reg/v:HI 40)
(subreg:HI (reg:SI 94) 2)) 33 {*m68k.md:1024} (nil)
(nil))
yy.c.23.lreg:
(insn 231 230 232 10 0x4001f420 (set (subreg:SI (reg/v:HI 40) 0)
(plus:SI (subreg:SI (reg/v:HI 40) 0)
(const_int 1 [0x1]))) 100 {*addsi3_5200} (nil)
(nil))
(insn 232 231 235 10 0x4001f420 (set (reg/f:SI 15 %sp)
(plus:SI (reg/f:SI 15 %sp)
(const_int 8 [0x8]))) 100 {*addsi3_5200} (nil)
(nil))
yy.c.24.greg:
(note 230 228 371 10 NOTE_INSN_DELETED)
(insn 371 230 231 10 (nil) (set (reg:SI 1 %d1)
(const_int 1 [0x1])) 30 {*m68k.md:993} (nil)
(nil))
(insn 231 371 232 10 0x4001f420 (set (mem:SI (plus:SI (reg/f:SI 14 %a6)
(const_int -38 [0xffffffda])) [23 rotate S4 A16])
(plus:SI (mem:SI (plus:SI (reg/f:SI 14 %a6)
(const_int -38 [0xffffffda])) [23 rotate S4 A16])
(reg:SI 1 %d1))) 100 {*addsi3_5200} (nil)
(nil))
Note that in yy.c.11.gcse insn 231 was (set (mem:HI...)), and in
yy.c.24.greg is (set (mem:SI...))