On Thu, Apr 28, 2011 at 11:22 AM, Alan Modra <amo...@gmail.com> wrote:
> This patch fixes the following warnings seen during a powerpc64
> bootstrap.
>
> libgomp/config/linux/sem.c: In function ‘gomp_sem_wait_slow’:
> libgomp/config/linux/sem.c:33:1: note: non-delegitimized UNSPEC UNSPEC_TOCREL 
> (44) found in variable location
> libgomp/config/linux/bar.c: In function ‘gomp_barrier_wait_end’:
> libgomp/config/linux/bar.c:34:1: note: non-delegitimized UNSPEC UNSPEC_TOCREL 
> (44) found in variable location
>
> What's happening is that we are getting an address that looked like
>  lo_sum ((reg 31)
>          (const (plus (unspec [symbol_ref ("some_var") tocrel]) 4)))
>
> but only expect to handle something like
>  lo_sum ((reg 31)
>          (const (unspec [symbol_ref ("some_var") tocrel])))
>
> I also tidied the macho code which used a mix of "orig_x" and "x",
> makeing the code fragile wrt. some future change that assigns "x"
> earlier in the function.  (If orig_x is a lo_sum, then x == orig_x
> currently.)
>
> Bootstrapped and regression tested powerpc64-linux.  OK to apply?
>
>        * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
>        unspec plus offset.  Tidy macho code.

Looks good.

Thanks, David

Reply via email to