[packages/gcc] add upstream fix for PR81481 (r253300 excluding changelog diff); rel 4

atler atler at pld-linux.org
Sun Nov 12 22:45:21 CET 2017


commit b8c2c3e7456adf144a6db81107459a102fc62b16
Author: Jan Palus <atler at pld-linux.org>
Date:   Sun Nov 12 22:15:23 2017 +0100

    add upstream fix for PR81481 (r253300 excluding changelog diff); rel 4
    
    for more details see:
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81481
      https://bugzilla.opensuse.org/show_bug.cgi?id=1048861

 gcc-pr81481.patch | 39 +++++++++++++++++++++++++++++++++++++++
 gcc.spec          |  4 +++-
 2 files changed, 42 insertions(+), 1 deletion(-)
---
diff --git a/gcc.spec b/gcc.spec
index f8096db..3424c03 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -105,7 +105,7 @@ Summary(pl.UTF-8):	Kolekcja kompilatorów GNU: kompilator C i pliki współdziel
 Summary(pt_BR.UTF-8):	Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
 Name:		gcc
 Version:	%{major_ver}.%{minor_ver}
-Release:	3
+Release:	4
 Epoch:		6
 License:	GPL v3+
 Group:		Development/Languages
@@ -123,6 +123,7 @@ Patch2:		%{name}-nodebug.patch
 Patch3:		%{name}-ada-link.patch
 Patch4:		%{name}-ada-x32.patch
 Patch5:		Revert-eeb6872bf.patch
+Patch6:		%{name}-pr81481.patch
 
 Patch10:	%{name}-moresparcs.patch
 Patch11:	%{name}-install-libffi.patch
@@ -2803,6 +2804,7 @@ Extensions dla języka C.
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1
+%patch6 -p0
 
 %patch10 -p1
 %if %{with gcc_libffi}
diff --git a/gcc-pr81481.patch b/gcc-pr81481.patch
new file mode 100644
index 0000000..c2e5f13
--- /dev/null
+++ b/gcc-pr81481.patch
@@ -0,0 +1,39 @@
+Index: gcc/testsuite/gcc.target/i386/pr81481.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr81481.c	(nonexistent)
++++ gcc/testsuite/gcc.target/i386/pr81481.c	(revision 253300)
+@@ -0,0 +1,18 @@
++/* { dg-do compile } */
++/* { dg-require-effective-target ssse3 } */
++/* { dg-options "-O2 -fpic -mssse3" } */
++/* { dg-final { scan-assembler-not "pshufb\[ \t\]\\(%esp\\)" } } */
++#include <immintrin.h>
++
++extern const signed char c[31] __attribute__((visibility("hidden")));
++
++__m128i f(__m128i *x, void *v)
++{
++  int i;
++  asm("# %0" : "=r"(i));
++  __m128i t = _mm_loadu_si128((void*)&c[i]);
++  __m128i xx = *x;
++  xx =  _mm_shuffle_epi8(xx, t);
++  asm("# %0 %1 %2" : "+x"(xx) : "r"(c), "r"(i));
++  return xx;
++}
+Index: gcc/ira-costs.c
+===================================================================
+--- gcc/ira-costs.c	(revision 253299)
++++ gcc/ira-costs.c	(revision 253300)
+@@ -1471,7 +1471,10 @@
+ 	      && targetm.legitimate_constant_p (GET_MODE (SET_DEST (set)),
+ 						XEXP (note, 0))
+ 	      && REG_N_SETS (REGNO (SET_DEST (set))) == 1))
+-      && general_operand (SET_SRC (set), GET_MODE (SET_SRC (set))))
++      && general_operand (SET_SRC (set), GET_MODE (SET_SRC (set)))
++      /* LRA does not use equiv with a symbol for PIC code.  */
++      && (! ira_use_lra_p || ! pic_offset_table_rtx
++	  || ! contains_symbol_ref_p (XEXP (note, 0))))
+     {
+       enum reg_class cl = GENERAL_REGS;
+       rtx reg = SET_DEST (set);
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/gcc.git/commitdiff/b8c2c3e7456adf144a6db81107459a102fc62b16



More information about the pld-cvs-commit mailing list