aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>1998-02-02 11:28:57 -0800
committerRichard Henderson <rth@gcc.gnu.org>1998-02-02 11:28:57 -0800
commit6fd1c67b8b4b139397e122ed9440da75fdab277c (patch)
tree6fde390bee19acf841e5ec6c02e403d195086099 /gcc/expr.h
parent95936d18c112aa1935ee7c9338857aaa3481beb1 (diff)
downloadgcc-6fd1c67b8b4b139397e122ed9440da75fdab277c.zip
gcc-6fd1c67b8b4b139397e122ed9440da75fdab277c.tar.gz
gcc-6fd1c67b8b4b139397e122ed9440da75fdab277c.tar.bz2
expr.c (expand_builtin_setjmp): Accept two new arguments for the labels to branch to on first and subsequent...
* expr.c (expand_builtin_setjmp): Accept two new arguments for the labels to branch to on first and subsequent executions. Don't play with __dummy. Rename `setjmp' insn to `builtin_setjmp_setup', and provide it with the jmp_buf. Use only one of `builtin_setjmp_receiver' or `nonlocal_goto_receiver', and provide the former with the target label. (expand_builtin) [BUILTIN_SETJMP]: Generate a label for use by setjmp. (expand_builtin) [BUILTIN_LONGJMP]: Split out to ... (expand_builtin_longjmp): ... here. Recognize a `builtin_longjmp' insn to replace all of the normal nonlocal_goto code. Don't play with __dummy. Correct arguments to nonlocal_goto. * expr.h (expand_builtin_setjmp): Update prototype. * except.c (start_dynamic_handler): When using builtin_setjmp, generate more accurate flow information. * alpha.md (nonlocal_goto_receiver_osf): Delete. (nonlocal_goto_receiver_vms): Rename to nonlocal_goto_receiver. (builtin_longjmp, builtin_setjmp_receiver): New. * sparc.md (update_return): Disambiguate unspec number. (nonlocal_goto): Rearrange arguments to match caller in except.c. (builtin_setjmp_setup): Rename from setjmp. Match and ignore the jmp_buf operand. * mips.md (nonlocal_goto_receiver, builtin_setjmp_receiver): Remove. (builtin_setjmp_setup*, builtin_longjmp): New. From-SVN: r17602
Diffstat (limited to 'gcc/expr.h')
-rw-r--r--gcc/expr.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/expr.h b/gcc/expr.h
index e818d5a..080992f 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -752,7 +752,7 @@ extern rtx store_expr PROTO((tree, rtx, int));
Useful after calling expand_expr with 1 as sum_ok. */
extern rtx force_operand PROTO((rtx, rtx));
-extern rtx expand_builtin_setjmp PROTO((rtx, rtx));
+extern rtx expand_builtin_setjmp PROTO((rtx, rtx, rtx, rtx));
#ifdef TREE_CODE
/* Generate code for computing expression EXP.