aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn David Anglin <danglin@gcc.gnu.org>2013-09-20 23:58:43 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2013-09-20 23:58:43 +0000
commit96ce28a308fd1bd2c227475b4998a60709885aa0 (patch)
tree14cac9442639b9af59adfa5238dbfc79416652c9
parent578e51e675c14da87e4850a62e36d9a13e9bbcd1 (diff)
downloadgcc-96ce28a308fd1bd2c227475b4998a60709885aa0.zip
gcc-96ce28a308fd1bd2c227475b4998a60709885aa0.tar.gz
gcc-96ce28a308fd1bd2c227475b4998a60709885aa0.tar.bz2
re PR middle-end/56791 (Segmentation fault in stage2 gengenrtl -- Incorrect instruction sequence generated by reload)
PR middle-end/56791 * config/pa/pa.c (pa_option_override): Disable auto increment and decrement instructions until reload is completed. From-SVN: r202807
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/pa/pa.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2358b4a..6f7454e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2013-09-20 John David Anglin <danglin@gcc.gnu.org>
+ PR middle-end/56791
+ * config/pa/pa.c (pa_option_override): Disable auto increment and
+ decrement instructions until reload is completed.
+
* config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index b6f5410..260830f 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -513,6 +513,12 @@ pa_option_override (void)
write_symbols = NO_DEBUG;
}
+#ifdef AUTO_INC_DEC
+ /* FIXME: Disable auto increment and decrement processing until reload
+ is completed. See PR middle-end 56791. */
+ flag_auto_inc_dec = reload_completed;
+#endif
+
/* We only support the "big PIC" model now. And we always generate PIC
code when in 64bit mode. */
if (flag_pic == 1 || TARGET_64BIT)