diff options
author | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2015-12-04 18:25:54 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2015-12-04 18:25:54 +0000 |
commit | f58101cf288f731c7ca5598d14254940cd8d0e8a (patch) | |
tree | ac78085cd4b5b9083ba8297440f00e5a4e546e5b | |
parent | f0a7c00bfe8a7e2af956eedfbdbb5cf63d28a1dc (diff) | |
download | gcc-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/ChangeLog | 14 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.md | 4 | ||||
-rw-r--r-- | gcc/config/arm/arm.md | 2 | ||||
-rw-r--r-- | gcc/config/arm/unspecs.md | 2 |
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. |