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]
Other format: [Raw text]

trouble with porting architecture


I've been working with an architecture port made in '97, which was updated to 2.95 by someone else, then I updated it to 3.1. The architecture in question is the m6809, running in a Tandy Color Computer. It works for most source, but I've come across a piece of source which generates the following error:

../contiki/ctk/ctk-conio.c: In function `ctk_draw_menus':
../contiki/ctk/ctk-conio.c:510: unable to generate reloads for:

(insn 99 98 100 (set (reg:QI 0 d [32])
(minus:QI (reg:QI 33)
(reg:QI 0 d [34]))) 31 {subqi3} (nil)
(expr_list:REG_DEAD (reg:QI 33)
(expr_list:REG_DEAD (reg:QI 0 d [34])
(nil))))
../contiki/ctk/ctk-conio.c:510: Internal compiler error in find_reloads, at reload.c:3576


Would this indicate a problem in the machine description? Or something else? The code is really rather straightforward, and doesn't generate any warnings. The function in question returns nothing, and has a single local variable.

Unfortunately, I'm not too familiar with gcc internals, and couldn't write a machine description to save my life. I understand the basic concepts, but that's about it.

See function below:

void
ctk_draw_menus(struct ctk_menus *menus)
{
  struct ctk_menu *m;

  /* Draw menus */
  textcolor(MENUCOLOR);
  gotoxy(0, 0);
  revers(1);
  cputc(' ');
  for(m = menus->menus->next; m != NULL; m = m->next) {
    if(m != menus->open) {
      cputs(m->title);
      cputc(' ');
    } else {
      draw_menu(m);
    }
  }


if(wherex() + strlen(menus->desktopmenu->title) + 1>= sizex) { gotoxy(sizex - strlen(menus->desktopmenu->title) - 1, 0); } else { cclear(sizex - wherex() - strlen(menus->desktopmenu->title) - 1); }

  /* Draw desktopmenu */
  if(menus->desktopmenu != menus->open) {
    cputs(menus->desktopmenu->title);
    cputc(' ');
  } else {
    draw_menu(menus->desktopmenu);
  }

  revers(0);
}

James


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