public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* unable to find a register to spill in class
@ 2005-11-22 12:05 Nemanja Popov
  2005-11-29  3:53 ` Jim Wilson
  0 siblings, 1 reply; 2+ messages in thread
From: Nemanja Popov @ 2005-11-22 12:05 UTC (permalink / raw)
  To: gcc

Hi All,

I'm pretty new in porting and understunding GCC. I am trying to port gcc 
4.02 to the DLX procesor by using dlx port for gcc 2.7.3.

Now I have the following problem:


. -I../../gcc -I../../gcc/. -I../../gcc/../include -I../../gcc/../libcpp/include 
  -DL_muldi3 -c ../../gcc/libgcc2.c -o libgcc/./_muldi3.o
../../gcc/libgcc2.c: In function â__muldi3â:
../../gcc/libgcc2.c:535: error: unable to find a register to spill in class 
GR_REGS
../../gcc/libgcc2.c:535: error: this is the insn:
(insn 6 15 9 0 ../../gcc/libgcc2.c:526 (set (reg/f:SI 82 [ D.1307 ])
        (mem/f/i:SI (reg/f:SI 30 r30) [6 D.1307+0 S4 A32])) 40 
{movsi_general} (nil)
    (expr_list:REG_EQUIV (mem/f/i:SI (reg/f:SI 30 r30) [6 D.1307+0 S4 A32])
        (nil)))
../../gcc/libgcc2.c:535: confused by earlier errors, bailing out


I'm stucked here for almost a week. If you need more data please let me know 
and I'll send them to this list.
I was trying with -da optionn but I'don't understand .greg file format.

Thanks,
Nemanja 

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: unable to find a register to spill in class
  2005-11-22 12:05 unable to find a register to spill in class Nemanja Popov
@ 2005-11-29  3:53 ` Jim Wilson
  0 siblings, 0 replies; 2+ messages in thread
From: Jim Wilson @ 2005-11-29  3:53 UTC (permalink / raw)
  To: Nemanja Popov; +Cc: gcc

Nemanja Popov wrote:
> .../../gcc/libgcc2.c:535: error: unable to find a register to spill in 
> class GR_REGS

Reload is one of the hardest parts to get right with an initial port. 
You will probably have to spend some time learning the basics of what 
reload does.

There are many different things that could be wrong here.  It is hard to 
provide help without some additional info about the port.

The place to start is in the greg file.  There should be a section near 
that top that says "Reloads for insn # 6".  This will be followed by a 
description of the reloads that were generated for this insn.  Also, of 
interest here is the movsi_general pattern, particularly its 
constraints.  And the GR_REGS class, how many registers are in it, how 
many are allocatable, etc.

You may need to set breakpoints in reload to debug this.  Put a break 
point in find_reloads() conditional on the insn uid if the problem 
appears to be there.  Also, check find_regs and figure out why it failed.
-- 
Jim Wilson, GNU Tools Support, http://www.specifix.com

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2005-11-29  3:53 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-11-22 12:05 unable to find a register to spill in class Nemanja Popov
2005-11-29  3:53 ` Jim Wilson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).