aboutsummaryrefslogtreecommitdiff
path: root/gcc/incpath.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2015-09-17 11:06:57 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2015-09-17 11:06:57 +0000
commit4fb94ef9aa797bb3ccd23157aa8fd66ff8e80bc0 (patch)
treebd682013d2435ee656e6f825c2b7bede0f1aa2aa /gcc/incpath.c
parent2e96ac06b296e3b66440d5e862dd1761e7a6cb39 (diff)
downloadgcc-4fb94ef9aa797bb3ccd23157aa8fd66ff8e80bc0.zip
gcc-4fb94ef9aa797bb3ccd23157aa8fd66ff8e80bc0.tar.gz
gcc-4fb94ef9aa797bb3ccd23157aa8fd66ff8e80bc0.tar.bz2
re PR middle-end/65958 (-fstack-check breaks alloca on architectures using generic stack checking)
PR middle-end/65958 * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define. * config/arm/arm-protos.h (output_probe_stack_range): Declare. * config/arm/arm.c: Include common/common-target.h. (use_return_insn): Return 0 if the static chain register was saved above a non-APCS frame. (arm_compute_static_chain_stack_bytes): Adjust for stack checking. (struct scratch_reg): New. (get_scratch_register_on_entry): New function. (release_scratch_register_on_entry): Likewise. (arm_emit_probe_stack_range): Likewise. (output_probe_stack_range): Likewise. (arm_expand_prologue): Factor out code dealing with the IP register for nested function and adjust it for stack checking. Invoke arm_emit_probe_stack_range if static builtin stack checking is enabled. (thumb1_expand_prologue): Sorry out if static builtin stack checking is enabled. (arm_expand_epilogue): Add the saved static chain register, if any, to the amount of pre-pushed registers to pop. (arm_frame_pointer_required): Return true if static stack checking is enabled and we want to catch the exception with the EABI unwinder. * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant. (UNSPEC_PROBE_STACK_RANGE): Likewise. * config/arm/arm.md (probe_stack): New insn. (probe_stack_range): Likewise. From-SVN: r227860
Diffstat (limited to 'gcc/incpath.c')
0 files changed, 0 insertions, 0 deletions