aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@gcc.gnu.org>2015-12-04 18:25:54 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2015-12-04 18:25:54 +0000
commitf58101cf288f731c7ca5598d14254940cd8d0e8a (patch)
treeac78085cd4b5b9083ba8297440f00e5a4e546e5b
parentf0a7c00bfe8a7e2af956eedfbdbb5cf63d28a1dc (diff)
downloadgcc-f58101cf288f731c7ca5598d14254940cd8d0e8a.zip
gcc-f58101cf288f731c7ca5598d14254940cd8d0e8a.tar.gz
gcc-f58101cf288f731c7ca5598d14254940cd8d0e8a.tar.bz2
re PR middle-end/65958 (-fstack-check breaks alloca on architectures using generic stack checking)
PR middle-end/65958 * config/arm/unspecs.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE. (unspecv): Add VUNSPEC_PROBE_STACK_RANGE. * config/arm/arm.md (probe_stack_range): Adjust. * config/aarch64/aarch64.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE. (unspecv): Add UNSPECV_PROBE_STACK_RANGE. (probe_stack_range_<PTR:mode>): Adjust. From-SVN: r231295
-rw-r--r--gcc/ChangeLog14
-rw-r--r--gcc/config/aarch64/aarch64.md4
-rw-r--r--gcc/config/arm/arm.md2
-rw-r--r--gcc/config/arm/unspecs.md2
4 files changed, 16 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9aba352..39420b13 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2015-12-04 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR middle-end/65958
+ * config/arm/unspecs.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE.
+ (unspecv): Add VUNSPEC_PROBE_STACK_RANGE.
+ * config/arm/arm.md (probe_stack_range): Adjust.
+ * config/aarch64/aarch64.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE.
+ (unspecv): Add UNSPECV_PROBE_STACK_RANGE.
+ (probe_stack_range_<PTR:mode>): Adjust.
+
2015-12-04 David Malcolm <dmalcolm@redhat.com>
* convert.c (convert_to_real_1): When converting from a
@@ -309,8 +319,8 @@
2015-12-03 Jan Hubicka <hubicka@ucw.cz>
- * alias.c (alias_set_subset_of, alias_sets_must_conflict_p)
- Short circuit for !flag_strict_aliasing
+ * alias.c (alias_set_subset_of, alias_sets_must_conflict_p):
+ Add short circuit for !flag_strict_aliasing
(get_alias_set): Remove flag_strict_aliasing check.
(new_alias_set): Likewise.
diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
index f5a8ae7..dee757b 100644
--- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md
@@ -104,7 +104,6 @@
UNSPEC_MB
UNSPEC_NOP
UNSPEC_PRLG_STK
- UNSPEC_PROBE_STACK_RANGE
UNSPEC_RBIT
UNSPEC_SISD_NEG
UNSPEC_SISD_SSHL
@@ -139,6 +138,7 @@
UNSPECV_GET_FPSR ; Represent fetch of FPSR content.
UNSPECV_SET_FPSR ; Represent assign of FPSR content.
UNSPECV_BLOCKAGE ; Represent a blockage
+ UNSPECV_PROBE_STACK_RANGE ; Represent stack range probing.
]
)
@@ -4968,7 +4968,7 @@
[(set (match_operand:PTR 0 "register_operand" "=r")
(unspec_volatile:PTR [(match_operand:PTR 1 "register_operand" "0")
(match_operand:PTR 2 "register_operand" "r")]
- UNSPEC_PROBE_STACK_RANGE))]
+ UNSPECV_PROBE_STACK_RANGE))]
""
{
return aarch64_output_probe_stack_range (operands[0], operands[2]);
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index 1462a31..a742d8f 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -8149,7 +8149,7 @@
[(set (match_operand:SI 0 "register_operand" "=r")
(unspec_volatile:SI [(match_operand:SI 1 "register_operand" "0")
(match_operand:SI 2 "register_operand" "r")]
- UNSPEC_PROBE_STACK_RANGE))]
+ VUNSPEC_PROBE_STACK_RANGE))]
"TARGET_32BIT"
{
return output_probe_stack_range (operands[0], operands[2]);
diff --git a/gcc/config/arm/unspecs.md b/gcc/config/arm/unspecs.md
index 44d4e7d..67acafd 100644
--- a/gcc/config/arm/unspecs.md
+++ b/gcc/config/arm/unspecs.md
@@ -84,7 +84,6 @@
UNSPEC_VRINTA ; Represent a float to integral float rounding
; towards nearest, ties away from zero.
UNSPEC_PROBE_STACK ; Probe stack memory reference
- UNSPEC_PROBE_STACK_RANGE ; Probe stack range
])
(define_c_enum "unspec" [
@@ -147,6 +146,7 @@
VUNSPEC_STL ; Represent a store-register-release.
VUNSPEC_GET_FPSCR ; Represent fetch of FPSCR content.
VUNSPEC_SET_FPSCR ; Represent assign of FPSCR content.
+ VUNSPEC_PROBE_STACK_RANGE ; Represent stack range probing.
])
;; Enumerators for NEON unspecs.