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