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]

[PATCH, i386]: Enable soft-float multilibs for x86-32 RTEMS


Hello!

Attached patch enables soft-float multilibs for x86-32 RTEMS. The
patch activates SFmode and DFmode soft-float support routines. The
XFmode is mapped to DFmode due to lack of XFmode support in
soft-float. We already disable FPU return registers for -mno-80387, so
ABI is already changed for soft-float. The XFmode->DFmode mapping just
rides on this change.

gcc/

2013-11-05  Uros Bizjak  <ubizjak@gmail.com>

    * config/i386/i386-c.c (ix86_target_macros): Define _SOFT_FLOAT
    for !TARGET_80387.
    * config/i386/rtemself.h (TARGET_OS_CPP_BUILTINS): Do not define
    _SOFT_FLOAT here.
    (LONG_DOUBLE_TYPE_SIZE): New define.
    (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Ditto.

libgcc/

2013-11-05  Uros Bizjak  <ubizjak@gmail.com>

    * config/i386/32/sfp-machine.h (_FP_MUL_MEAT_S): Define.
    (_FP_MUL_MEAT_D): Ditto.
    (_FP_DIV_MEAT_S): Ditto.
    (_FP_DIV_MEAT_D): Ditto.
    * config.host (i[34567]86-*-rtems*): Remove i386/t-softfp, add
    t-softfp-sfdf and t-softfp to tmake_file.

Patch was tested by Ralf on RTEMS (currently, -march=pentiumpro
multilib ICEs during build due to PR 58853 [1]).

It should be relatively straightforward to implement x86-32 Android
soft-fp multilib following the above RTEMS example. Let's leave this
implementation to an interested reader ;)

Patch was committed to mainline SVN.

[1] http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58853

Uros.

Attachment: r.diff.txt
Description: Text document


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