| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This pass optimize GOT_PREL (already exists in toolchain/gcc/gcc-4.6)
Backport from svn://gcc.gnu.org/svn/gcc/branches/google/gcc-4_6-mobile
UNSPEC_GOT_PREL_SYM is now in new file arm/unspecs.md
4.9 port is slightly different due to changes in gcc passes
See Google b/14811006
r173209 | carrot | 2011-04-30 16:07:46 +0800 (Sat, 30 Apr 2011) | 21 lines
* hooks.c (hook_rtx_void_null): New function.
* hooks.h (hook_rtx_void_null): New prototype.
* target.def (got_access): New hook vector declaration.
* tree-pass.h (pass_simplify_got): New pass.
* timevar.def (TV_SIMPLIFY_GOT): New TV id.
* simplify-got.c: New source file.
* Makefile.in (simplify-got.o): Add a new file.
* passes.c (init_optimization_passes): Add a new pass.
* config/arm/arm.c (arm_output_addr_const_extra): Output GOT_PREL
relocation.
(arm_get_pic_reg): New function.
(arm_clear_pic_reg): New function.
(arm_can_simplify_got_access): New function.
(arm_loaded_global_var): New function.
(arm_load_global_address): New function.
* config/arm/arm.md (UNSPEC_GOT_PREL_SYM): New UNSPEC symbol.
* testsuite/gcc.target/arm/got1.c: New testcase.
* testsuite/gcc.target/arm/got2.c: New testcase.
Change-Id: I91e881df19bb6937a5fbcc8e6b83d158717c7773
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Backport of r207428:
2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
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.
Change-Id: I2e1ce44792dd78df521fa485f2c0d2303dbb83bd
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
|
|
|
|
| |
Change-Id: I0f1fcf69c5076d8534c5c45562745e1a37adb197
|
|
|
|
| |
Change-Id: Ic8a60b7563f5172440fd40788605163a0cca6e30
|
|
Change-Id: I0719d8a6d0f69b367a6ab6f10eb75622dbf12771
|