This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Bad code w/ a29K cross from Solaris, egcs1.1b
- To: egcs at cygnus dot com, egcs-bugs at cygnus dot com, bug-gnu-utils at gnu dot org
- Subject: Bad code w/ a29K cross from Solaris, egcs1.1b
- From: "Steven W. Orr" <swo at openroute dot com>
- Date: Thu, 5 Nov 1998 11:10:06 -0500 (EST)
- cc: Michael McKernan <mck at pobox dot com>
I'm having a problem building an a29K-*-coff cross compiler that runs
on Solaris.
Here are my config parameters:
egcs-1.1b
binutils-2.9.1
host=sparc-sun-solaris2.6
target='a29k-*-coff'
prefix=/export/merckx02/egcs/a29k-tools
newbin=$prefix/bin
export with_newlib=yes
The problem is that when I build the compiler, it craps out with an
assembler error on gcc/cp/new1.cc
The compile yields:
Reading specs from /export/merckx02/egcs/unpack/a29k-coff-build-egcs/gcc/specs
gcc version egcs-2.91.57 19980901 (egcs-1.1 release)
/export/merckx02/egcs/unpack/a29k-coff-build-egcs/gcc/cpp -lang-c++ -v -I./include -I. -I../../egcs-1.1b/gcc -I../../egcs-1.1b/gcc/config -isystem /export/merckx02/egcs/unpack/a29k-coff-build-egcs/gcc/include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D_AM29K -D_AM29000 -D_EPI -D_AM29K -D_AM29000 -D_EPI -Acpu(a29k) -Amachine(a29k) -D__EXCEPTIONS -D__CHAR_UNSIGNED__ -D__OPTIMIZE__ -g -g1 -DCROSS_COMPILE -DIN_GCC -DSVR4 -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -DL_op_new ../egcs-1.1b/gcc/cp/new1.cc /var/tmp/ccb7MIeW.ii
GNU CPP version egcs-2.91.57 19980901 (egcs-1.1 release)
#include "..." search starts here:
#include <...> search starts here:
.
/export/merckx02/egcs/unpack/a29k-coff-build-egcs/gcc/include
End of search list.
/export/merckx02/egcs/unpack/a29k-coff-build-egcs/gcc/cc1plus /var/tmp/ccb7MIeW.ii -quiet -dumpbase new1.cc -g -g1 -O2 -O2 -version -o /var/tmp/ccWlLzAZ.s
GNU C++ version egcs-2.91.57 19980901 (egcs-1.1 release) (a29k-*-coff) compiled by GNU C version egcs-2.91.57 19980901 (egcs-1.1 release).
/export/merckx02/egcs/a29k-tools/a29k-*-coff/bin/as -w -o opnew.o /var/tmp/ccWlLzAZ.s
/var/tmp/ccWlLzAZ.s: Assembler messages:
/var/tmp/ccWlLzAZ.s:154: Error: Invalid operands
/var/tmp/ccWlLzAZ.s:604: Error: Invalid operands
/var/tmp/ccWlLzAZ.s:607: Error: Invalid operands
I'm not going to include the resulting assembler unless someone asks
me for it, but the problem seems pretty obvious.
154: store 0,0,AI0,gr106
604: sll lr0,AI0,0
607: store 0,0,AI0,gr109
All three lines refer to AI0 and AI0 does not appear on any other
lines. In all three cases, all three operands should be expecting
either a global or a local register. I looked through the A29K manual
and couldn't find anything on AI0 or anything like it.
I'm not 100% sure if I have a compiler bug, an assembler bug or some
sort of configuration problem, but I suspect the compiler.
Anyone have a suggestion?
--
-Time flies like the wind. Fruit flies like a banana. steveo@world.std.com-
-Stranger things have happened but none stranger than this. Steven W. Orr-
Does your driver's license say Organ Donor?Black holes are where God \
-------divided by zero. Listen to me! We are all individuals!---------