[m68k] -pcrel fix for TARGET_COLDFIRE

Daniel Jacobowitz drow@false.org
Sun Jul 31 04:55:00 GMT 2005


On Sun, Jul 31, 2005 at 04:13:08AM +0200, Bernardo Innocenti wrote:
> 
> 
> Daniel Jacobowitz wrote:
> > On Sat, Jul 30, 2005 at 05:31:36PM +0200, Bernardo Innocenti wrote:
> > 
> >>We can't factor code like this since we need to say
> >>"%o0" with -mpcrel and "%0" with -fpic/-fPIC.
> >>
> >>%o is an m68k-specific formatting code:
> >>
> >> 'o' for operands to go directly to output_operand_address (bypassing
> >>     print_operand_address--used only for SYMBOL_REFs under TARGET_PCREL)
> > 
> > 
> > Thanks - I missed that.  In any case, I'd appreciate it if you fixed
> > the bsr.l for the !TARGET_PCREL case too.  Otherwise I'll eventually
> > find a way to test a fix myself, but it's going to be a while.
> 
> Tou mean _this_ brs.l?
> 
>  #if defined(USE_GAS)
>      out = "bsr.l %0@PLTPC";
>  #else
>      out = "bsr %0@PLTPC";
>  #endif
> 
> What's wrong with it?  I can't find your original patch in
> the archives.

The condition is if ((flag_pic == 1) || TARGET_68020), IIRC.  It
triggers for ColdFire even if there's no bsr.l on that platform.
  http://gcc.gnu.org/ml/gcc-patches/2005-04/msg01281.html

-- 
Daniel Jacobowitz
CodeSourcery, LLC



More information about the Gcc-patches mailing list