]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
11 years agors6000.h (RS6000_BTM_HARD_FLOAT): New define.
Peter Bergner [Mon, 5 May 2014 02:18:35 +0000 (21:18 -0500)] 
rs6000.h (RS6000_BTM_HARD_FLOAT): New define.

gcc/
* config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
(RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
(TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
* config/rs6000/rs6000-builtin.def (BU_MISC_1):
Use RS6000_BTM_HARD_FLOAT.
(BU_MISC_2): Likewise.
* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
RS6000_BTM_HARD_FLOAT.
(rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
is explicitly used.
(rs6000_invalid_builtin): Add hard floating builtin support.
(rs6000_expand_builtin): Relax the gcc_assert to allow the new
hard float builtins.
(rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.

gcc/testsuite/
* gcc.target/powerpc/pack02.c (dg-options): Add -mhard-float.
(dg-require-effective-target): Change target to powerpc_fprs.
* gcc.target/powerpc/pack03.c (dg-options): Add -mhard-dfp.
(dg-require-effective-target): Change target to dfprt.

From-SVN: r210056

11 years agoDaily bump.
GCC Administrator [Mon, 5 May 2014 00:16:15 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r210051

11 years agobackport: opts.c (OPT_fif_conversion, [...]): Disable for Og.
Joey Ye [Sun, 4 May 2014 07:05:29 +0000 (07:05 +0000)] 
backport: opts.c (OPT_fif_conversion, [...]): Disable for Og.

2014-05-03  Joey Ye  <joey.ye@arm.com>

        Backport from mainline r209463
        2014-04-17  Joey Ye  <joey.ye@arm.com>

        * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.

From-SVN: r210048

11 years agoDaily bump.
GCC Administrator [Sun, 4 May 2014 00:16:30 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r210045

11 years agoPR 56919 Check _POSIX_MONOTONIC_CLOCK.
Janne Blomqvist [Sat, 3 May 2014 20:56:26 +0000 (23:56 +0300)] 
PR 56919 Check _POSIX_MONOTONIC_CLOCK.

2014-05-03  Janne Blomqvist  <jb@gcc.gnu.org>

Backport from 4.9
PR libfortran/56919
* intrinsics/system_clock.c (GF_CLOCK_MONOTONIC): Check
_POSIX_MONOTONIC_CLOCK as well.

From-SVN: r210041

11 years agobackport: re PR target/61026 (sh-rtems4.11 build of 4.9.0 fails on FreeBSD 10 c+...
Oleg Endo [Sat, 3 May 2014 08:21:24 +0000 (08:21 +0000)] 
backport: re PR target/61026 (sh-rtems4.11 build of 4.9.0 fails on FreeBSD 10 c++ (clang).)

Back port from mainline
PR target/61026
* config/sh/sh.c: Include stdlib headers before everything else.

From-SVN: r210030

11 years agoDaily bump.
GCC Administrator [Sat, 3 May 2014 00:16:33 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r210024

11 years agore PR tree-optimization/60930 (Wrong folding of - ((unsigned long long) a * (unsigned...
Bill Schmidt [Fri, 2 May 2014 21:51:09 +0000 (21:51 +0000)] 
re PR tree-optimization/60930 (Wrong folding of - ((unsigned long long) a * (unsigned long long) (unsigned int)-1))

[gcc]

2014-05-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/60930
* gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
creating a multiply candidate by folding two constant
multiplicands when the result overflows.

[gcc/testsuite]

2014-05-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/60930
* gcc.dg/torture/pr60930.c:  New test.

From-SVN: r210021

11 years ago[AArch64] Fix TARGET_FLOAT and TARGET_SIMD macros.
Kyrylo Tkachov [Fri, 2 May 2014 09:07:06 +0000 (09:07 +0000)] 
[AArch64] Fix TARGET_FLOAT and TARGET_SIMD macros.

* config/aarch64/aarch64.h (TARGET_SIMD): Take AARCH64_ISA_SIMD
into account.
(TARGET_FLOAT): Take AARCH64_ISA_FP into account.

From-SVN: r210004

11 years agoDaily bump.
GCC Administrator [Fri, 2 May 2014 00:16:58 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209994

11 years agoDaily bump.
GCC Administrator [Thu, 1 May 2014 00:16:44 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209964

11 years agobackport: extend.texi (PowerPC Built-in Functions): Document new powerpc extended...
Michael Meissner [Wed, 30 Apr 2014 20:04:12 +0000 (20:04 +0000)] 
backport: extend.texi (PowerPC Built-in Functions): Document new powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.

[gcc]
2014-04-30  Michael Meissner  <meissner@linux.vnet.ibm.com>

Back port from mainline
2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

* doc/extend.texi (PowerPC Built-in Functions): Document new
powerpc extended divide, bcd, pack/unpack 128-bit, builtin
functions.
(PowerPC AltiVec/VSX Built-in Functions): Likewise.

* config/rs6000/predicates.md (const_0_to_3_operand): New
predicate to match 0..3 integer constants.

* config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
to support adding miscellaneous builtin functions.
(BU_DFP_MISC_2): Likewise.
(BU_P7_MISC_1): Likewise.
(BU_P7_MISC_2): Likewise.
(BU_P8V_MISC_3): Likewise.
(BU_MISC_1): Likewise.
(BU_MISC_2): Likewise.
(DIVWE): Add extended divide builtin functions.
(DIVWEO): Likewise.
(DIVWEU): Likewise.
(DIVWEUO): Likewise.
(DIVDE): Likewise.
(DIVDEO): Likewise.
(DIVDEU): Likewise.
(DIVDEUO): Likewise.
(DXEX): Add decimal floating-point builtin functions.
(DXEXQ): Likewise.
(DDEDPD): Likewise.
(DDEDPDQ): Likewise.
(DENBCD): Likewise.
(DENBCDQ): Likewise.
(DIEX): Likewise.
(DIEXQ): Likewise.
(DSCLI): Likewise.
(DSCLIQ): Likewise.
(DSCRI): Likewise.
(DSCRIQ): Likewise.
(CDTBCD): Add new BCD builtin functions.
(CBCDTD): Likewise.
(ADDG6S): Likewise.
(BCDADD): Likewise.
(BCDADD_LT): Likewise.
(BCDADD_EQ): Likewise.
(BCDADD_GT): Likewise.
(BCDADD_OV): Likewise.
(BCDSUB): Likewise.
(BCDSUB_LT): Likewise.
(BCDSUB_EQ): Likewise.
(BCDSUB_GT): Likewise.
(BCDSUB_OV): Likewise.
(PACK_TD): Add new pack/unpack 128-bit type builtin functions.
(UNPACK_TD): Likewise.
(PACK_TF): Likewise.
(UNPACK_TF): Likewise.
(UNPACK_TF_0): Likewise.
(UNPACK_TF_1): Likewise.
(PACK_V1TI): Likewise.
(UNPACK_V1TI): Likewise.

* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
support for decimal floating point builtin functions.
(rs6000_expand_ternop_builtin): Add checks for the new builtin
functions that take constant arguments.
(rs6000_invalid_builtin): Add decimal floating point builtin
support.
(rs6000_init_builtins): Setup long double, _Decimal64, and
_Decimal128 types for new builtin functions.
(builtin_function_type): Set the unsigned flags appropriately for
the new builtin functions.
(rs6000_opt_masks): Add support for decimal floating point builtin
functions.

* config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
floating point builtin functions.
(RS6000_BTM_COMMON): Likewise.
(RS6000_BTI_long_double): Likewise.
(RS6000_BTI_dfloat64): Likewise.
(RS6000_BTI_dfloat128): Likewise.
(long_double_type_internal_node): Likewise.
(dfloat64_type_internal_node): Likewise.
(dfloat128_type_internal_node): Likewise.

* config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
2.07 bcd arithmetic instructions.
(UNSPEC_BCDSUB): Likewise.
(UNSPEC_BCD_OVERFLOW): Likewise.
(UNSPEC_BCD_ADD_SUB): Likewise.
(bcd_add_sub): Likewise.
(BCD_TEST): Likewise.
(bcd<bcd_add_sub>): Likewise.
(bcd<bcd_add_sub>_test): Likewise.
(bcd<bcd_add_sub>_test2): Likewise.
(bcd<bcd_add_sub>_<code>): Likewise.
(peephole2 for combined bcd ops): Likewise.

* config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
decimal floating point builtin functions.
(UNSPEC_DENBCD): Likewise.
(UNSPEC_DXEX): Likewise.
(UNSPEC_DIEX): Likewise.
(UNSPEC_DSCLI): Likewise.
(UNSPEC_DSCRI): Likewise.
(D64_D128): Likewise.
(dfp_suffix): Likewise.
(dfp_ddedpd_<mode>): Likewise.
(dfp_denbcd_<mode>): Likewise.
(dfp_dxex_<mode>): Likewise.
(dfp_diex_<mode>): Likewise.
(dfp_dscli_<mode>): Likewise.
(dfp_dscri_<mode>): Likewise.

* config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
builtin functions.
(UNSPEC_CDTBCD): Likewise.
(UNSPEC_CBCDTD): Likewise.
(UNSPEC_DIVE): Add support for new extended divide builtin
functions.
(UNSPEC_DIVEO): Likewise.
(UNSPEC_DIVEU): Likewise.
(UNSPEC_DIVEUO): Likewise.
(UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
pack/unpack 128-bit types.
(UNSPEC_PACK_128BIT): Likewise.
(idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
(udiv<mode>3): Use idiv_ldiv mode attribute.
(div<mode>3): Likewise.
(addg6s): Add new BCD builtin functions.
(cdtbcd): Likewise.
(cbcdtd): Likewise.
(UNSPEC_DIV_EXTEND): Add support for new extended divide
instructions.
(div_extend): Likewise.
(div<div_extend>_<mode>"): Likewise.
(FP128_64): Add support for new builtin functions to pack/unpack
128-bit types.
(unpack<mode>): Likewise.
(unpacktf_0): Likewise.
(unpacktf_1): Likewise.
(unpack<mode>_dm): Likewise.
(unpack<mode>_nodm): Likewise.
(pack<mode>): Likewise.
(unpackv1ti): Likewise.
(packv1ti): Likewise.

[gcc/testsuite]
2014-04-30  Michael Meissner  <meissner@linux.vnet.ibm.com>

Back port from mainline
2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/pack01.c: New test to test the new pack and
unpack builtin functionss for 128-bit types.
* gcc.target/powerpc/pack02.c: Likewise.
* gcc.target/powerpc/pack03.c: Likewise.
* gcc.target/powerpc/extend-divide-1.c: New test to test extended
divide builtin functionss.
* gcc.target/powerpc/extend-divide-2.c: Likewise.
* gcc.target/powerpc/bcd-1.c: New test for the new BCD builtin
functions.
* gcc.target/powerpc/bcd-2.c: Likewise.
* gcc.target/powerpc/bcd-3.c: Likewise.
* gcc.target/powerpc/dfp-builtin-1.c: New test for the new DFP
builtin functionss.
* gcc.target/powerpc/dfp-builtin-2.c: Likewise.

From-SVN: r209956

11 years agoDaily bump.
GCC Administrator [Wed, 30 Apr 2014 00:17:21 +0000 (00:17 +0000)] 
Daily bump.

From-SVN: r209920

11 years agors6000.md (addti3, subti3): New.
Pat Haugen [Tue, 29 Apr 2014 20:25:59 +0000 (20:25 +0000)] 
rs6000.md (addti3, subti3): New.

* config/rs6000/rs6000.md (addti3, subti3): New.

* gcc.target/powerpc/ti_math1.c: New.
* gcc.target/powerpc/ti_math2.c: New.

From-SVN: r209913

11 years agoDaily bump.
GCC Administrator [Tue, 29 Apr 2014 00:16:30 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209885

11 years agosync.md (AINT mode_iterator): Move definition.
Pat Haugen [Mon, 28 Apr 2014 20:51:58 +0000 (20:51 +0000)] 
sync.md (AINT mode_iterator): Move definition.

* config/rs6000/sync.md (AINT mode_iterator): Move definition.
(loadsync_<mode>): Change mode.
(load_quadpti, store_quadpti): New.
(atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
* config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.

From-SVN: r209877

11 years agotypeck.c (build_reinterpret_cast_1): Pass proper argument to warn() in pedantic.
Daniel Gutson [Mon, 28 Apr 2014 18:14:36 +0000 (18:14 +0000)] 
typeck.c (build_reinterpret_cast_1): Pass proper argument to warn() in pedantic.

* typeck.c (build_reinterpret_cast_1): Pass proper argument to
warn() in pedantic.

From-SVN: r209870

11 years agoconfigure.ac: Tweak GAS check for LEON instructions on SPARC.
Eric Botcazou [Mon, 28 Apr 2014 10:05:29 +0000 (10:05 +0000)] 
configure.ac: Tweak GAS check for LEON instructions on SPARC.

* configure.ac: Tweak GAS check for LEON instructions on SPARC.
* configure: Regenerate.
* config/sparc/sparc.opt (muser-mode): New option.
* config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
for LEON3.
(atomic_compare_and_swap_leon3_1): New instruction for LEON3.
* doc/invoke.texi (SPARC options): Document -muser-mode.

From-SVN: r209852

11 years agoDaily bump.
GCC Administrator [Mon, 28 Apr 2014 00:17:59 +0000 (00:17 +0000)] 
Daily bump.

From-SVN: r209846

11 years agore PR libstdc++/60497 (unique_ptr<T> tries to complete its type T even though it...
Jonathan Wakely [Sun, 27 Apr 2014 16:36:26 +0000 (17:36 +0100)] 
re PR libstdc++/60497 (unique_ptr<T> tries to complete its type T even though it's not required to be a complete type)

PR libstdc++/60497
* include/std/tuple (get): Qualify calls to prevent ADL.
* testsuite/20_util/tuple/60497.cc: New.

From-SVN: r209842

11 years agoDaily bump.
GCC Administrator [Sun, 27 Apr 2014 00:16:47 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209833

11 years agoDaily bump.
GCC Administrator [Sat, 26 Apr 2014 00:16:41 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209816

11 years agore PR target/60941 (miscompilation of firefox javascript interpreter)
Eric Botcazou [Fri, 25 Apr 2014 10:46:18 +0000 (10:46 +0000)] 
re PR target/60941 (miscompilation of firefox javascript interpreter)

PR target/60941
* config/sparc/sparc.md (ashlsi3_extend): Delete.

From-SVN: r209792

11 years agoDaily bump.
GCC Administrator [Fri, 25 Apr 2014 00:16:28 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209770

11 years agoDaily bump.
GCC Administrator [Thu, 24 Apr 2014 00:16:50 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209729

11 years agobackport: re PR testsuite/60672 (FAIL: g++.dg/cpp1y/auto-fn25.C -std=gnu++1y (test...
Michael Meissner [Wed, 23 Apr 2014 23:16:54 +0000 (23:16 +0000)] 
backport: re PR testsuite/60672 (FAIL: g++.dg/cpp1y/auto-fn25.C -std=gnu++1y  (test for errors, line 7))

[gcc]
2014-04-22  Michael Meissner  <meissner@linux.vnet.ibm.com>

Back port from main line:
2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
for ISA 2.07.

* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
vbpermq builtins.

* config/rs6000/altivec.md (UNSPEC_VBPERMQ): Add support for the
vbpermq instruction.
(altivec_vbpermq): Likewise.

PR target/60672
* config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
enable use of xxsldwi and xxpermdi builtin functions.
(vec_xxpermdi): Likewise.

* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
Document use of vec_xxsldwi and vec_xxpermdi builtins.

[gcc/testsuite]
2014-04-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

Back port from main line:
2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/p8vector-vbpermq.c: New test to test the
vbpermq builtin.

From-SVN: r209727

11 years agobackport: re PR testsuite/60672 (FAIL: g++.dg/cpp1y/auto-fn25.C -std=gnu++1y (test...
Michael Meissner [Wed, 23 Apr 2014 23:16:05 +0000 (23:16 +0000)] 
backport: re PR testsuite/60672 (FAIL: g++.dg/cpp1y/auto-fn25.C -std=gnu++1y  (test for errors, line 7))

[gcc]
2014-04-22  Michael Meissner  <meissner@linux.vnet.ibm.com>

Back port from main line:
2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
for ISA 2.07.

* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
vbpermq builtins.

* config/rs6000/altivec.md (UNSPEC_VBPERMQ): Add support for the
vbpermq instruction.
(altivec_vbpermq): Likewise.

PR target/60672
* config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
enable use of xxsldwi and xxpermdi builtin functions.
(vec_xxpermdi): Likewise.

* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
Document use of vec_xxsldwi and vec_xxpermdi builtins.

[gcc/testsuite]
2014-04-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

Back port from main line:
2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/p8vector-vbpermq.c: New test to test the
vbpermq builtin.

From-SVN: r209726

11 years agobackport: re PR target/60909 (ICE: in extract_insn, at recog.c:2202 (unrecognizable...
Uros Bizjak [Wed, 23 Apr 2014 17:53:56 +0000 (19:53 +0200)] 
backport: re PR target/60909 (ICE: in extract_insn, at recog.c:2202 (unrecognizable insn) with -mrdrnd and __builtin_ia32_rdrand32_step())

        Backport from mainline
        2014-04-21  Uros Bizjak  <ubizjak@gmail.com>

        PR target/60909
        * config/i386/i386.c (ix86_expand_builtin)
        <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
        register for target RTX.
        <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.

testsuite/ChangeLog:

        Backport from mainline
        2014-04-21  Uros Bizjak  <ubizjak@gmail.com>

        PR target/60909
        * gcc.target/i386/pr60909-1.c: New test.
        * gcc.target/i386/pr60909-2.c: Ditto.

From-SVN: r209715

11 years agobackport: [multiple changes]
Richard Biener [Wed, 23 Apr 2014 12:49:04 +0000 (12:49 +0000)] 
backport: [multiple changes]

2014-04-23  Richard Biener  <rguenther@suse.de>

Backport from mainline
2014-04-02  Richard Biener  <rguenther@suse.de>

PR middle-end/60729
* optabs.c (expand_abs_nojump): Honor flag_trapv only for
MODE_INTs.  Properly use negv_optab.
(expand_abs): Likewise.

* g++.dg/vect/pr60729.cc: New testcase.

2014-04-03  Richard Biener  <rguenther@suse.de>

PR tree-optimization/60740
* graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
over all GIMPLE_COND operands.

* gcc.dg/graphite/pr60740.c: New testcase.

From-SVN: r209697

11 years agore PR lto/60635 (ICE when mixing C and Fortran lto1: error: use operand missing for...
Richard Biener [Wed, 23 Apr 2014 12:45:23 +0000 (12:45 +0000)] 
re PR lto/60635 (ICE when mixing C and Fortran lto1: error: use operand missing for stmt)

2014-04-23  Richard Biener  <rguenther@suse.de>

PR middle-end/60635
* gimplify.c (gimple_regimplify_operands): Update the
re-gimplifed stmt.

* gfortran.dg/lto/pr60635_0.f90: New testcase.
* gfortran.dg/lto/pr60635_1.c: Likewise.

From-SVN: r209696

11 years agoDaily bump.
GCC Administrator [Wed, 23 Apr 2014 00:16:52 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209667

11 years agoDaily bump.
GCC Administrator [Tue, 22 Apr 2014 00:16:14 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209551

11 years agore PR target/60735 (GCC targeting E500 with SPE has errors with the _Decimal64 type)
Michael Meissner [Mon, 21 Apr 2014 22:03:51 +0000 (22:03 +0000)] 
re PR target/60735 (GCC targeting E500 with SPE has errors with the _Decimal64 type)

[gcc]
2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/60735
* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
If mode is DDmode and TARGET_E500_DOUBLE allow move.

* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
more debug information for E500 if -mdebug=reg.

[gcc/testsuite]
2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/60735
* gcc.target/powerpc/pr60735.c: New test.  Insure _Decimal64 does
not cause errors if -mspe.

From-SVN: r209547

11 years agoDaily bump.
GCC Administrator [Mon, 21 Apr 2014 00:16:38 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209540

11 years agoDaily bump.
GCC Administrator [Sun, 20 Apr 2014 00:16:36 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209532

11 years agoDaily bump.
GCC Administrator [Sat, 19 Apr 2014 00:16:32 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209528

11 years agoaarch64: Fix build error in aarch64_register_move_cost
Richard Henderson [Fri, 18 Apr 2014 15:55:35 +0000 (08:55 -0700)] 
aarch64: Fix build error in aarch64_register_move_cost

        * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
        to GET_MODE_SIZE, not a reg_class_t.

From-SVN: r209519

11 years agovsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
Bill Schmidt [Fri, 18 Apr 2014 13:29:30 +0000 (13:29 +0000)] 
vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.

[gcc]

2014-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for
little-endian.
(vsx_xxmrglw_<mode>): Likewise.

[gcc/testsuite]

2014-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.dg/vmx/merge-vsx.c: Add V4SI and V4SF tests.
* gcc.dg/vmx/merge-vsx-be-order.c: Likewise.

From-SVN: r209515

11 years agoDaily bump.
GCC Administrator [Fri, 18 Apr 2014 00:16:20 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209511

11 years agoDaily bump.
GCC Administrator [Thu, 17 Apr 2014 00:16:35 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209454

11 years agoDaily bump.
GCC Administrator [Wed, 16 Apr 2014 00:16:45 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209437

11 years agorevert: [multiple changes]
Bill Schmidt [Tue, 15 Apr 2014 18:30:21 +0000 (18:30 +0000)] 
revert: [multiple changes]

2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/60839
Revert the following patch

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Back port mainline subversion id 209025.
2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/60735
* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
software floating point or no floating point registers, do not
allow any type in the FPRs.  Eliminate a test for SPE SIMD types
in GPRs that occurs after we tested for GPRs that would never be
true.

* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
specifically allow DDmode, since that does not use the SPE SIMD
instructions.

From-SVN: r209430

11 years agoDaily bump.
GCC Administrator [Tue, 15 Apr 2014 00:16:30 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209397

11 years agoacinclude.m4: Move s390* case from RTM to HTM check.
Andreas Krebbel [Mon, 14 Apr 2014 13:40:00 +0000 (13:40 +0000)] 
acinclude.m4: Move s390* case from RTM to HTM check.

2014-04-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

* acinclude.m4: Move s390* case from RTM to HTM check.
* configure: Regenerate.

From-SVN: r209370

11 years agoDaily bump.
GCC Administrator [Mon, 14 Apr 2014 00:16:53 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209350

11 years agoDaily bump.
GCC Administrator [Sun, 13 Apr 2014 00:16:53 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209342

11 years agobackport: re PR fortran/60810 (list directed io from array results in end of file)
Jerry DeLisle [Sat, 12 Apr 2014 22:52:10 +0000 (22:52 +0000)] 
backport: re PR fortran/60810 (list directed io from array results in end of file)

2014-04-12  Jerry DeLisle  <jvdelisle@gcc.gnu>

Backport from mainline
PR libfortran/60810
io/unit.c (is_trim_ok): If internal unit is array, do not trim.

Backport from mainline
PR libfortran/60810
gfortran.dg/arrayio_13.f90: New test.

From-SVN: r209340

11 years agoDaily bump.
GCC Administrator [Sat, 12 Apr 2014 00:16:40 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209331

11 years agofmt_en.f90: Gate test on effective_target fd_truncate.
Hans-Peter Nilsson [Fri, 11 Apr 2014 21:07:23 +0000 (21:07 +0000)] 
fmt_en.f90: Gate test on effective_target fd_truncate.

* gfortran.dg/fmt_en.f90: Gate test on effective_target
fd_truncate.

From-SVN: r209325

11 years agoImprove RANDOM_SEED documentation example.
Janne Blomqvist [Fri, 11 Apr 2014 12:07:10 +0000 (15:07 +0300)] 
Improve RANDOM_SEED documentation example.

2014-04-11  Janne Blomqvist  <jb@gcc.gnu.org>

* intrinsic.texi (RANDOM_SEED): Improve example.

From-SVN: r209302

11 years agohtm-nofloat-1.c: Rename to ...
Andreas Krebbel [Fri, 11 Apr 2014 10:47:36 +0000 (10:47 +0000)] 
htm-nofloat-1.c: Rename to ...

2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

* gcc.target/s390/htm-nofloat-1.c: Rename to ...
* gcc.target/s390/htm-nofloat-compile-1.c: ... this one.
* gcc.target/s390/htm-nofloat-2.c: Add check for htm target and
rename to ...
* gcc.target/s390/htm-nofloat-1.c: ... this one.
* gcc.target/s390/s390.exp: Make sure the assembler supports htm
instructions as well.

From-SVN: r209298

11 years agohtm-builtins-compile-1.c: Replace long long with long.
Andreas Krebbel [Fri, 11 Apr 2014 10:45:17 +0000 (10:45 +0000)] 
htm-builtins-compile-1.c: Replace long long with long.

2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

* gcc.target/s390/htm-builtins-compile-1.c: Replace long long with
long.

From-SVN: r209297

11 years agohtm-builtins-compile-1.c: Remove htm check.
Andreas Krebbel [Fri, 11 Apr 2014 10:44:17 +0000 (10:44 +0000)] 
htm-builtins-compile-1.c: Remove htm check.

2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

* gcc.target/s390/htm-builtins-compile-1.c: Remove htm check.
* gcc.target/s390/htm-builtins-compile-2.c: Remove htm check.

From-SVN: r209296

11 years agoDaily bump.
GCC Administrator [Fri, 11 Apr 2014 00:16:49 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209288

11 years agore PR rtl-optimization/60769 (ICE: Max. number of generated reload insns per insn...
Vladimir Makarov [Thu, 10 Apr 2014 23:22:10 +0000 (23:22 +0000)] 
re PR rtl-optimization/60769 (ICE: Max. number of generated reload insns per insn is achieved (90))

2014-04-10  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/60769
* lra-constraints.c (simplify_operand_subreg): Force reload of
paradoxical subreg if it is not in the class contents.

2014-04-10  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/60769
* g++.dg/pr60769.C: New.

From-SVN: r209285

11 years agobackport: re PR tree-optimization/60502 (ICE reassociation and vector types.)
Jakub Jelinek [Thu, 10 Apr 2014 09:35:39 +0000 (11:35 +0200)] 
backport: re PR tree-optimization/60502 (ICE reassociation and vector types.)

Backport from mainline
2014-03-12  Jakub Jelinek  <jakub@redhat.com>
    Marc Glisse  <marc.glisse@inria.fr>

PR tree-optimization/60502
* tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
instead of build_low_bits_mask.

* gcc.c-torture/compile/pr60502.c: New test.

2013-06-13  Marc Glisse  <marc.glisse@inria.fr>

* tree.c (build_all_ones_cst): New function.
* tree.h (build_all_ones_cst): Declare it.

2013-05-10  Marc Glisse  <marc.glisse@inria.fr>

* tree.c (build_minus_one_cst): New function.
* tree.h (build_minus_one_cst): Declare new function.

From-SVN: r209274

11 years agobackport: re PR target/60693 (ICE on funny memcpy)
Jakub Jelinek [Thu, 10 Apr 2014 07:57:09 +0000 (09:57 +0200)] 
backport: re PR target/60693 (ICE on funny memcpy)

Backport from mainline
2014-03-28  Jakub Jelinek  <jakub@redhat.com>

PR target/60693
* config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
also if addr has VOIDmode.

* gcc.target/i386/pr60693.c: New test.

From-SVN: r209268

11 years agobackport: re PR c++/60689 (Bogus error with atomic::exchange)
Jakub Jelinek [Thu, 10 Apr 2014 07:54:08 +0000 (09:54 +0200)] 
backport: re PR c++/60689 (Bogus error with atomic::exchange)

Backport from mainline
2014-03-28  Jakub Jelinek  <jakub@redhat.com>

PR c++/60689
* c-tree.h (c_build_function_call_vec): New prototype.
* c-typeck.c (build_function_call_vec): Don't call
resolve_overloaded_builtin here.
(c_build_function_call_vec): New wrapper function around
build_function_call_vec.  Call resolve_overloaded_builtin here.
(convert_lvalue_to_rvalue, build_function_call, build_atomic_assign):
Call c_build_function_call_vec instead of build_function_call_vec.
* c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
* c-decl.c (finish_decl): Likewise.

* c-common.c (add_atomic_size_parameter): When creating new
params vector, push the size argument first.

* c-c++-common/pr60689.c: New test.

From-SVN: r209267

11 years agobackport: re PR debug/60603 (.debug_macinfo/.debug_macro has wrong line numbers for...
Jakub Jelinek [Thu, 10 Apr 2014 07:51:52 +0000 (09:51 +0200)] 
backport: re PR debug/60603 (.debug_macinfo/.debug_macro has wrong line numbers for built-in macros)

Backport from mainline
2014-03-22  Jakub Jelinek  <jakub@redhat.com>

PR debug/60603
* c-opts.c (c_finish_options): Restore cb_file_change call to
<built-in>.

* cpp.c (gfc_cpp_init): Restore cb_change_file call to
<built-in>.

* gcc.dg/debug/dwarf2/dwarf2-macro2.c: New test.

From-SVN: r209265

11 years agobackport: re PR target/60516 (cc1plus crashes compiling a method with a huge struct...
Jakub Jelinek [Thu, 10 Apr 2014 07:49:02 +0000 (09:49 +0200)] 
backport: re PR target/60516 (cc1plus crashes compiling a method with a huge struct as argument)

Backport from mainline
2014-03-17  Jakub Jelinek  <jakub@redhat.com>

PR target/60516
* config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
note creation for the 2010-08-31 changes.

* gcc.target/i386/pr60516.c: New test.

From-SVN: r209264

11 years agobackport: re PR middle-end/36282 (Spurious warning "asm declaration ignored due to...
Jakub Jelinek [Thu, 10 Apr 2014 07:47:55 +0000 (09:47 +0200)] 
backport: re PR middle-end/36282 (Spurious warning "asm declaration ignored due to conflict with previous rename")

Backport from mainline
2014-03-13  Jakub Jelinek  <jakub@redhat.com>

PR middle-end/36282
* c-pragma.c (apply_pragma_weak): Only look at
TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)) if
DECL_ASSEMBLER_NAME_SET_P (decl).
(maybe_apply_pending_pragma_weaks): Exit early if
vec_safe_is_empty (pending_weaks) rather than only when
!pending_weaks.
(maybe_apply_pragma_weak): Likewise.  If !DECL_ASSEMBLER_NAME_SET_P,
set assembler name back to NULL afterwards.

* c-c++-common/pr36282-1.c: New test.
* c-c++-common/pr36282-2.c: New test.
* c-c++-common/pr36282-3.c: New test.
* c-c++-common/pr36282-4.c: New test.

From-SVN: r209263

11 years agobackport: re PR target/58595 (internal compiler error: in gen_movsi when compiling...
Jakub Jelinek [Thu, 10 Apr 2014 07:45:21 +0000 (09:45 +0200)] 
backport: re PR target/58595 (internal compiler error: in gen_movsi when compiling on arm some files of lttng-tools with -fPIE)

Backport from mainline
2014-03-06  Jakub Jelinek  <jakub@redhat.com>
    Meador Inge  <meadori@codesourcery.com>

PR target/58595
* config/arm/arm.c (arm_tls_symbol_p): Remove.
(arm_legitimize_address): Call legitimize_tls_address for any
arm_tls_referenced_p expression, handle constant addend.  Call it
before testing for !TARGET_ARM.
(thumb_legitimize_address): Don't handle arm_tls_symbol_p here.

2014-03-06  Jakub Jelinek  <jakub@redhat.com>

PR target/58595
* gcc.dg/tls/pr58595.c: New test.

From-SVN: r209262

11 years agoDaily bump.
GCC Administrator [Thu, 10 Apr 2014 00:16:53 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209259

11 years agobackport: [multiple changes]
Bill Schmidt [Wed, 9 Apr 2014 20:15:57 +0000 (20:15 +0000)] 
backport: [multiple changes]

2014-04-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport from mainline r208750
2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_expand_vector_set):  Generate a
pattern for vector nor instead of subtract from splat(-1).
(altivec_expand_vec_perm_const_le): Likewise.

Backport from mainline r209235
2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
instead of vnor to exploit possible fusion opportunity in the
future.
(altivec_expand_vec_perm_const_le): Likewise.

From-SVN: r209255

11 years agoRevert following patch 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
Bill Schmidt [Wed, 9 Apr 2014 20:07:55 +0000 (20:07 +0000)] 
Revert following patch 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>

2014-04-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Revert following patch
2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>

Backport from mainline
2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>

* config/rs6000/sync.md (AINT mode_iterator): Move definition.
(loadsync_<mode>): Change mode.
(load_quadpti, store_quadpti): New.
(atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
* config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.

From-SVN: r209254

11 years agobackport: re PR target/57589 (Linux powerpc -mcpu=native returns pointer to variable...
Bill Schmidt [Wed, 9 Apr 2014 19:42:14 +0000 (19:42 +0000)] 
backport: re PR target/57589 (Linux powerpc -mcpu=native returns pointer to variable on stack in driver-rs6000.c)

2014-04-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport from mainline r202642
2013-09-17  Alan Modra  <amodra@gmail.com>

PR target/57589
* config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
patch (r199972).

From-SVN: r209250

11 years agoClean up ChangeLog entries
William Schmidt [Wed, 9 Apr 2014 19:15:00 +0000 (19:15 +0000)] 
Clean up ChangeLog entries

From-SVN: r209249

11 years agoCheck if GCC uses assembler cfi support
Rainer Orth [Wed, 9 Apr 2014 14:54:21 +0000 (14:54 +0000)] 
Check if GCC uses assembler cfi support

* config/generic/asmcfi.h: Also check for
__GCC_HAVE_DWARF2_CFI_ASM.

From-SVN: r209243

11 years agoDaily bump.
GCC Administrator [Wed, 9 Apr 2014 00:16:47 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209232

11 years agosync.md (AINT mode_iterator): Move definition.
Pat Haugen [Tue, 8 Apr 2014 22:17:24 +0000 (22:17 +0000)] 
sync.md (AINT mode_iterator): Move definition.

* config/rs6000/sync.md (AINT mode_iterator): Move definition.
(loadsync_<mode>): Change mode.
(load_quadpti, store_quadpti): New.
(atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
* config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.

* gcc.target/powerpc/atomic_load_store-p8.c: New.

From-SVN: r209229

11 years agoDaily bump.
GCC Administrator [Tue, 8 Apr 2014 00:16:51 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209207

11 years agore PR ipa/60640 (ICE edge points to wrong declaration / verify_cgraph_node failed)
Martin Jambor [Mon, 7 Apr 2014 09:36:10 +0000 (11:36 +0200)] 
re PR ipa/60640 (ICE edge points to wrong declaration / verify_cgraph_node failed)

2014-04-07  Martin Jambor  <mjambor@suse.cz>

PR ipa/60640
* ipa-cp.c (propagate_constants_accross_call): Do not propagate
accross thunks.

testsuite/
        * g++.dg/ipa/pr60640-1.C: New test.
        * g++.dg/ipa/pr60640-2.C: Likewise.
        * g++.dg/ipa/pr60640-3.C: Likewise.

From-SVN: r209180

11 years agoChangeLog: Fix the date.
Dominique d'Humieres [Mon, 7 Apr 2014 08:10:54 +0000 (10:10 +0200)] 
ChangeLog: Fix the date.

2014-04-07  Dominique d'Humieres <dominiq@lps.ens.fr>

gcc:

* ChangeLog: Fix the date.

gcc/c-family:

* ChangeLog: Fix the date.

gcc/objc:

* ChangeLog: Fix the date.

From-SVN: r209177

11 years agobackport: re PR target/48094 (ld: warning: section has unexpectedly large size errors...
Dominique d'Humieres [Mon, 7 Apr 2014 06:40:18 +0000 (08:40 +0200)] 
backport: re PR target/48094 (ld: warning: section has unexpectedly large size errors in objc/obj-c++ lto)

2014-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>

Backport from mainline
2013-09-14  Iain Sandoe <iains@gcc.gnu.org>

gcc:

PR target/48094
* config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is seen.
(darwin_objc1_section): Likewise.
(darwin_file_end): Emit Image Info section when required.

gcc/c-family:

PR target/48094
* c.opt (fgnu-runtime, fnext-runtime, fobjc-abi-version,
fobjc-gc, freplace-objc-classes): Accept for LTO.

gcc/objc:

PR target/48094
* objc-next-runtime-abi-01.c (generate_objc_image_info): Remove.
(objc_generate_v1_next_metadata): Remove generation of ImageInfo.
* objc-next-runtime-abi-02.c (generate_v2_objc_image_info): Remove.
(objc_generate_v2_next_metadata): Remove generation of ImageInfo.

From-SVN: r209175

11 years agoDaily bump.
GCC Administrator [Mon, 7 Apr 2014 00:16:27 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209172

11 years agore PR target/54083 (FAIL: gcc.dg/torture/pr53922.c on *-apple-darwin*)
Dominique d'Humieres [Sun, 6 Apr 2014 10:38:16 +0000 (12:38 +0200)] 
re PR target/54083 (FAIL: gcc.dg/torture/pr53922.c on *-apple-darwin*)

2014-04-06  Dominique d'Humieres  <dominiq@lps.ens.fr>
    Iain Sandoe <iain@codesourcery.com>

PR target/54083
* gcc.dg/attr-weakref-1.c: Allow the test on darwin with
the additional options -Wl,-undefined,dynamic_lookup and
-Wl,-flat_namespace
* gcc.dg/torture/pr53922.c: Additional option
-Wl,-flat_namespace for darwin[89].

Co-Authored-By: Iain Sandoe <iain@codesourcery.com>
From-SVN: r209161

11 years agoDaily bump.
GCC Administrator [Sun, 6 Apr 2014 00:16:28 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209159

11 years ago2012-04-05 Dominique d'Humieres <dominiq@lps.ens.fr>
Dominique d'Humieres [Sat, 5 Apr 2014 12:32:24 +0000 (14:32 +0200)] 
2012-04-05  Dominique d'Humieres  <dominiq@lps.ens.fr>

ChangeLog: Fix date.

From-SVN: r209154

11 years agore PR target/54407 (FAIL: 30_threads/condition_variable/54185.cc execution test ...
Dominique d'Humieres [Sat, 5 Apr 2014 12:25:37 +0000 (14:25 +0200)] 
re PR target/54407 (FAIL: 30_threads/condition_variable/54185.cc execution test  program timed out on powerpc-apple-darwin9 and x86_64-apple-darwin10)

2012-04-06  Dominique d'Humieres  <dominiq@lps.ens.fr>
    Jack Howarth <howarth@bromo.med.uc.edu>

PR target/54407
* 30_threads/condition_variable/54185.cc: Skip for darwin < 11.

Co-Authored-By: Jack Howarth <howarth@bromo.med.uc.edu>
From-SVN: r209152

11 years agoApply from mainline 2014-01-28 Alan Modra <amodra@gmail.com>
Alan Modra [Sat, 5 Apr 2014 10:26:19 +0000 (20:56 +1030)] 
Apply from mainline 2014-01-28 Alan Modra <amodra@gmail.com>

Apply from mainline
2014-01-28  Alan Modra  <amodra@gmail.com>
* Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
* configure.ac <recursive call for build != host>: Define
GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
and LD_FOR_BUILD too.
* configure: Regenerate.

From-SVN: r209149

11 years agoDaily bump.
GCC Administrator [Sat, 5 Apr 2014 00:16:48 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r209136

11 years agobackport: rs6000.c (fusion_gpr_load_p): Refuse optimization if it would clobber the...
Ulrich Weigand [Fri, 4 Apr 2014 17:00:50 +0000 (17:00 +0000)] 
backport: rs6000.c (fusion_gpr_load_p): Refuse optimization if it would clobber the stack pointer, even temporarily.

Backport from mainline r208895:
2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

* config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
if it would clobber the stack pointer, even temporarily.

From-SVN: r209122

11 years agobackport: extend.texi (PowerPC AltiVec/VSX Built-in Functions): Document vec_vgbbd.
Bill Schmidt [Fri, 4 Apr 2014 15:15:29 +0000 (15:15 +0000)] 
backport: extend.texi (PowerPC AltiVec/VSX Built-in Functions): Document vec_vgbbd.

[gcc]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Back port from main line:
2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>

* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
Document vec_vgbbd.

From-SVN: r209117

11 years agobackport: re PR target/60735 (GCC targeting E500 with SPE has errors with the _Decima...
Bill Schmidt [Fri, 4 Apr 2014 15:14:01 +0000 (15:14 +0000)] 
backport: re PR target/60735 (GCC targeting E500 with SPE has errors with the _Decimal64 type)

[gcc]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Back port mainline subversion id 209025.
2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/60735
* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
software floating point or no floating point registers, do not
allow any type in the FPRs.  Eliminate a test for SPE SIMD types
in GPRs that occurs after we tested for GPRs that would never be
true.

* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
specifically allow DDmode, since that does not use the SPE SIMD
instructions.

From-SVN: r209116

11 years agobackport: rs6000.c (IN_NAMED_SECTION): New macro.
Bill Schmidt [Fri, 4 Apr 2014 15:12:10 +0000 (15:12 +0000)] 
backport: rs6000.c (IN_NAMED_SECTION): New macro.

[gcc]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport from mainline r205308
2013-11-23  David Edelsohn  <dje.gcc@gmail.com>

* config/rs6000/rs6000.c (IN_NAMED_SECTION): New macro.
(rs6000_xcoff_select_section): Place decls with stricter alignment
into named sections.
(rs6000_xcoff_unique_section): Allow unique sections for
uninitialized data with strict alignment.

[gcc/testsuite]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport from mainline
2013-04-05  David Edelsohn  <dje.gcc@gmail.com>

* gcc.target/powerpc/sd-vsx.c: Skip on AIX.
* gcc.target/powerpc/sd-pwr6.c: Same.

From-SVN: r209115

11 years agobackport: [multiple changes]
Bill Schmidt [Fri, 4 Apr 2014 15:10:24 +0000 (15:10 +0000)] 
backport: [multiple changes]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Back port from trunk
2013-04-25  Alan Modra  <amodra@gmail.com>

PR target/57052
* config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
(rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
Repeat for many other rotate/shift and mask patterns using subregs.
Name lshiftrt insns.
(ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
on WORDS_BIG_ENDIAN.

2013-06-07  Alan Modra  <amodra@gmail.com>

* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
override user -mfp-in-toc.
(offsettable_ok_by_alignment): Consider just the current access
rather than the whole object, unless BLKmode.  Handle
CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
(use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
for -mcmodel=medium.
* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
override user -mfp-in-toc or -msum-in-toc.  Default to
-mno-fp-in-toc for -mcmodel=medium.

2013-06-18  Alan Modra  <amodra@gmail.com>

* config/rs6000/rs6000.h (enum data_align): New.
(LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
(DATA_ABI_ALIGNMENT): Define.
(CONSTANT_ALIGNMENT): Correct comment.
* config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
* config/rs6000/rs6000.c (rs6000_data_alignment): New function.

2013-07-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

* config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
Require GOT register as additional operand in UNSPEC.
("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.

2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>

* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
force flag_ira_loop_pressure if set via command line.

2014-02-06  Alan Modra  <amodra@gmail.com>

PR target/60032
* config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
change SDmode to DDmode when lra_in_progress.

From-SVN: r209114

11 years agobackport: vector.md (VEC_L): Add V1TI mode to vector types.
Bill Schmidt [Fri, 4 Apr 2014 15:08:45 +0000 (15:08 +0000)] 
backport: vector.md (VEC_L): Add V1TI mode to vector types.

[gcc]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Back port from trunk
2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
(VEC_M): Likewise.
(VEC_N): Likewise.
(VEC_R): Likewise.
(VEC_base): Likewise.
(mov<MODE>, VEC_M modes): If we are loading TImode into VSX
registers, we need to swap double words in little endian mode.

* config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
to be a container mode for 128-bit integer operations added in ISA
2.07.  Unlike TImode and PTImode, the preferred register set is
the Altivec/VMX registers for the 128-bit operations.

* config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
declarations.
(rs6000_split_128bit_ok_p): Likewise.

* config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
macros for creating ISA 2.07 normal and overloaded builtin
functions with 3 arguments.
(BU_P8V_OVERLOAD_3): Likewise.
(VPERM_1T): Add support for V1TImode in 128-bit vector operations
for use as overloaded functions.
(VPERM_1TI_UNS): Likewise.
(VSEL_1TI): Likewise.
(VSEL_1TI_UNS): Likewise.
(ST_INTERNAL_1ti): Likewise.
(LD_INTERNAL_1ti): Likewise.
(XXSEL_1TI): Likewise.
(XXSEL_1TI_UNS): Likewise.
(VPERM_1TI): Likewise.
(VPERM_1TI_UNS): Likewise.
(XXPERMDI_1TI): Likewise.
(SET_1TI): Likewise.
(LXVD2X_V1TI): Likewise.
(STXVD2X_V1TI): Likewise.
(VEC_INIT_V1TI): Likewise.
(VEC_SET_V1TI): Likewise.
(VEC_EXT_V1TI): Likewise.
(EQV_V1TI): Likewise.
(NAND_V1TI): Likewise.
(ORC_V1TI): Likewise.
(VADDCUQ): Add support for 128-bit integer arithmetic instructions
added in ISA 2.07.  Add both normal 'altivec' builtins, and the
overloaded builtin.
(VADDUQM): Likewise.
(VSUBCUQ): Likewise.
(VADDEUQM): Likewise.
(VADDECUQ): Likewise.
(VSUBEUQM): Likewise.
(VSUBECUQ): Likewise.

* config/rs6000/rs6000-c.c (__int128_type): New static to hold
__int128_t and __uint128_t types.
(__uint128_type): Likewise.
(altivec_categorize_keyword): Add support for vector __int128_t,
vector __uint128_t, vector __int128, and vector unsigned __int128
as a container type for TImode operations that need to be done in
VSX/Altivec registers.
(rs6000_macro_to_expand): Likewise.
(altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
to support 128-bit integer instructions vaddcuq, vadduqm,
vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
(altivec_resolve_overloaded_builtin): Add support for V1TImode.

* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
for V1TImode, and set up preferences to use VSX/Altivec
registers.  Setup VSX reload handlers.
(rs6000_debug_reg_global): Likewise.
(rs6000_init_hard_regno_mode_ok): Likewise.
(rs6000_preferred_simd_mode): Likewise.
(vspltis_constant): Do not allow V1TImode as easy altivec
constants.
(easy_altivec_constant): Likewise.
(output_vec_const_move): Likewise.
(rs6000_expand_vector_set): Convert V1TImode set and extract to
simple move.
(rs6000_expand_vector_extract): Likewise.
(reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
addressing.
(rs6000_const_vec): Add support for V1TImode.
(rs6000_emit_le_vsx_load): Swap double words when loading or
storing TImode/V1TImode.
(rs6000_emit_le_vsx_store): Likewise.
(rs6000_emit_le_vsx_move): Likewise.
(rs6000_emit_move): Add support for V1TImode.
(altivec_expand_ld_builtin): Likewise.
(altivec_expand_st_builtin): Likewise.
(altivec_expand_vec_init_builtin): Likewise.
(altivec_expand_builtin): Likewise.
(rs6000_init_builtins): Add support for V1TImode type.  Add
support for ISA 2.07 128-bit integer builtins.  Define type names
for the VSX/Altivec vector types.
(altivec_init_builtins): Add support for overloaded vector
functions with V1TImode type.
(rs6000_preferred_reload_class): Prefer Altivec registers for
V1TImode.
(rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
external function.
(rs6000_split_128bit_ok_p): Likewise.
(rs6000_handle_altivec_attribute): Create V1TImode from vector
__int128_t and vector __uint128_t.

* config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
and mode attributes.
(VSX_M): Likewise.
(VSX_M2): Likewise.
(VSm): Likewise.
(VSs): Likewise.
(VSr): Likewise.
(VSv): Likewise.
(VS_scalar): Likewise.
(VS_double): Likewise.
(vsx_set_v1ti): New builtin function to create V1TImode from
TImode.

* config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say
whether we support the ISA 2.07 128-bit integer arithmetic
instructions.
(ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
(enum rs6000_builtin_type_index): Add fields to hold V1TImode
and TImode types for use with the builtin functions.
(V1TI_type_node): Likewise.
(unsigned_V1TI_type_node): Likewise.
(intTI_type_internal_node): Likewise.
(uintTI_type_internal_node): Likewise.

* config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA
2.07 128-bit builtin functions.
(UNSPEC_VADDEUQM): Likewise.
(UNSPEC_VADDECUQ): Likewise.
(UNSPEC_VSUBCUQ): Likewise.
(UNSPEC_VSUBEUQM): Likewise.
(UNSPEC_VSUBECUQ): Likewise.
(VM): Add V1TImode to vector mode iterators.
(VM2): Likewise.
(VI_unit): Likewise.
(altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
(altivec_vaddcuq): Likewise.
(altivec_vsubuqm): Likewise.
(altivec_vsubcuq): Likewise.
(altivec_vaddeuqm): Likewise.
(altivec_vaddecuq): Likewise.
(altivec_vsubeuqm): Likewise.
(altivec_vsubecuq): Likewise.

* config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
mode iterators.
(BOOL_128): Likewise.
(BOOL_REGS_OUTPUT): Likewise.
(BOOL_REGS_OP1): Likewise.
(BOOL_REGS_OP2): Likewise.
(BOOL_REGS_UNARY): Likewise.
(BOOL_REGS_AND_CR0): Likewise.

* config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
128-bit integer builtin support.
(vec_vadduqm): Likewise.
(vec_vaddecuq): Likewise.
(vec_vaddeuqm): Likewise.
(vec_vsubecuq): Likewise.
(vec_vsubeuqm): Likewise.
(vec_vsubcuq): Likewise.
(vec_vsubuqm): Likewise.

* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
128-bit integer add/subtract to ISA 2.07.

[gcc/testsuite]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Back port from trunk
2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/p8vector-int128-1.c: New test to test ISA
2.07 128-bit arithmetic.
* gcc.target/powerpc/p8vector-int128-2.c: Likewise.

* gcc.target/powerpc/timode_off.c: Restrict cpu type to power5,
due to when TImode is allowed in VSX registers, the allowable
address modes for TImode is just a single indirect address in
order for the value to be loaded and store in either GPR or VSX
registers.  This affects the generated code, and it would cause
this test to fail, when such an option is used.

From-SVN: r209113

11 years agobackport: [multiple changes]
Bill Schmidt [Fri, 4 Apr 2014 15:05:34 +0000 (15:05 +0000)] 
backport: [multiple changes]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Apply mainline r207798
2014-02-26  Alan Modra  <amodra@gmail.com>
PR target/58675
PR target/57935
* config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
find_replacement on parts of insn rtl that might be reloaded.

Backport from mainline r208287
2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
constraint on constants to permit them being loaded into
GENERAL_REGS or BASE_REGS.

From-SVN: r209112

11 years agobackport: re PR target/60137 (Code fails with -mcpu=power8 -O3 -mno-vsx)
Bill Schmidt [Fri, 4 Apr 2014 15:02:38 +0000 (15:02 +0000)] 
backport: re PR target/60137 (Code fails with -mcpu=power8 -O3 -mno-vsx)

[gcc]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport from mainline r207699.
2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/60137
* config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
for VSX/Altivec vectors that land in GPR registers.

Backport from mainline r207808.
2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/60203
* config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
(mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
into 64-bit and 32-bit moves.  On 64-bit moves, add support for
using direct move instructions on ISA 2.07.  Also adjust
instruction length for 64-bit.
(mov<mode>_64bit, TFmode/TDmode): Likewise.
(mov<mode>_32bit, TFmode/TDmode): Likewise.

Backport from mainline r207868.
2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/60203
* config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
Split 64-bit moves into 2 patterns.  Do not allow the use of
direct move for TDmode in little endian, since the decimal value
has little endian bytes within a word, but the 64-bit pieces are
ordered in a big endian fashion, and normal subreg's of TDmode are
not allowed.
(mov<mode>_64bit_dm): Likewise.
(movtd_64bit_nodm): Likewise.

[gcc/testsuite]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport from mainline r207699.
2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/60137
* gcc.target/powerpc/pr60137.c: New file.

Backport from mainline r207808.
2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/60203
* gcc.target/powerpc/pr60203.c: New testsuite.

From-SVN: r209111

11 years agobackport: sysv4.h (ENDIAN_SELECT): Do not attempt to enforce big-endian mode for...
Bill Schmidt [Fri, 4 Apr 2014 14:50:31 +0000 (14:50 +0000)] 
backport: sysv4.h (ENDIAN_SELECT): Do not attempt to enforce big-endian mode for -mcall-aixdesc...

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport from mainline r207658
2014-02-06  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

* config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
-mcall-openbsd, or -mcall-linux.
(CC1_ENDIAN_BIG_SPEC): Remove.
(CC1_ENDIAN_LITTLE_SPEC): Remove.
(CC1_ENDIAN_DEFAULT_SPEC): Remove.
(CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
(SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
and %cc1_endian_default.
* config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.

From-SVN: r209110

11 years agobackport: rs6000-c.c (altivec_overloaded_builtins): Remove two duplicate entries.
Bill Schmidt [Fri, 4 Apr 2014 14:49:08 +0000 (14:49 +0000)] 
backport: rs6000-c.c (altivec_overloaded_builtins): Remove two duplicate entries.

[gcc]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport from mainline r206443
2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
two duplicate entries.

Backport from mainline r206494
2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* doc/invoke.texi: Add -maltivec={be,le} options, and document
default element-order behavior for -maltivec.
* config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
when targeting big endian, at least for now.
* config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.

Backport from mainline r206541
2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.

Backport from mainline r206590
2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
Implement -maltivec=be for vec_insert and vec_extract.

Backport from mainline r206641
2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>

* config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
and vmulosh rather than call gen_vec_widen_smult_*.
(vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
(vec_widen_smult_even_v16qi): Likewise.
(vec_widen_umult_even_v8hi): Likewise.
(vec_widen_smult_even_v8hi): Likewise.
(vec_widen_umult_odd_v16qi): Likewise.
(vec_widen_smult_odd_v16qi): Likewise.
(vec_widen_umult_odd_v8hi): Likewise.
(vec_widen_smult_odd_v8hi): Likewise.
(vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
vmuloub rather than call gen_vec_widen_umult_*.
(vec_widen_umult_lo_v16qi): Likewise.
(vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
vmulosb rather than call gen_vec_widen_smult_*.
(vec_widen_smult_lo_v16qi): Likewise.
(vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
rather than call gen_vec_widen_umult_*.
(vec_widen_umult_lo_v8hi): Likewise.
(vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
rather than call gen_vec_widen_smult_*.
(vec_widen_smult_lo_v8hi): Likewise.

Backport from mainline r207062
2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
correction for little endian...
* config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
here.

Backport from mainline r207262
2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
* config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
-maltivec=be with LE targets.
(vsx_mergeh_<mode>): Likewise.
* config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New
unspecs.
(mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
(altivec_vmrghb): Replace with define_expand and new
*altivec_vmrghb_internal insn; adjust for -maltivec=be with LE
targets.
(altivec_vmrghb_direct): New define_insn.
(altivec_vmrghh): Replace with define_expand and new
*altivec_vmrghh_internal insn; adjust for -maltivec=be with LE
targets.
(altivec_vmrghh_direct): New define_insn.
(altivec_vmrghw): Replace with define_expand and new
*altivec_vmrghw_internal insn; adjust for -maltivec=be with LE
targets.
(altivec_vmrghw_direct): New define_insn.
(*altivec_vmrghsf): Adjust for endianness.
(altivec_vmrglb): Replace with define_expand and new
*altivec_vmrglb_internal insn; adjust for -maltivec=be with LE
targets.
(altivec_vmrglb_direct): New define_insn.
(altivec_vmrglh): Replace with define_expand and new
*altivec_vmrglh_internal insn; adjust for -maltivec=be with LE
targets.
(altivec_vmrglh_direct): New define_insn.
(altivec_vmrglw): Replace with define_expand and new
*altivec_vmrglw_internal insn; adjust for -maltivec=be with LE
targets.
(altivec_vmrglw_direct): New define_insn.
(*altivec_vmrglsf): Adjust for endianness.
(vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
(vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
(vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
(vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
(vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
(vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
(vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
(vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.

Backport from mainline r207318
2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
remove element index adjustment for endian (now handled in vsx.md
and altivec.md).
(altivec_expand_vec_perm_const): Use
gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
* gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
(vsx_xxspltw_<mode>): Adjust element index for little endian.
* gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
define_expand and a new define_insn *altivec_vspltb_internal;
adjust for -maltivec=be on a little endian target.
(altivec_vspltb_direct): New.
(altivec_vsplth): Divide into a define_expand and a new
define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
little endian target.
(altivec_vsplth_direct): New.
(altivec_vspltw): Divide into a define_expand and a new
define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
little endian target.
(altivec_vspltw_direct): New.
(altivec_vspltsf): Divide into a define_expand and a new
define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
a little endian target.

Backport from mainline r207326
2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
unused variable "field".
* config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
(vsx_mergeh_<mode>): Likewise.
* config/rs6000/altivec.md (altivec_vmrghb): Likewise.
(altivec_vmrghh): Likewise.
(altivec_vmrghw): Likewise.
(altivec_vmrglb): Likewise.
(altivec_vmrglh): Likewise.
(altivec_vmrglw): Likewise.
(altivec_vspltb): Add missing uses.
(altivec_vsplth): Likewise.
(altivec_vspltw): Likewise.
(altivec_vspltsf): Likewise.

Backport from mainline r207414
2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
(altivec_vsumsws): Add handling for -maltivec=be with a little
endian target.
(altivec_vsumsws_direct): New.
(reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
gen_altivec_vsumsws.

Backport from mainline r207415
2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
for vector types other than V16QImode.
* config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
define_expand, and call altivec_expand_vec_perm_le when producing
code with little endian element order.
(*altivec_vperm_<mode>_internal): New insn having previous
behavior of altivec_vperm_<mode>.
(altivec_vperm_<mode>_uns): Change to a define_expand, and call
altivec_expand_vec_perm_le when producing code with little endian
element order.
(*altivec_vperm_<mode>_uns_internal): New insn having previous
behavior of altivec_vperm_<mode>_uns.

Backport from mainline r207520
2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
(UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
(UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
(mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
gen_altivec_vpkuwum.
(altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
BYTES_BIG_ENDIAN.
(altivec_vpks<VI_char>ss): Likewise.
(altivec_vpks<VI_char>us): Likewise.
(altivec_vpku<VI_char>us): Likewise.
(altivec_vpku<VI_char>um): Likewise.
(altivec_vpku<VI_char>um_direct): New (copy of
altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
internal use).
(altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
target is little endian and -maltivec=be is not specified.
(*altivec_vupkhs<VU_char>_direct): New (copy of
altivec_vupkhs<VU_char> that always emits vupkhs*, for internal
use).
(altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
target is little endian and -maltivec=be is not specified.
(*altivec_vupkls<VU_char>_direct): New (copy of
altivec_vupkls<VU_char> that always emits vupkls*, for internal
use).
(altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
little endian and -maltivec=be is not specified.
(altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
little endian and -maltivec=be is not specified.

Backport from mainline r207521
2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
generation for -maltivec=be.
(altivec_vsumsws): Simplify redundant test.

Backport from mainline r207525
2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
CODE_FOR_altivec_vpku[hw]um to
CODE_FOR_altivec_vpku[hw]um_direct.
* config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
(vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
UNSPEC_VUNPACK_LO_SIGN_DIRECT.

Backport from mainline r207814.
2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
endian targets.

Backport from mainline r207815.
2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/altivec.md (p8_vmrgew): Handle little endian
targets.
(p8_vmrgow): Likewise.

Backport from mainline r207919.
2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (vspltis_constant): Fix most significant
bit of zero.

Backport from mainline 208019
2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/altivec.md (altivec_lvxl): Rename as
*altivec_lvxl_<mode>_internal and use VM2 iterator instead of
V4SI.
(altivec_lvxl_<mode>): New define_expand incorporating
-maltivec=be semantics where needed.
(altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
(altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
semantics where needed.
(altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
(altivec_stvx_<mode>): New define_expand incorporating
-maltivec=be semantics where needed.
(altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
VM2 iterator instead of V4SI.
(altivec_stvxl_<mode>): New define_expand incorporating
-maltivec=be semantics where needed.
* config/rs6000/rs6000-builtin.def: Add new built-in definitions
LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI,
STVX_V2DF, STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI,
STVXL_V2DF, STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI,
STVXL_V16QI.
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
ALTIVEC_BUILTIN_STVXL.
* config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New
prototype.
(altivec_expand_stvx_be): Likewise.
* config/rs6000/rs6000.c (swap_selector_for_mode): New function.
(altivec_expand_lvx_be): Likewise.
(altivec_expand_stvx_be): Likewise.
(altivec_expand_builtin): Add cases for
ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
(altivec_init_builtins): Add definitions for
__builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
__builtin_altivec_stvx_<mode>, and
__builtin_altivec_stvxl_<mode>.

Backport from mainline 208021
2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/altivec.md (altivec_vsumsws): Replace second
vspltw with vsldoi.
(reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
gen_altivec_vsumsws.

Backport from mainline 208049
2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
define_insn with define_expand and new define_insn
*altivec_lve<VI_char>x_internal.
(altivec_stve<VI_char>x): Replace define_insn with define_expand
and new define_insn *altivec_stve<VI_char>x_internal.
* config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
prototype.
* config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
lve*x built-ins.
(altivec_expand_stvex_be): New function.

Backport from mainline
        2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
* config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
to permit subregs.

Backport from mainline
        2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
* config/rs6000/vector.md (*vector_unordered<mode>): Change split
to use canonical form for nor<mode>3.

[gcc/testsuite]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport from mainline r206590
2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.dg/vmx/insert.c: New.
* gcc.dg/vmx/insert-be-order.c: New.
* gcc.dg/vmx/extract.c: New.
* gcc.dg/vmx/extract-be-order.c: New.

Backport from mainline r206641
2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>

* gcc.dg/vmx/mult-even-odd.c: New.
* gcc.dg/vmx/mult-even-odd-be-order.c: New.

Backport from mainline r206926
2014-01-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.dg/vmx/insert-vsx-be-order.c: New.
* gcc.dg/vmx/extract-vsx.c: New.
* gcc.dg/vmx/extract-vsx-be-order.c: New.
* gcc.dg/vmx/insert-vsx.c: New.

Backport from mainline r207262
2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.dg/vmx/merge-be-order.c: New.
* gcc.dg/vmx/merge.c: New.
* gcc.dg/vmx/merge-vsx-be-order.c: New.
* gcc.dg/vmx/merge-vsx.c: New.

Backport from mainline r207318
2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.dg/vmx/splat.c: New.
* gcc.dg/vmx/splat-vsx.c: New.
* gcc.dg/vmx/splat-be-order.c: New.
* gcc.dg/vmx/splat-vsx-be-order.c: New.
* gcc.dg/vmx/eg-5.c: Remove special casing for little endian.
* gcc.dg/vmx/sn7153.c: Add special casing for little endian.

Backport from mainline r207414
2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.dg/vmx/vsums.c: New.
* gcc.dg/vmx/vsums-be-order.c: New.

Backport from mainline r207415
2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.dg/vmx/3b-15.c: Remove special handling for little endian.
* gcc.dg/vmx/perm.c: New.
* gcc.dg/vmx/perm-be-order.c: New.

Backport from mainline r207520
2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.dg/vmx/pack.c: New.
* gcc.dg/vmx/pack-be-order.c: New.
* gcc.dg/vmx/unpack.c: New.
* gcc.dg/vmx/unpack-be-order.c: New.

Backport from mainline r207521
2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.dg/vmx/sum2s.c: New.
* gcc.dg/vmx/sum2s-be-order.c: New.

Backport from mainline 208019
2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.dg/vmx/ld.c: New test.
* gcc.dg/vmx/ld-be-order.c: New test.
* gcc.dg/vmx/ld-vsx.c: New test.
* gcc.dg/vmx/ld-vsx-be-order.c: New test.
* gcc.dg/vmx/ldl.c: New test.
* gcc.dg/vmx/ldl-be-order.c: New test.
* gcc.dg/vmx/ldl-vsx.c: New test.
* gcc.dg/vmx/ldl-vsx-be-order.c: New test.
* gcc.dg/vmx/st.c: New test.
* gcc.dg/vmx/st-be-order.c: New test.
* gcc.dg/vmx/st-vsx.c: New test.
* gcc.dg/vmx/st-vsx-be-order.c: New test.
* gcc.dg/vmx/stl.c: New test.
* gcc.dg/vmx/stl-be-order.c: New test.
* gcc.dg/vmx/stl-vsx.c: New test.
* gcc.dg/vmx/stl-vsx-be-order.c: New test.

Backport from mainline 208021
2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.dg/vmx/vsums.c: Check entire result vector.
* gcc.dg/vmx/vsums-be-order.c: Likewise.

Backport from mainline 208049
2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.dg/vmx/lde.c: New test.
* gcc.dg/vmx/lde-be-order.c: New test.
* gcc.dg/vmx/ste.c: New test.
* gcc.dg/vmx/ste-be-order.c: New test.

Backport from mainline 208120
2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.dg/vmx/ld-vsx.c: Don't use vec_all_eq.
* gcc.dg/vmx/ld-vsx-be-order.c: Likewise.
* gcc.dg/vmx/ldl-vsx.c: Likewise.
* gcc.dg/vmx/ldl-vsx-be-order.c: Likewise.
* gcc.dg/vmx/merge-vsx.c: Likewise.
* gcc.dg/vmx/merge-vsx-be-order.c: Likewise.

Backport from mainline 208321
2014-03-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.dg/vmx/extract-vsx.c: Replace "vector long" with "vector
long long" throughout.
* gcc.dg/vmx/extract-vsx-be-order.c: Likewise.
* gcc.dg/vmx/insert-vsx.c: Likewise.
* gcc.dg/vmx/insert-vsx-be-order.c: Likewise.
* gcc.dg/vmx/ld-vsx.c: Likewise.
* gcc.dg/vmx/ld-vsx-be-order.c: Likewise.
* gcc.dg/vmx/ldl-vsx.c: Likewise.
* gcc.dg/vmx/ldl-vsx-be-order.c: Likewise.
* gcc.dg/vmx/merge-vsx.c: Likewise.
* gcc.dg/vmx/merge-vsx-be-order.c: Likewise.
* gcc.dg/vmx/st-vsx.c: Likewise.
* gcc.dg/vmx/st-vsx-be-order.c: Likewise.
* gcc.dg/vmx/stl-vsx.c: Likewise.
* gcc.dg/vmx/stl-vsx-be-order.c: Likewise.

From-SVN: r209109

11 years agobackport: rs6000.opt (-mlra): Add switch to enable the LRA register allocator.
Bill Schmidt [Fri, 4 Apr 2014 14:44:21 +0000 (14:44 +0000)] 
backport: rs6000.opt (-mlra): Add switch to enable the LRA register allocator.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport from mainline
        2014-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000.opt (-mlra): Add switch to enable the LRA
register allocator.

* config/rs6000/rs6000.c (TARGET_LRA_P): Add support for -mlra to
enable the LRA register allocator.  Back port the changes from the
trunk to enable LRA.
(rs6000_legitimate_offset_address_p): Likewise.
(legitimate_lo_sum_address_p): Likewise.
(use_toc_relative_ref): Likewise.
(rs6000_legitimate_address_p): Likewise.
(rs6000_emit_move): Likewise.
(rs6000_secondary_memory_needed_mode): Likewise.
(rs6000_alloc_sdmode_stack_slot): Likewise.
(rs6000_lra_p): Likewise.

* config/rs6000/sync.md (load_lockedti): Copy TI/PTI variables by
64-bit parts to force the register allocator to allocate even/odd
register pairs for the quad word atomic instructions.
(store_conditionalti): Likewise.

From-SVN: r209108

11 years agobackport: re PR target/59909 (Quad memory bootstrap issues on little endian powerpc64...
Bill Schmidt [Fri, 4 Apr 2014 14:42:18 +0000 (14:42 +0000)] 
backport: re PR target/59909 (Quad memory bootstrap issues on little endian powerpc64 power8 systems)

[gcc/testsuite]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Back port from mainline
2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/59909
* gcc.target/powerpc/quad-atomic.c: New file to test power8 quad
word atomic functions at runtime.

[gcc]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Back port from mainline
2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/59909
* doc/invoke.texi (RS/6000 and PowerPC Options): Document
-mquad-memory-atomic.  Update -mquad-memory documentation to say
it is only used for non-atomic loads/stores.

* config/rs6000/predicates.md (quad_int_reg_operand): Allow either
-mquad-memory or -mquad-memory-atomic switches.

* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
-mquad-memory-atomic to ISA 2.07 support.

* config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
to separate support of normal quad word memory operations (ldq,
stq) from the atomic quad word memory operations.

* config/rs6000/rs6000.c (rs6000_option_override_internal): Add
support to separate non-atomic quad word operations from atomic
quad word operations.  Disable non-atomic quad word operations in
little endian mode so that we don't have to swap words after the
load and before the store.
(quad_load_store_p): Add comment about atomic quad word support.
(rs6000_opt_masks): Add -mquad-memory-atomic to the list of
options printed with -mdebug=reg.

* config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
-mquad-memory-atomic as the test for whether we have quad word
atomic instructions.
(TARGET_SYNC_HI_QI): If either -mquad-memory-atomic,
-mquad-memory, or -mp8-vector are used, allow byte/half-word
atomic operations.

* config/rs6000/sync.md (load_lockedti): Insure that the address
is a proper indexed or indirect address for the lqarx instruction.
On little endian systems, swap the hi/lo registers after the lqarx
instruction.
(load_lockedpti): Use indexed_or_indirect_operand predicate to
insure the address is valid for the lqarx instruction.
(store_conditionalti): Insure that the address is a proper indexed
or indirect address for the stqcrx. instruction.  On little endian
systems, swap the hi/lo registers before doing the stqcrx.
instruction.
(store_conditionalpti): Use indexed_or_indirect_operand predicate to
insure the address is valid for the stqcrx. instruction.

* gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
type of quad memory support is available.

From-SVN: r209107

11 years agoApply mainline r202190, powerpc64le multilibs and multiarch dir 2013-09-03 Alan Modra...
Bill Schmidt [Fri, 4 Apr 2014 14:39:26 +0000 (14:39 +0000)] 
Apply mainline r202190, powerpc64le multilibs and multiarch dir 2013-09-03 Alan Modra <amodra@gmail.com>

[gcc]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Apply mainline r202190, powerpc64le multilibs and multiarch dir
2013-09-03  Alan Modra  <amodra@gmail.com>

* config.gcc (powerpc*-*-linux*): Add support for little-endian
multilibs to big-endian target and vice versa.
* config/rs6000/t-linux64: Use := assignment on all vars.
(MULTILIB_EXTRA_OPTS): Remove fPIC.
(MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
* config/rs6000/t-linux64le: New file.
* config/rs6000/t-linux64bele: New file.
* config/rs6000/t-linux64lebe: New file.

[libsanitizer]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport from mainline r208290
2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* configure.tgt: Unsupported for little endian PowerPC for now.

From-SVN: r209106

11 years agobackport: re PR target/59844 (Powerpc64le cannot bootstrap with -O3/-mcpu=power8)
Bill Schmidt [Fri, 4 Apr 2014 14:32:32 +0000 (14:32 +0000)] 
backport: re PR target/59844 (Powerpc64le cannot bootstrap with -O3/-mcpu=power8)

[gcc]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Back port from mainline
2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/59844
* config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
endian support, remove tests for WORDS_BIG_ENDIAN.
(p8_mfvsrd_3_<mode>): Likewise.
(reload_gpr_from_vsx<mode>): Likewise.
(reload_gpr_from_vsxsf): Likewise.
(p8_mfvsrd_4_disf): Likewise.

[gcc/testsuite]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport from mainline
2013-10-23  Pat Haugen  <pthaugen@us.ibm.com>

* gcc.target/powerpc/direct-move.h: Fix header for executable tests.

From-SVN: r209105

11 years agobackport: re PR target/56843 (PowerPC Newton-Raphson reciprocal estimates can be...
Bill Schmidt [Fri, 4 Apr 2014 14:29:23 +0000 (14:29 +0000)] 
backport: re PR target/56843 (PowerPC Newton-Raphson reciprocal estimates can be improved)

[gcc]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport from mainline
2013-04-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/56843
* config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
(rs6000_emit_swdiv_low_precision): Remove.
(rs6000_emit_swdiv): Rewrite to handle between one and four
iterations of Newton-Raphson generally; modify required number of
iterations for some cases.
* config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.

[gcc/testsuite]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport from mainline
2013-04-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/56843
* gcc.target/powerpc/recip-1.c: Modify expected output.
* gcc.target/powerpc/recip-3.c: Likewise.
* gcc.target/powerpc/recip-4.c: Likewise.
* gcc.target/powerpc/recip-5.c: Add expected output for iterations.

From-SVN: r209104

11 years agobackport: builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
Bill Schmidt [Fri, 4 Apr 2014 14:27:06 +0000 (14:27 +0000)] 
backport: builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.

[gcc]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport from mainline
2013-08-19  Peter Bergner  <bergner@vnet.ibm.com>
    Jakub Jelinek  <jakub@redhat.com>

* builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
(BUILT_IN_FABSD64): Likewise.
(BUILT_IN_FABSD128): Likewise.
* builtins.c (expand_builtin): Add support for
new DFP ABS builtins.
(fold_builtin_1): Likewise.
* config/rs6000/dfp.md
(*abstd2_fpr): Handle non-overlapping destination
and source operands.
(*nabstd2_fpr): Likewise.

[gcc/testsuite]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport from mainline
2013-08-19  Peter Bergner  <bergner@vnet.ibm.com>

* gcc.target/powerpc/dfp-dd-2.c: New test.
* gcc.target/powerpc/dfp-td-2.c: Likewise.
* gcc.target/powerpc/dfp-td-3.c: Likewise.

From-SVN: r209103

11 years agobackport: ffitarget.h: Import from upstream.
Bill Schmidt [Fri, 4 Apr 2014 14:24:25 +0000 (14:24 +0000)] 
backport: ffitarget.h: Import from upstream.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport mainline r205844.
2013-11-18  Alan Modra  <amodra@gmail.com>
* libffi/src/powerpc/ffitarget.h: Import from upstream.
* libffi/src/powerpc/ffi_powerpc.h: Likewise.
* libffi/src/powerpc/ffi.c: Likewise.
* libffi/src/powerpc/ffi_sysv.c: Likewise.
* libffi/src/powerpc/ffi_linux64.c: Likewise.
* libffi/src/powerpc/sysv.S: Likewise.
* libffi/src/powerpc/ppc_closure.S: Likewise.
* libffi/src/powerpc/linux64.S: Likewise.
* libffi/src/powerpc/linux64_closure.S: Likewise.
* libffi/src/types.c: Likewise.
* libffi/Makefile.am (EXTRA_DIST): Add new src/powerpc files.
(nodist_libffi_la_SOURCES <POWERPC, POWERPC_FREEBSD>): Likewise.
* libffi/configure.ac (HAVE_LONG_DOUBLE_VARIANT): Define for powerpc.
* libffi/include/ffi.h.in (ffi_prep_types): Declare.
* libffi/src/prep_cif.c (ffi_prep_cif_core): Call ffi_prep_types.
* libffi/configure: Regenerate.
* libffi/fficonfig.h.in: Regenerate.
* libffi/Makefile.in: Regenerate.
* libffi/man/Makefile.in: Regenerate.
* libffi/include/Makefile.in: Regenerate.
* libffi/testsuite/Makefile.in: Regenerate.

* libffi/src/powerpc/ppc_closure.S: Don't bl .Luint128.

* libffi/src/powerpc/ffitarget.h: Import from upstream.
* libffi/src/powerpc/ffi.c: Likewise.
* libffi/src/powerpc/linux64.S: Likewise.
* libffi/src/powerpc/linux64_closure.S: Likewise.
* libffi/doc/libffi.texi: Likewise.
* libffi/testsuite/libffi.call/cls_double_va.c: Likewise.
* libffi/testsuite/libffi.call/cls_longdouble_va.c: Likewise.

From-SVN: r209102

11 years ago[multiple changes]
Bill Schmidt [Fri, 4 Apr 2014 14:20:31 +0000 (14:20 +0000)] 
[multiple changes]

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Apply mainline r205060.
2013-11-20  Alan Modra  <amodra@gmail.com>
* config/rs6000/sysv4.h (CC1_ENDIAN_LITTLE_SPEC): Define as empty.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Default
to strict alignment on older processors when little-endian.
* config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to power8
for ELFv2.

From-SVN: r209100

11 years ago2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
William Schmidt [Fri, 4 Apr 2014 14:19:19 +0000 (14:19 +0000)] 
2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport from mainline r205000.
2013-11-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

gotest: Recognize PPC ELF v2 function pointers in text section.

From-SVN: r209099