summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/rtl.def15
-rw-r--r--gcc/rtl.h2
3 files changed, 19 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a24d9fea077..3710865a76a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+Tue Nov 4 18:49:42 1997 Jeffrey A Law (law@cygnus.com)
+
+ * rtl.def (CODE_LABEL): Use separate fields for LABEL_NUSES
+ and LABEL_REFS fields.
+ * rtl.h (LABEL_REFS): Update.
+
Tue Nov 4 16:55:11 1997 Jim Wilson <wilson@cygnus.com>
* mips.md (insv, extzv, extv): Add change_address call.
diff --git a/gcc/rtl.def b/gcc/rtl.def
index ac51b6d50f7..d0627791b64 100644
--- a/gcc/rtl.def
+++ b/gcc/rtl.def
@@ -368,8 +368,8 @@ DEF_RTL_EXPR(BARRIER, "barrier", "iuu", 'x')
3: is a number that is unique in the entire compilation.
4: is the user-given name of the label, if any.
5: is used in jump.c for the use-count of the label.
- and in flow.c to point to the chain of label_ref's to this label. */
-DEF_RTL_EXPR(CODE_LABEL, "code_label", "iuuis0", 'x')
+ 6: is used in flow.c to point to the chain of label_ref's to this label. */
+DEF_RTL_EXPR(CODE_LABEL, "code_label", "iuuis00", 'x')
/* Say where in the code a source line starts, for symbol table's sake.
Contains a filename and a line number. Line numbers <= 0 are special:
@@ -385,7 +385,7 @@ DEF_RTL_EXPR(NOTE, "note", "iuusn", 'x')
it contains helps to build the mapping function between the rtx's of
the function to be inlined and the current function being expanded. */
-DEF_RTL_EXPR(INLINE_HEADER, "inline_header", "iuuuiiiiiieeiiEeEss", 'x')
+DEF_RTL_EXPR(INLINE_HEADER, "inline_header", "iuuuiiiiiieeiiEeEsse", 'x')
/* ----------------------------------------------------------------------
Top level constituents of INSN, JUMP_INSN and CALL_INSN.
@@ -571,6 +571,15 @@ DEF_RTL_EXPR(SYMBOL_REF, "symbol_ref", "s", 'o')
pretend to be looking at the entire value and comparing it. */
DEF_RTL_EXPR(CC0, "cc0", "", 'o')
+/* Reference to the address of a register. Removed by purge_addressof after
+ CSE has elided as many as possible.
+ 1st operand: the register we may need the address of.
+ 2nd operand: the original pseudo regno we were generated for.
+ 3rd operand: the decl for the object in the register, for
+ put_reg_in_stack. */
+
+DEF_RTL_EXPR(ADDRESSOF, "addressof", "ei0", 'o')
+
/* =====================================================================
A QUEUED expression really points to a member of the queue of instructions
to be output later for postincrement/postdecrement.
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 16de2806d03..9f9abda2962 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -464,7 +464,7 @@ extern char *note_insn_name[];
each CODE_LABEL starts a chain that goes through
all the LABEL_REFs that jump to that label.
The chain eventually winds up at the CODE_LABEL; it is circular. */
-#define LABEL_REFS(LABEL) ((LABEL)->fld[5].rtx)
+#define LABEL_REFS(LABEL) ((LABEL)->fld[6].rtx)
/* This is the field in the LABEL_REF through which the circular chain
of references to a particular label is linked.