This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH,rs6000] fix logic error with rs6000_gen_cell_microcode


On Mon, Feb 1, 2010 at 1:43 PM, Nathan Froyd <froydnj@codesourcery.com> wrote:
> Unfortunately, the next bit of code in rs6000_override_options is:
>
> Â/* If we are optimizing big endian systems for space, use the load/store
> Â Â multiple and string instructions unless we are not generating
> Â Â Cell microcode. Â*/
> Âif (BYTES_BIG_ENDIAN && optimize_size && !rs6000_gen_cell_microcode)
> Â Âtarget_flags |= ~target_flags_explicit & (MASK_MULTIPLE | MASK_STRING);
>
> Since rs6000_gen_cell_microcode is true in almost all cases, this
> condition disables use of load/store-multiple and string instructions if
> you're optimizing for size on a processor other than Cell.

Ok, I looked into the history of this code in the PS3 compiler and we just had:
  if (rs6000_cpu != PROCESSOR_CELLPPU && BYTES_BIG_ENDIAN && optimize_size)
Which means when I converted it over to use rs6000_gen_cell_microcode,
I had messed up the conditional.  Sorry about that and yes checking
rs6000_gen_cell_microcode to be true is the correct thing here.

Thanks,
Andrew Pinski


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]