From: Eric Botcazou Date: Fri, 4 Dec 2015 18:25:54 +0000 (+0000) Subject: re PR middle-end/65958 (-fstack-check breaks alloca on architectures using generic... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f58101cf288f731c7ca5598d14254940cd8d0e8a;p=gcc.git 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_): Adjust. From-SVN: r231295 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9aba352870c..39420b13165 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2015-12-04 Eric Botcazou + + 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_): Adjust. + 2015-12-04 David Malcolm * convert.c (convert_to_real_1): When converting from a @@ -309,8 +319,8 @@ 2015-12-03 Jan Hubicka - * 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 f5a8ae7900a..dee757b8207 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 1462a31af9c..a742d8f8cbb 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 44d4e7dae8a..67acafd075f 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.