Bad code w/ a29K cross from Solaris, egcs1.1b
Jeffrey A Law
law@cygnus.com
Thu Nov 5 21:54:00 GMT 1998
In message < Pine.GSO.4.05.9811051059100.6798-100000@ultra1 >you write:
> /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/ccb
> 7MIeW.ii -quiet -dumpbase new1.cc -g -g1 -O2 -O2 -version -o /var/tmp/ccWlL
> zAZ.s
> GNU C++ version egcs-2.91.57 19980901 (egcs-1.1 release) (a29k-*-coff) comp
> iled 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.
Well, I quickly looked at the compiler, and the AI registers are for
incoming arguments. But I don't see them in the assembler. I don't have
any a29k manuals or other docs, so I don't know if the AI registers are
supposed to map onto a particular range of grs or not.
jeff
More information about the Gcc-bugs
mailing list