On Sun, May 5, 2013 at 12:35 AM, Alan Modra <amo...@gmail.com> wrote:
> This fixes a couple more little-endian bugs.  bswapdi stores when
> !TARGET_LDBRX were being split to two bswapsi but written to the wrong
> words because we word swapped twice.  ashrdi3 resulted in a libcall.
>
> I think I have ashrdi3_no_power correct.  For LE, the first reg of a
> register pair is the low word, the second the high word, and you use
> %L to select the high reg.  (For BE the second reg is the low word and
> %L really does stand for low).  So a quick rule of thumb for
> converting big-endian register pair patterns to little-endian is
> replace all the reg pair %n with %Ln and all %Ln with %n.
>
>         * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
>         twice for little-endian.
>         (ashrdi3_no_power, ashrdi3): Support little-endian.

This is okay.

Thanks, David

Reply via email to