diff options
author | Christophe Lyon <christophe.lyon@linaro.org> | 2014-01-13 20:59:05 +0100 |
---|---|---|
committer | Christophe Lyon <christophe.lyon@linaro.org> | 2014-01-13 20:59:05 +0100 |
commit | d707b9a269ecdf4e62a0df3b47902880226317b2 (patch) | |
tree | 4df2c56f8884e7d9d562b3702e9863b7f0c4b014 | |
parent | 361930491cddcfbc6d1c04acb5511383d0546c18 (diff) | |
parent | a4be5d67ff49874fab7c503604579e5f7b8902a7 (diff) |
Merge from FSF GCC 4.7.4 (svn branches/gcc-4_7-branch 206380)
-rw-r--r-- | ChangeLog.linaro | 8 | ||||
-rw-r--r-- | gcc/ChangeLog | 16 | ||||
-rw-r--r-- | gcc/DATESTAMP | 2 | ||||
-rw-r--r-- | gcc/ada/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/ada/gcc-interface/Make-lang.in | 2 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 7 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 15 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/avx-vmovapd-256-1.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/avx-vmovapd-256-2.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/sse2-movapd-1.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/sse2-movapd-2.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-3.c | 21 | ||||
-rw-r--r-- | libgcc/ChangeLog | 5 | ||||
-rw-r--r-- | libgcc/config/rs6000/ibm-ldouble.c | 11 |
15 files changed, 91 insertions, 14 deletions
diff --git a/ChangeLog.linaro b/ChangeLog.linaro index 05b050d7879..66236e5c69d 100644 --- a/ChangeLog.linaro +++ b/ChangeLog.linaro @@ -1,3 +1,7 @@ +2014-01-07 Christophe lyon <christophe.lyon@linaro.org> + + Merge from FSF GCC 4.7.4 (svn branches/gcc-4_7-branch 206380). + 2014-01-06 Christophe Lyon <christophe.lyon@linaro.org> gcc/ @@ -7,8 +11,8 @@ GCC Linaro 4.7-2013.12 released. - gcc/ - * LINARO-VERSION: Update. + gcc/ + * LINARO-VERSION: Update. 2013-12-20 Christophe Lyon <christophe.lyon@linaro.org> diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 649926ba202..01c2c3aa3b5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,19 @@ +2013-12-28 Eric Botcazou <ebotcazou@adacore.com> + + * doc/invoke.texi (output file options): Add missing markers. + +2013-12-11 Kai Tietz <ktietz@redhat.com> + + PR target/56807 + * config/i386/i386.c (ix86_expand_prologue): plus_constant + takes no mode-argument. + +2013-12-10 Kai Tietz <ktietz@redhat.com> + + PR target/56807 + * config/i386/i386.c (ix86_expand_prologue): Address saved + registers stack-relative, not via frame-pointer. + 2013-12-03 Marek Polacek <polacek@redhat.com> Backport from mainline diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index 8e321fc7137..09431768587 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20131207 +20140107 diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index fce5a217ae5..4ebba1aa52f 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,7 @@ +2013-12-12 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Make-lang.in (ada/doctools/xgnatugn): Use gnatmake. + 2013-10-19 Eric Botcazou <ebotcazou@adacore.com> * gcc-interface/utils.c (gnat_set_type_context): New function. diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in index ec95398ecbe..0131e301030 100644 --- a/gcc/ada/gcc-interface/Make-lang.in +++ b/gcc/ada/gcc-interface/Make-lang.in @@ -660,7 +660,7 @@ ada.tags: force ada/doctools/xgnatugn$(build_exeext): ada/xgnatugn.adb -$(MKDIR) ada/doctools $(CP) $^ ada/doctools - cd ada/doctools && $(GNATMAKE) -q xgnatugn + cd ada/doctools && gnatmake -q xgnatugn # Note that doc/gnat_ugn.texi and doc/projects.texi do not depend on # xgnatugn being built so we can distribute a pregenerated doc/gnat_ugn.info diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index c74dba0506a..d7d013bec33 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -10431,14 +10431,15 @@ ix86_expand_prologue (void) if (r10_live && eax_live) { - t = choose_baseaddr (m->fs.sp_offset - allocate); + t = plus_constant (stack_pointer_rtx, allocate); emit_move_insn (r10, gen_frame_mem (Pmode, t)); - t = choose_baseaddr (m->fs.sp_offset - allocate - UNITS_PER_WORD); + t = plus_constant (stack_pointer_rtx, + allocate - UNITS_PER_WORD); emit_move_insn (eax, gen_frame_mem (Pmode, t)); } else if (eax_live || r10_live) { - t = choose_baseaddr (m->fs.sp_offset - allocate); + t = plus_constant (stack_pointer_rtx, allocate); emit_move_insn ((eax_live ? eax : r10), gen_frame_mem (Pmode, t)); } } diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index d544adc6703..055ee968df4 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -1441,11 +1441,13 @@ Define an argument called @var{key} with a value of @var{value} for the plugin called @var{name}. @item -fdump-ada-spec@r{[}-slim@r{]} -For C and C++ source and include files, generate corresponding Ada -specs. @xref{Generating Ada Bindings for C and C++ headers,,, gnat_ugn, +@opindex fdump-ada-spec +For C and C++ source and include files, generate corresponding Ada specs. +@xref{Generating Ada Bindings for C and C++ headers,,, gnat_ugn, GNAT User's Guide}, which provides detailed documentation on this feature. @item -fdump-go-spec=@var{file} +@opindex fdump-go-spec For input files in any language, generate corresponding Go declarations in @var{file}. This generates Go @code{const}, @code{type}, @code{var}, and @code{func} declarations which may be a diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1f39f7c2080..2f73fb97b5f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,18 @@ +2014-01-03 Joseph Myers <joseph@codesourcery.com> + + * gcc.target/powerpc/rs6000-ldouble-3.c: New test. + +2013-12-12 Uros Bizjak <ubizjak@gmail.com> + + Backport from mainline + 2013-12-12 Ryan Mansfield <rmansfield@qnx.com> + + PR testsuite/59442 + * gcc.target/i386/sse2-movapd-1.c: Fix alignment attributes. + * gcc.target/i386/sse2-movapd-2.c: Likewise. + * gcc.target/i386/avx-vmovapd-256-1.c: Likewise. + * gcc.target/i386/avx-vmovapd-256-2.c: Likewise. + 2013-12-04 Marek Polacek <polacek@redhat.com> PR c/59351 diff --git a/gcc/testsuite/gcc.target/i386/avx-vmovapd-256-1.c b/gcc/testsuite/gcc.target/i386/avx-vmovapd-256-1.c index d9121228307..cc524c8a641 100644 --- a/gcc/testsuite/gcc.target/i386/avx-vmovapd-256-1.c +++ b/gcc/testsuite/gcc.target/i386/avx-vmovapd-256-1.c @@ -15,7 +15,7 @@ void static avx_test (void) { union256d u; - double e [4] __attribute__ ((aligned (8))) = {41124.234,2344.2354,8653.65635,856.43576}; + double e [4] __attribute__ ((aligned (32))) = {41124.234,2344.2354,8653.65635,856.43576}; u.x = test (e); diff --git a/gcc/testsuite/gcc.target/i386/avx-vmovapd-256-2.c b/gcc/testsuite/gcc.target/i386/avx-vmovapd-256-2.c index 96a664ac11e..9224484cac1 100644 --- a/gcc/testsuite/gcc.target/i386/avx-vmovapd-256-2.c +++ b/gcc/testsuite/gcc.target/i386/avx-vmovapd-256-2.c @@ -15,7 +15,7 @@ void static avx_test (void) { union256d u; - double e [4] __attribute__ ((aligned (8))) = {0.0}; + double e [4] __attribute__ ((aligned (32))) = {0.0}; u.x = _mm256_set_pd (39578.467285, 7856.342941, 85632.783567, 47563.234215); diff --git a/gcc/testsuite/gcc.target/i386/sse2-movapd-1.c b/gcc/testsuite/gcc.target/i386/sse2-movapd-1.c index b8b9dba0c20..55d9f594f55 100644 --- a/gcc/testsuite/gcc.target/i386/sse2-movapd-1.c +++ b/gcc/testsuite/gcc.target/i386/sse2-movapd-1.c @@ -25,7 +25,7 @@ static void TEST (void) { union128d u; - double e[2] __attribute__ ((aligned (8))) = {2134.3343,1234.635654}; + double e[2] __attribute__ ((aligned (16))) = {2134.3343,1234.635654}; u.x = test (e); diff --git a/gcc/testsuite/gcc.target/i386/sse2-movapd-2.c b/gcc/testsuite/gcc.target/i386/sse2-movapd-2.c index 8298551baf5..87da332779a 100644 --- a/gcc/testsuite/gcc.target/i386/sse2-movapd-2.c +++ b/gcc/testsuite/gcc.target/i386/sse2-movapd-2.c @@ -25,7 +25,7 @@ static void TEST (void) { union128d u; - double e[2] __attribute__ ((aligned (8))) = {0.0}; + double e[2] __attribute__ ((aligned (16))) = {0.0}; u.x = _mm_set_pd (2134.3343,1234.635654); diff --git a/gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-3.c b/gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-3.c new file mode 100644 index 00000000000..1c78052e6d7 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-3.c @@ -0,0 +1,21 @@ +/* Test accuracy of long double division (glibc bug 15396). */ +/* { dg-do run { target powerpc*-*-linux* powerpc*-*-darwin* powerpc*-*-aix* rs6000-*-* } } */ +/* { dg-options "-mlong-double-128" } */ + +extern void exit (int); +extern void abort (void); + +volatile long double a = 0x1p-1024L; +volatile long double b = 0x3p-53L; +volatile long double r; +volatile long double expected = 0x1.55555555555555555555555555p-973L; + +int +main (void) +{ + r = a / b; + /* Allow error up to 2ulp. */ + if (__builtin_fabsl (r - expected) > 0x1p-1073L) + abort (); + exit (0); +} diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 53f32383f63..40fe9fe3821 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,8 @@ +2014-01-03 Joseph Myers <joseph@codesourcery.com> + + * config/rs6000/ibm-ldouble.c (__gcc_qdiv): Scale up arguments in + case of small numerator and finite nonzero result. + 2013-11-10 Kai Tietz <ktietz@redhat.com> Back-merged from trunk diff --git a/libgcc/config/rs6000/ibm-ldouble.c b/libgcc/config/rs6000/ibm-ldouble.c index b0b8037cdce..658ca9adea7 100644 --- a/libgcc/config/rs6000/ibm-ldouble.c +++ b/libgcc/config/rs6000/ibm-ldouble.c @@ -189,7 +189,16 @@ __gcc_qdiv (double a, double b, double c, double d) || nonfinite (t)) return t; - /* Finite nonzero result requires corrections to the highest order term. */ + /* Finite nonzero result requires corrections to the highest order + term. These corrections require the low part of c * t to be + exactly represented in double. */ + if (fabs (a) <= 0x1p-969) + { + a *= 0x1p106; + b *= 0x1p106; + c *= 0x1p106; + d *= 0x1p106; + } s = c * t; /* (s,sigma) = c*t exactly. */ w = -(-b + d * t); /* Written to get fnmsub for speed, but not |