This is the mail archive of the gcc-bugs@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]

[Bug target/25864] Enable IBM long double format in 32-bit PowerPC Linux



------- Comment #7 from jakub at gcc dot gnu dot org  2006-01-27 19:59 -------
Subject: Bug 25864

Author: jakub
Date: Fri Jan 27 19:59:49 2006
New Revision: 110303

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=110303
Log:
2006-01-27  Jakub Jelinek  <jakub@redhat.com>

        PR target/25864
        * libgcc-std.ver: Add GCC_4.1.0 symbol version.
        * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
        -mno-minimal-toc to previous content.
        (bispecs): Remove goal.
        * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
        * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
        compatibility aliases on powerpc-*-*gnu*.
        * config/rs6000/libgcc-ppc-glibc.ver: New file.
        * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
        libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
        (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
        (ldblspecs): New goal.
        * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
        * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
        _df_to_tf.
        * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
        L_sf_to_tf or L_df_to_tf is defined.

2006-01-27  David Edelsohn  <edelsohn@gnu.org>
            Alan Modra  <amodra@bigpond.net.au>

        PR target/25864
        * config/rs6000/linux.h (POWERPC_LINUX): Define.
        * config/rs6000/linux64.h (POWERPC_LINUX): Define.
        * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
        * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
        * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
        * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
        (rs6000_override_options): Initialize rs6000_ieeequad.
        Initialize TFmode format to ibm_extended_format if not
        TARGET_IEEEQUAD.
        (rs6000_handle_option): Accept -mabi= ibmlongdouble and
        ieeelongdouble.
        (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
        (rs6000_return_in_memory): Only return IEEEQUAD in memory.
        (function_arg_advance): IBM long double passed in two FPRs, not
        split.
        (function_arg): IBM long double passed in FPRs.
        (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
        (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
        Only multireg GPR aligned.
        (rs6000_init_libfuncs): Enable IBM long double functions if not
        IEEEQUAD.
        (rs6000_generate_compare): Use IBM long double compare if not
        TARGET_IEEEQUAD.
        * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
        (TARGET_IEEEQUAD): Define.
        (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
        not TARGET_IEEEQUAD.
        * config/rs6000/rs6000.md: Enable TFmode patterns if
        !TARGET_IEEEQUAD.
        * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
        * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
        and -mlong-double-128 are incompatible.
        * doc/invoke.texi (-mabi): Collect options together.  Add
        ibmlongdouble and ieeelongdouble.

Added:
    trunk/gcc/config/rs6000/libgcc-ppc-glibc.ver
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/fp-bit.h
    trunk/gcc/config/rs6000/aix.h
    trunk/gcc/config/rs6000/darwin-ldouble.c
    trunk/gcc/config/rs6000/darwin.h
    trunk/gcc/config/rs6000/linux.h
    trunk/gcc/config/rs6000/linux64.h
    trunk/gcc/config/rs6000/ppc64-fp.c
    trunk/gcc/config/rs6000/rs6000.c
    trunk/gcc/config/rs6000/rs6000.h
    trunk/gcc/config/rs6000/rs6000.md
    trunk/gcc/config/rs6000/sysv4.h
    trunk/gcc/config/rs6000/t-linux64
    trunk/gcc/config/rs6000/t-ppccomm
    trunk/gcc/doc/invoke.texi
    trunk/gcc/libgcc-std.ver
    trunk/gcc/mklibgcc.in


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25864


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