[parisc-linux] Weird compile problems
    Alan Modra 
    alan@linuxcare.com.au
    Thu, 1 Feb 2001 14:59:45 +1100 (EST)
    
    
  
On Wed, 31 Jan 2001, Alan Modra wrote:
> On Wed, 31 Jan 2001, Alan Modra wrote:
> 
> [about pehc devel branch gcc]
> > r19 is being trashed.  It's a compiler bug.  One I added too. :-(
> 
> Now fixed.
It anyone has tried to compile glibc with the devel branch compiler,
you've probably discovered by now that ld.so is still crashing, but for a
different reason.  The global register allocation pass does the following
naughty thing:
[from elf/dl-load.c]
(insn 612 608 1626 (set (reg:SI 1 %r1)
        (plus:SI (reg:SI 19 %r19)
            (high:SI (symbol_ref/v/f:SI ("*.LC27"))))) 80 {*pa.md:2326}
(nil)
    (nil))
(insn 1626 612 621 (set (reg:SI 23 %r23 [242])
        (reg:SI 1 %r1)) 69 {*pa.md:2099} (nil)
    (nil))
[snip around 1480 lines, including calls]
(insn 1638 1527 988 (set (reg:SI 21 %r21)
        (mem/u:SI (lo_sum:SI (reg:SI 23 %r23 [242])
                (unspec:SI[ 
                        (symbol_ref/v/f:SI ("*.LC27"))
                    ]  0)) 0)) 82 {*pa.md:2352} (nil)
    (nil))
With the problem being that r23 is not a callee saved register, so it's
well and truly trashed by the time insn 1638 tries to use it.
-- 
Linuxcare.  Support for the Revolution.