On Wed, Apr 24, 2013 at 6:47 AM, Alan Modra <amo...@gmail.com> wrote: > This is a first pass at getting powerpc64 little-endian support into > shape. There are no doubt more bugs lurking, but this lets me build > a little-endian C compiler and libgcc to start the little-endian > bootstrap process. Bootstrapped and regression tested powerpc64-linux > to ensure this doesn't break big-endian. > > OK for mainline? > > libgcc/ > * config.host: Match little-endian powerpc-linux. > gcc/ > * config.gcc: Support little-endian powerpc-linux targets. > * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define. > (LINK_OS_LINUX_SPEC): Define. > * config/rs6000/linuxspe.h (TARGET_DEFAULT): > Preserve MASK_LITTLE_ENDIAN. > * config/rs6000/default64.h (TARGET_DEFAULT): Likewise. > * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise. > * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero. > (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define. > (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above. > * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF. > Correct fp word order for little-endian. Don't shift toc entries > smaller than a word for little-endian. > * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment. > (bswapdi2 splits): Correct low-part subreg for little-endian. > Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove > low/high where such is correct only for be. > * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow > little-endian for -mcall-aixdesc.
Okay, but... > @@ -2158,7 +2161,11 @@ > (const_int 16)) > (rotate:SI (match_dup 1) > (const_int 16)))] > - "") > + " > +{ > + /* We are always BITS_BIG_ENDIAN, so the bit positions above in > + zero_extract insns do not change for -mlittle. */ > +}") Please move the comment to the MD file above the splitter and not in the preparation statements. Thanks, David