]> git.ipfire.org Git - thirdparty/gcc.git/commit
Add -mlong-double-128 and make it default for 64-bit Bionic
authorH.J. Lu <hongjiu.lu@intel.com>
Mon, 3 Feb 2014 15:18:44 +0000 (15:18 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Mon, 3 Feb 2014 15:18:44 +0000 (07:18 -0800)
commita2a1ddb57a57be005c4ee78b055adb2bd199ff2e
treeb8526b6d630f8e6d4efb2afb9dea0faba7170200
parentf742cf901dd37dfeb116e7dc099461b1291389e8
Add -mlong-double-128 and make it default for 64-bit Bionic

gcc/

* config/i386/i386.c (flag_opts): Add -mlong-double-128.
(ix86_option_override_internal): Default long double to 64-bit for
32-bit Bionic and to 128-bit for 64-bit Bionic.

* config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
TARGET_LONG_DOUBLE_128 is true.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.

* config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
(mlong-double-64): Negate -mlong-double-128.
(mlong-double-128): New option.

* config/i386/i386-c.c (ix86_target_macros): Define
__LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.

* doc/invoke.texi: Document -mlong-double-128.

gcc/testsuite/

* gcc.target/i386/long-double-64-1.c: Verify __multf3 isn't used.
* gcc.target/i386/long-double-64-4.c: Likewise.
* gcc.target/i386/long-double-80-1.c: Likewise.
* gcc.target/i386/long-double-80-2.c: Likewise.
* gcc.target/i386/long-double-80-3.c: Likewise.
* gcc.target/i386/long-double-80-4.c: Likewise.
* gcc.target/i386/long-double-80-5.c: Likewise.
* gcc.target/i386/long-double-64-2.c: Limit to ia32.  Verify
__multf3 isn't used.
* gcc.target/i386/long-double-64-3.c: Likewise.
* gcc.target/i386/long-double-128-1.c: New test.
* gcc.target/i386/long-double-128-2.c: Likewise.
* gcc.target/i386/long-double-128-3.c: Likewise.
* gcc.target/i386/long-double-128-4.c: Likewise.
* gcc.target/i386/long-double-128-5.c: Likewise.
* gcc.target/i386/long-double-128-6.c: Likewise.
* gcc.target/i386/long-double-128-7.c: Likewise.
* gcc.target/i386/long-double-128-8.c: Likewise.
* gcc.target/i386/long-double-128-9.c: Likewise.
* gcc.target/i386/long-double-64-5.c: Likewise.
* gcc.target/i386/long-double-64-6.c: Likewise.
* gcc.target/i386/long-double-64-7.c: Likewise.
* gcc.target/i386/long-double-64-8.c: Likewise.
* gcc.target/i386/long-double-64-9.c: Likewise.
* gcc.target/i386/long-double-80-10.c: Likewise.
* gcc.target/i386/long-double-80-8.c: Likewise.
* gcc.target/i386/long-double-80-9.c: Likewise.

From-SVN: r207428
33 files changed:
gcc/ChangeLog
gcc/config/i386/i386-c.c
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/config/i386/i386.opt
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/long-double-128-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/long-double-128-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/long-double-128-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/long-double-128-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/long-double-128-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/long-double-128-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/long-double-128-7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/long-double-128-8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/long-double-128-9.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/long-double-64-1.c
gcc/testsuite/gcc.target/i386/long-double-64-2.c
gcc/testsuite/gcc.target/i386/long-double-64-3.c
gcc/testsuite/gcc.target/i386/long-double-64-4.c
gcc/testsuite/gcc.target/i386/long-double-64-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/long-double-64-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/long-double-64-7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/long-double-64-8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/long-double-64-9.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/long-double-80-1.c
gcc/testsuite/gcc.target/i386/long-double-80-10.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/long-double-80-2.c
gcc/testsuite/gcc.target/i386/long-double-80-3.c
gcc/testsuite/gcc.target/i386/long-double-80-4.c
gcc/testsuite/gcc.target/i386/long-double-80-5.c
gcc/testsuite/gcc.target/i386/long-double-80-8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/long-double-80-9.c [new file with mode: 0644]