On Tue, Jul 26, 2011 at 9:41 PM, H.J. Lu <hongjiu...@intel.com> wrote:
> We should call simplify_gen_subreg for PIC with ptr_mode only if modes > of x and orig_x are different. OK for trunk? Let's ask Jakub on this one... Uros. > 2011-07-26 H.J. Lu <hongjiu...@intel.com> > > PR target/47372 > * config/i386/i386.c (ix86_delegitimize_address): Call > simplify_gen_subreg for PIC with ptr_mode only if modes of > x and orig_x are different. > > diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c > index 429cd62..9c52aa3 100644 > --- a/gcc/config/i386/i386.c > +++ b/gcc/config/i386/i386.c > @@ -12967,9 +12982,10 @@ ix86_delegitimize_address (rtx x) > || !MEM_P (orig_x)) > return ix86_delegitimize_tls_address (orig_x); > x = XVECEXP (XEXP (x, 0), 0, 0); > - if (GET_MODE (orig_x) != Pmode) > + if (GET_MODE (orig_x) != GET_MODE (x) > + && GET_MODE (orig_x) != ptr_mode) > { > - x = simplify_gen_subreg (GET_MODE (orig_x), x, Pmode, 0); > + x = simplify_gen_subreg (GET_MODE (orig_x), x, ptr_mode, 0); > if (x == NULL_RTX) > return orig_x; > } >