This is the mail archive of the gcc@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]

Bad code w/ a29K cross from Solaris, egcs1.1b


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!---------



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