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
This commit is contained in:
Eric Botcazou 2015-12-04 18:25:54 +00:00
parent f0a7c00bfe
commit f58101cf28
4 changed files with 16 additions and 6 deletions

View File

@ -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.

View File

@ -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]);

View File

@ -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]);

View File

@ -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.