aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl.h
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@cygnus.com>1998-12-08 14:04:03 +0000
committerAndrew Macleod <amacleod@gcc.gnu.org>1998-12-08 14:04:03 +0000
commite6cfb550ab17484da95c0a3e94773fa42dccd27c (patch)
tree7f21607b0446aa635cee54fb52e2f750bc2be0d5 /gcc/rtl.h
parent2bfdc2d4e73144131b2e2de7ccfc1183f63175ac (diff)
downloadgcc-e6cfb550ab17484da95c0a3e94773fa42dccd27c.zip
gcc-e6cfb550ab17484da95c0a3e94773fa42dccd27c.tar.gz
gcc-e6cfb550ab17484da95c0a3e94773fa42dccd27c.tar.bz2
See ChangeLog..
Tue Dec 8 15:32:56 EST 1998 Andrew MacLeod <amacleod@cygnus.com> See ChangeLog.. These are the files that were changed: * eh-common.h (struct eh_context): Add table_index for rethrows. * rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes. * rtl.c (reg_note_name): Add strings for new reg_note enums. * expr.h (rethrow_libfunc): New library decl. * optabs.c (rethrow_libfunc): Initialize. * except.h (struct eh_entry): Add new field 'rethrow_label'. * except.c (create_rethrow_ref): New function to create a single * flow.c (make_edges): Add different edges for rethrow calls, * integrate.c (save_for_inline_eh_labelmap): New callback routine to * libgcc2.c (find_exception_handler): Generalize to enable it to * cp/except.c * cp/exception.cc From-SVN: r24194
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r--gcc/rtl.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/gcc/rtl.h b/gcc/rtl.h
index da22adb..940de73 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -340,6 +340,14 @@ typedef struct rtvec_def{
REG_FRAME_RELATED_EXPR is attached to insns that are RTX_FRAME_RELATED_P,
but are too complex for DWARF to interpret what they imply. The attached
rtx is used instead of intuition. */
+/* REG_EH_REGION is used to indicate what exception region an INSN
+ belongs in. This can be used to indicate what region a call may throw
+ to. a REGION of 0 indicates that a call cannot throw at all.
+ REG_EH_RETHROW is used to indicate what that a call is actually a
+ call to rethrow, and specifies which region the rethrow is targetting.
+ This provides a way to generate the non standard flow edges required
+ for a rethrow. */
+
#define REG_NOTES(INSN) ((INSN)->fld[6].rtx)
@@ -353,7 +361,8 @@ enum reg_note { REG_DEAD = 1, REG_INC = 2, REG_EQUIV = 3, REG_WAS_0 = 4,
REG_DEP_ANTI = 14, REG_DEP_OUTPUT = 15, REG_BR_PROB = 16,
REG_EXEC_COUNT = 17, REG_NOALIAS = 18, REG_SAVE_AREA = 19,
REG_BR_PRED = 20, REG_EH_CONTEXT = 21,
- REG_FRAME_RELATED_EXPR = 22 };
+ REG_FRAME_RELATED_EXPR = 22, REG_EH_REGION = 23,
+ REG_EH_RETHROW = 24 };
/* The base value for branch probability notes. */
#define REG_BR_PROB_BASE 10000
@@ -617,6 +626,10 @@ extern char *note_insn_name[];
/* Flag in a SYMBOL_REF for machine-specific purposes. */
#define SYMBOL_REF_FLAG(RTX) ((RTX)->volatil)
+/* 1 in a SYMBOL_REF if it represents a symbol which might have to change
+ if its inlined or unrolled. */
+#define SYMBOL_REF_NEED_ADJUST(RTX) ((RTX)->in_struct)
+
/* 1 means a SYMBOL_REF has been the library function in emit_library_call. */
#define SYMBOL_REF_USED(RTX) ((RTX)->used)