aboutsummaryrefslogtreecommitdiff
path: root/8.3.0
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2019-09-12 22:54:36 +0100
committerSergei Trofimovich <slyfox@gentoo.org>2019-09-12 22:54:36 +0100
commitf5d94ac0dde9af3de0f36928d31ca5bdc51352e3 (patch)
tree7540e92a1148d112eeb6088fa18b1da420af376f /8.3.0
parent9.2.0: backport 27_all_sparc-PIC-constant-PR91472.patch (diff)
downloadgcc-patches-f5d94ac0dde9af3de0f36928d31ca5bdc51352e3.tar.gz
gcc-patches-f5d94ac0dde9af3de0f36928d31ca5bdc51352e3.tar.bz2
gcc-patches-f5d94ac0dde9af3de0f36928d31ca5bdc51352e3.zip
8.3.0: backport 30_all_sparc-PIC-constant-PR91472.patch
Fix gmp test suite failures. Bug: https://gcc.gnu.org/PR91472 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to '8.3.0')
-rw-r--r--8.3.0/gentoo/30_all_sparc-PIC-constant-PR91472.patch83
-rw-r--r--8.3.0/gentoo/README.history1
2 files changed, 84 insertions, 0 deletions
diff --git a/8.3.0/gentoo/30_all_sparc-PIC-constant-PR91472.patch b/8.3.0/gentoo/30_all_sparc-PIC-constant-PR91472.patch
new file mode 100644
index 0000000..aeacdde
--- /dev/null
+++ b/8.3.0/gentoo/30_all_sparc-PIC-constant-PR91472.patch
@@ -0,0 +1,83 @@
+https://gcc.gnu.org/PR91472
+Fix gmp test suite failrues.
+
+From 0a09a00c87081e0a8d1d382b33bb0b1ec03875e7 Mon Sep 17 00:00:00 2001
+From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Sun, 1 Sep 2019 12:55:22 +0000
+Subject: [PATCH] PR target/91472 * config/sparc/sparc.c
+ (sparc_cannot_force_const_mem): Return true during LRA/reload in PIC mode
+ if the PIC register hasn't been used yet. (sparc_pic_register_p): Test
+ reload_in_progress for consistency's sake.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@275270 138bc75d-0d04-0410-961f-82ee72b054a4
+---
+ gcc/config/sparc/sparc.c | 9 ++++-
+ .../gcc.c-torture/execute/20190901-1.c | 36 +++++++++++++++++++
+
+--- a/gcc/config/sparc/sparc.c
++++ b/gcc/config/sparc/sparc.c
+@@ -4201,6 +4201,13 @@ eligible_for_sibcall_delay (rtx_insn *trial)
+ static bool
+ sparc_cannot_force_const_mem (machine_mode mode, rtx x)
+ {
++ /* After IRA has run in PIC mode, it is too late to put anything into the
++ constant pool if the PIC register hasn't already been initialized. */
++ if ((lra_in_progress || reload_in_progress)
++ && flag_pic
++ && !crtl->uses_pic_offset_table)
++ return true;
++
+ switch (GET_CODE (x))
+ {
+ case CONST_INT:
+@@ -4450,7 +4457,7 @@ sparc_pic_register_p (rtx x)
+ return true;
+
+ if (!HARD_REGISTER_P (pic_offset_table_rtx)
+- && (HARD_REGISTER_P (x) || lra_in_progress)
++ && (HARD_REGISTER_P (x) || lra_in_progress || reload_in_progress)
+ && ORIGINAL_REGNO (x) == REGNO (pic_offset_table_rtx))
+ return true;
+
+--- /dev/null
++++ b/gcc/testsuite/gcc.c-torture/execute/20190901-1.c
+@@ -0,0 +1,36 @@
++/* PR target/91472 */
++/* Reported by John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> */
++
++typedef unsigned int gmp_uint_least32_t;
++
++union ieee_double_extract
++{
++ struct
++ {
++ gmp_uint_least32_t sig:1;
++ gmp_uint_least32_t exp:11;
++ gmp_uint_least32_t manh:20;
++ gmp_uint_least32_t manl:32;
++ } s;
++ double d;
++};
++
++double __attribute__((noipa))
++tests_infinity_d (void)
++{
++ union ieee_double_extract x;
++ x.s.exp = 2047;
++ x.s.manl = 0;
++ x.s.manh = 0;
++ x.s.sig = 0;
++ return x.d;
++}
++
++int
++main (void)
++{
++ double x = tests_infinity_d ();
++ if (x == 0.0)
++ __builtin_abort ();
++ return 0;
++}
+--
+2.23.0
+
diff --git a/8.3.0/gentoo/README.history b/8.3.0/gentoo/README.history
index fc32cd2..68b1fd8 100644
--- a/8.3.0/gentoo/README.history
+++ b/8.3.0/gentoo/README.history
@@ -1,5 +1,6 @@
1.2 TODO
+ 29_all_ia64-bootstrap.patch
+ + 30_all_sparc-PIC-constant-PR91472.patch
1.1 06 Apr 2019
+ 26_all_overridable_native.patch