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: powerpc64le-linux support


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


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