This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: powerpc64le-linux support
- From: David Edelsohn <dje dot gcc at gmail dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>, Alan Modra <amodra at gmail dot com>
- Date: Wed, 24 Apr 2013 10:08:30 -0400
- Subject: Re: powerpc64le-linux support
- References: <20130424104744 dot GO22536 at bubble dot grove dot modra dot org>
On Wed, Apr 24, 2013 at 6:47 AM, Alan Modra <amodra@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