This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

EGCS-2.91.66, Linux/Alpha 21064 host: wrong assembly output !


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]