4.7.1-8
This commit is contained in:
parent
1d285b5a5f
commit
8181de5ce0
1
.gitignore
vendored
1
.gitignore
vendored
@ -39,3 +39,4 @@
|
||||
/gcc-4.7.1-20120720.tar.bz2
|
||||
/gcc-4.7.1-20120810.tar.bz2
|
||||
/gcc-4.7.1-20120813.tar.bz2
|
||||
/gcc-4.7.1-20120913.tar.bz2
|
||||
|
24
gcc.spec
24
gcc.spec
@ -1,9 +1,9 @@
|
||||
%global DATE 20120813
|
||||
%global SVNREV 190350
|
||||
%global DATE 20120913
|
||||
%global SVNREV 191278
|
||||
%global gcc_version 4.7.1
|
||||
# Note, gcc_release must be integer, if you want to add suffixes to
|
||||
# %{release}, append them after %{gcc_release} on Release: line.
|
||||
%global gcc_release 7
|
||||
%global gcc_release 8
|
||||
%global _unpackaged_files_terminate_build 0
|
||||
%global multilib_64_archs sparc64 ppc64 s390x x86_64
|
||||
%ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha
|
||||
@ -185,6 +185,7 @@ Patch14: gcc47-ppl-0.10.patch
|
||||
Patch15: gcc47-libitm-fno-exceptions.patch
|
||||
Patch16: gcc47-rh837630.patch
|
||||
Patch17: gcc47-arm-hfp-ldso.patch
|
||||
Patch18: gcc47-pr54564.patch
|
||||
|
||||
Patch1000: fastjar-0.97-segfault.patch
|
||||
Patch1001: fastjar-0.97-len1.patch
|
||||
@ -690,6 +691,7 @@ package or when debugging this package.
|
||||
%if 0%{?fedora} >= 18 || 0%{?rhel} >= 7
|
||||
%patch17 -p0 -b .arm-hfp-ldso~
|
||||
%endif
|
||||
%patch18 -p0 -b .pr54564~
|
||||
|
||||
%if 0%{?_enable_debug_packages}
|
||||
cat > split-debuginfo.sh <<\EOF
|
||||
@ -2663,6 +2665,22 @@ fi
|
||||
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
|
||||
|
||||
%changelog
|
||||
* Thu Sep 13 2012 Jakub Jelinek <jakub@redhat.com> 4.7.1-8
|
||||
- update from the 4.7 branch
|
||||
- PRs c++/53836, c++/53839, c++/54086, c++/54197, c++/54253, c++/54341,
|
||||
c++/54506, c++/54511, c/54363, c/54428, c/54559, debug/54534,
|
||||
driver/54335, fortran/53306, fortran/54208, fortran/54225,
|
||||
fortran/54435, fortran/54443, fortran/54556, gcov-profile/54487,
|
||||
libstdc++/54172, libstdc++/54185, libstdc++/54297, libstdc++/54351,
|
||||
libstdc++/54376, libstdc++/54388, lto/53572, middle-end/53667,
|
||||
middle-end/53992, middle-end/54146, middle-end/54486,
|
||||
middle-end/54515, rtl-optimization/54088, rtl-optimization/54369,
|
||||
rtl-optimization/54455, target/45070, target/46254, target/54212,
|
||||
target/54220, target/54252, target/54436, target/54461,
|
||||
target/54476, target/54536, tree-opt/54494,
|
||||
tree-optimization/53922, tree-optimization/54498
|
||||
- fix up _mm_f{,n}m{add,sub}_s{s,d} fma intrinsics (PR target/54564)
|
||||
|
||||
* Mon Aug 13 2012 Jakub Jelinek <jakub@redhat.com> 4.7.1-7
|
||||
- update from the 4.7 branch
|
||||
- PR rtl-optimization/53942
|
||||
|
166
gcc47-pr54564.patch
Normal file
166
gcc47-pr54564.patch
Normal file
@ -0,0 +1,166 @@
|
||||
2012-09-13 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/54564
|
||||
* config/i386/sse.md (fmai_vmfmadd_<mode>): Use (match_dup 1)
|
||||
instead of (match_dup 0) as second argument to vec_merge.
|
||||
(*fmai_fmadd_<mode>, *fmai_fmsub_<mode>): Likewise.
|
||||
Remove third alternative.
|
||||
(*fmai_fnmadd_<mode>, *fmai_fnmsub_<mode>): Likewise. Negate
|
||||
operand 2 instead of operand 1, but put it as first argument
|
||||
of fma.
|
||||
|
||||
* config/i386/fmaintrin.h (_mm_fnmadd_sd, _mm_fnmadd_ss,
|
||||
_mm_fnmsub_sd, _mm_fnmsub_ss): Negate the second argument instead
|
||||
of the first.
|
||||
|
||||
--- gcc/config/i386/sse.md.jj 2012-09-05 18:27:03.000000000 +0200
|
||||
+++ gcc/config/i386/sse.md 2012-09-13 13:49:49.504968716 +0200
|
||||
@@ -2072,79 +2072,75 @@ (define_expand "fmai_vmfmadd_<mode>"
|
||||
(match_operand:VF_128 1 "nonimmediate_operand")
|
||||
(match_operand:VF_128 2 "nonimmediate_operand")
|
||||
(match_operand:VF_128 3 "nonimmediate_operand"))
|
||||
- (match_dup 0)
|
||||
+ (match_dup 1)
|
||||
(const_int 1)))]
|
||||
"TARGET_FMA")
|
||||
|
||||
(define_insn "*fmai_fmadd_<mode>"
|
||||
- [(set (match_operand:VF_128 0 "register_operand" "=x,x,x")
|
||||
+ [(set (match_operand:VF_128 0 "register_operand" "=x,x")
|
||||
(vec_merge:VF_128
|
||||
(fma:VF_128
|
||||
- (match_operand:VF_128 1 "nonimmediate_operand" "%0, 0,x")
|
||||
- (match_operand:VF_128 2 "nonimmediate_operand" "xm, x,xm")
|
||||
- (match_operand:VF_128 3 "nonimmediate_operand" " x,xm,0"))
|
||||
- (match_dup 0)
|
||||
+ (match_operand:VF_128 1 "nonimmediate_operand" " 0, 0")
|
||||
+ (match_operand:VF_128 2 "nonimmediate_operand" "xm, x")
|
||||
+ (match_operand:VF_128 3 "nonimmediate_operand" " x,xm"))
|
||||
+ (match_dup 1)
|
||||
(const_int 1)))]
|
||||
"TARGET_FMA"
|
||||
"@
|
||||
vfmadd132<ssescalarmodesuffix>\t{%2, %3, %0|%0, %3, %2}
|
||||
- vfmadd213<ssescalarmodesuffix>\t{%3, %2, %0|%0, %2, %3}
|
||||
- vfmadd231<ssescalarmodesuffix>\t{%2, %1, %0|%0, %1, %2}"
|
||||
+ vfmadd213<ssescalarmodesuffix>\t{%3, %2, %0|%0, %2, %3}"
|
||||
[(set_attr "type" "ssemuladd")
|
||||
(set_attr "mode" "<MODE>")])
|
||||
|
||||
(define_insn "*fmai_fmsub_<mode>"
|
||||
- [(set (match_operand:VF_128 0 "register_operand" "=x,x,x")
|
||||
+ [(set (match_operand:VF_128 0 "register_operand" "=x,x")
|
||||
(vec_merge:VF_128
|
||||
(fma:VF_128
|
||||
- (match_operand:VF_128 1 "nonimmediate_operand" "%0, 0,x")
|
||||
- (match_operand:VF_128 2 "nonimmediate_operand" "xm, x,xm")
|
||||
+ (match_operand:VF_128 1 "nonimmediate_operand" " 0, 0")
|
||||
+ (match_operand:VF_128 2 "nonimmediate_operand" "xm, x")
|
||||
(neg:VF_128
|
||||
- (match_operand:VF_128 3 "nonimmediate_operand" " x,xm,0")))
|
||||
- (match_dup 0)
|
||||
+ (match_operand:VF_128 3 "nonimmediate_operand" " x,xm")))
|
||||
+ (match_dup 1)
|
||||
(const_int 1)))]
|
||||
"TARGET_FMA"
|
||||
"@
|
||||
vfmsub132<ssescalarmodesuffix>\t{%2, %3, %0|%0, %3, %2}
|
||||
- vfmsub213<ssescalarmodesuffix>\t{%3, %2, %0|%0, %2, %3}
|
||||
- vfmsub231<ssescalarmodesuffix>\t{%2, %1, %0|%0, %1, %2}"
|
||||
+ vfmsub213<ssescalarmodesuffix>\t{%3, %2, %0|%0, %2, %3}"
|
||||
[(set_attr "type" "ssemuladd")
|
||||
(set_attr "mode" "<MODE>")])
|
||||
|
||||
(define_insn "*fmai_fnmadd_<mode>"
|
||||
- [(set (match_operand:VF_128 0 "register_operand" "=x,x,x")
|
||||
+ [(set (match_operand:VF_128 0 "register_operand" "=x,x")
|
||||
(vec_merge:VF_128
|
||||
(fma:VF_128
|
||||
(neg:VF_128
|
||||
- (match_operand:VF_128 1 "nonimmediate_operand" "%0, 0,x"))
|
||||
- (match_operand:VF_128 2 "nonimmediate_operand" "xm, x,xm")
|
||||
- (match_operand:VF_128 3 "nonimmediate_operand" " x,xm,0"))
|
||||
- (match_dup 0)
|
||||
+ (match_operand:VF_128 2 "nonimmediate_operand" "xm, x"))
|
||||
+ (match_operand:VF_128 1 "nonimmediate_operand" " 0, 0")
|
||||
+ (match_operand:VF_128 3 "nonimmediate_operand" " x,xm"))
|
||||
+ (match_dup 1)
|
||||
(const_int 1)))]
|
||||
"TARGET_FMA"
|
||||
"@
|
||||
vfnmadd132<ssescalarmodesuffix>\t{%2, %3, %0|%0, %3, %2}
|
||||
- vfnmadd213<ssescalarmodesuffix>\t{%3, %2, %0|%0, %2, %3}
|
||||
- vfnmadd231<ssescalarmodesuffix>\t{%2, %1, %0|%0, %1, %2}"
|
||||
+ vfnmadd213<ssescalarmodesuffix>\t{%3, %2, %0|%0, %2, %3}"
|
||||
[(set_attr "type" "ssemuladd")
|
||||
(set_attr "mode" "<MODE>")])
|
||||
|
||||
(define_insn "*fmai_fnmsub_<mode>"
|
||||
- [(set (match_operand:VF_128 0 "register_operand" "=x,x,x")
|
||||
+ [(set (match_operand:VF_128 0 "register_operand" "=x,x")
|
||||
(vec_merge:VF_128
|
||||
(fma:VF_128
|
||||
(neg:VF_128
|
||||
- (match_operand:VF_128 1 "nonimmediate_operand" "%0, 0,x"))
|
||||
- (match_operand:VF_128 2 "nonimmediate_operand" "xm, x,xm")
|
||||
+ (match_operand:VF_128 2 "nonimmediate_operand" "xm, x"))
|
||||
+ (match_operand:VF_128 1 "nonimmediate_operand" " 0, 0")
|
||||
(neg:VF_128
|
||||
- (match_operand:VF_128 3 "nonimmediate_operand" " x,xm,0")))
|
||||
- (match_dup 0)
|
||||
+ (match_operand:VF_128 3 "nonimmediate_operand" " x,xm")))
|
||||
+ (match_dup 1)
|
||||
(const_int 1)))]
|
||||
"TARGET_FMA"
|
||||
"@
|
||||
vfnmsub132<ssescalarmodesuffix>\t{%2, %3, %0|%0, %3, %2}
|
||||
- vfnmsub213<ssescalarmodesuffix>\t{%3, %2, %0|%0, %2, %3}
|
||||
- vfnmsub231<ssescalarmodesuffix>\t{%2, %1, %0|%0, %1, %2}"
|
||||
+ vfnmsub213<ssescalarmodesuffix>\t{%3, %2, %0|%0, %2, %3}"
|
||||
[(set_attr "type" "ssemuladd")
|
||||
(set_attr "mode" "<MODE>")])
|
||||
|
||||
--- gcc/config/i386/fmaintrin.h.jj 2011-09-02 16:29:38.000000000 +0200
|
||||
+++ gcc/config/i386/fmaintrin.h 2012-09-13 13:32:20.162333244 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-/* Copyright (C) 2011 Free Software Foundation, Inc.
|
||||
+/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
@@ -164,7 +164,7 @@ extern __inline __m128d
|
||||
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
||||
_mm_fnmadd_sd (__m128d __A, __m128d __B, __m128d __C)
|
||||
{
|
||||
- return (__m128d)__builtin_ia32_vfmaddsd3 (-(__v2df)__A, (__v2df)__B,
|
||||
+ return (__m128d)__builtin_ia32_vfmaddsd3 ((__v2df)__A, -(__v2df)__B,
|
||||
(__v2df)__C);
|
||||
}
|
||||
|
||||
@@ -172,7 +172,7 @@ extern __inline __m128
|
||||
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
||||
_mm_fnmadd_ss (__m128 __A, __m128 __B, __m128 __C)
|
||||
{
|
||||
- return (__m128)__builtin_ia32_vfmaddss3 (-(__v4sf)__A, (__v4sf)__B,
|
||||
+ return (__m128)__builtin_ia32_vfmaddss3 ((__v4sf)__A, -(__v4sf)__B,
|
||||
(__v4sf)__C);
|
||||
}
|
||||
|
||||
@@ -212,7 +212,7 @@ extern __inline __m128d
|
||||
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
||||
_mm_fnmsub_sd (__m128d __A, __m128d __B, __m128d __C)
|
||||
{
|
||||
- return (__m128d)__builtin_ia32_vfmaddsd3 (-(__v2df)__A, (__v2df)__B,
|
||||
+ return (__m128d)__builtin_ia32_vfmaddsd3 ((__v2df)__A, -(__v2df)__B,
|
||||
-(__v2df)__C);
|
||||
}
|
||||
|
||||
@@ -220,7 +220,7 @@ extern __inline __m128
|
||||
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
||||
_mm_fnmsub_ss (__m128 __A, __m128 __B, __m128 __C)
|
||||
{
|
||||
- return (__m128)__builtin_ia32_vfmaddss3 (-(__v4sf)__A, (__v4sf)__B,
|
||||
+ return (__m128)__builtin_ia32_vfmaddss3 ((__v4sf)__A, -(__v4sf)__B,
|
||||
-(__v4sf)__C);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user