diff options
author | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2010-07-02 21:25:28 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2010-07-02 21:25:28 +0000 |
commit | 260c8ba389c4a31a7a4d7cfe0fc55492b2f1b74f (patch) | |
tree | 07029562f5d29447aaea45407baa8ff6842f7694 /gcc/config/sparc/sparc.md | |
parent | 8c54dc55ef8e29da0f1cd3836dbbe705239c415e (diff) | |
download | gcc-260c8ba389c4a31a7a4d7cfe0fc55492b2f1b74f.zip gcc-260c8ba389c4a31a7a4d7cfe0fc55492b2f1b74f.tar.gz gcc-260c8ba389c4a31a7a4d7cfe0fc55492b2f1b74f.tar.bz2 |
expr.h (emit_stack_probe): Declare.
* expr.h (emit_stack_probe): Declare.
* explow.c (emit_stack_probe): Make global.
(anti_adjust_stack_and_probe): Fix comments.
* config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
* config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
* config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
* config/sparc/sparc.c: Include except.h.
(sparc_emit_probe_stack_range): New function.
(output_probe_stack_range): Likewise.
(sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
built-in stack checking is enabled.
* config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
* config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
(probe_stack_range): New insn.
From-SVN: r161749
Diffstat (limited to 'gcc/config/sparc/sparc.md')
-rw-r--r-- | gcc/config/sparc/sparc.md | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md index 7eb8ece..301a63c 100644 --- a/gcc/config/sparc/sparc.md +++ b/gcc/config/sparc/sparc.md @@ -75,6 +75,7 @@ (UNSPECV_CAS 8) (UNSPECV_SWAP 9) (UNSPECV_LDSTUB 10) + (UNSPECV_PROBE_STACK_RANGE 11) ]) @@ -6340,6 +6341,15 @@ = adjust_address (operands[0], GET_MODE (operands[0]), SPARC_STACK_BIAS); }) +(define_insn "probe_stack_range<P:mode>" + [(set (match_operand:P 0 "register_operand" "=r") + (unspec_volatile:P [(match_operand:P 1 "register_operand" "0") + (match_operand:P 2 "register_operand" "r")] + UNSPECV_PROBE_STACK_RANGE))] + "" + "* return output_probe_stack_range (operands[0], operands[2]);" + [(set_attr "type" "multi")]) + ;; Prepare to return any type including a structure value. (define_expand "untyped_return" |