This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
EGCS-2.91.66, Linux/Alpha 21064 host: wrong assembly output !
- To: gcc-bugs at gcc dot gnu dot org
- Subject: EGCS-2.91.66, Linux/Alpha 21064 host: wrong assembly output !
- From: "Michael I. Shestyriov" <mix at amt dot ru>
- Date: Tue, 14 Mar 2000 16:05:04 +0300
- Organization: AMT Group
EGCS-2.91.66 produces wrong assembly output with any -O option.
The host is AlphaStation-255 233 MHz.
Bug have appeared in output for binutils-2.9.1/gas/config/atof-ieee.c
while making cross tools for m68k family.
Results with -O and with -O2 are similar, in function gen_to_word()
a words_end variable on the stack is assigned a value from
uninitialized register. An example below is for -O option.
Gzipped .i is in an attachement
gen_to_words:
.frame $30,80,$26,0
.mask 0x400fe00,-80
ldgp $29,0($27)
$gen_to_words..ng:
$LM69:
.stabn 68,0,255,$LM69
subq $30,80,$30
stq $26,0($30)
stq $9,8($30)
stq $10,16($30)
stq $11,24($30)
stq $12,32($30)
stq $13,40($30)
stq $14,48($30)
stq $15,56($30)
.prologue 1
bis $16,$16,$11
bis $17,$17,$13
bis $18,$18,$15
$LM70:
.stabn 68,0,256,$LM70
$LBB4:
$LM71:
.stabn 68,0,267,$LM71
addq $13,$13,$1
addq $11,$1,$1
stq $1,64($30)
$LM72:
.stabn 68,0,269,$LM72
cmpeq $13,5,$1
$LM73:
.stabn 68,0,269,$LM73
addq $6,2,$7 <--------- $6 is uninitialized !!!
cmovne $1,$7,$6
stq $6,64($30)
$LM74:
.stabn 68,0,275,$LM74
lda $3,generic_floating_point_number
ldq $1,0($3)
mix1:/ibm/RTEMS/tools/build-m68k-tools/gas# gcc -DHAVE_CONFIG_H -I.
-I../../src/gas -I. -D_GNU_SOURCE -I. -I../../src/gas -I../bfd
-I../../src/gas/config -I../../src/gas/../include -I../../src/gas/..
-I../../src/gas/../bfd -g -O -c ../../src/gas/config/atof-ieee.c
--save-temps -v
Reading specs from
/usr/local/lib/gcc-lib/alpha-unknown-linux-gnu/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)
/usr/local/lib/gcc-lib/alpha-unknown-linux-gnu/egcs-2.91.66/cpp -lang-c
-v -I. -I../../src/gas -I. -I. -I../../src/gas -I../bfd
-I../../src/gas/config -I../../src/gas/../include -I../../src/gas/..
-I../../src/gas/../bfd -undef -D__GNUC__=2 -D__GNUC_MINOR__=91 -Dlinux
-Dunix -D_LONGLONG -D__alpha__ -D__ELF__ -D__linux__ -D__unix__
-D_LONGLONG -D__alpha__ -D__ELF__ -D__linux -D__unix -Asystem(linux)
-D__OPTIMIZE__ -g -D__LANGUAGE_C__ -D__LANGUAGE_C -DLANGUAGE_C
-Acpu(alpha) -Amachine(alpha) -D__alpha -D__alpha__ -D__alpha_ev4__
-Acpu(ev4) -DHAVE_CONFIG_H -D_GNU_SOURCE
../../src/gas/config/atof-ieee.c atof-ieee.i
GNU CPP version egcs-2.91.66 19990314 (egcs-1.1.2 release) (Alpha
GNU/Linux for ELF)
#include "..." search starts here:
#include <...> search starts here:
.
../../src/gas
.
../../src/gas
../bfd
../../src/gas/config
../../src/gas/../include
../../src/gas/..
../../src/gas/../bfd
/usr/local/include
/usr/local/alpha-unknown-linux-gnu/include
/usr/local/lib/gcc-lib/alpha-unknown-linux-gnu/egcs-2.91.66/include
/usr/include
End of search list.
/usr/local/lib/gcc-lib/alpha-unknown-linux-gnu/egcs-2.91.66/cc1
atof-ieee.i -quiet -dumpbase atof-ieee.c -g -O -version -o atof-ieee.s
GNU C version egcs-2.91.66 19990314 (egcs-1.1.2 release)
(alpha-unknown-linux-gnu) compiled by GNU C version egcs-2.91.66
19990314 (egcs-1.1.2 release).
as -o atof-ieee.o atof-ieee.s
--
Michael I. Shestyriov
CCIE #3202
AMT Group, cisco Systems Gold Partner
http://www.amt.ru
atof-ieee.i.gz