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