OSDN Git Service

(BYTECODE_LABEL, BYTECODE_OFFSET, BYTECODE_BC_LABEL):
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Sep 1993 19:22:11 +0000 (19:22 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Sep 1993 19:22:11 +0000 (19:22 +0000)
(BYTECODE_UID): New macros.
(struct rtx_def): Delete elements label, offset, bc_label, uid.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@5446 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/rtl.h

index 945fbc8..c65afba 100644 (file)
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -139,24 +139,9 @@ typedef struct rtx_def
      The number of operands and their types are controlled
      by the `code' field, according to rtl.def.  */
   rtunion fld[1];
-
-  /* The rest is used instead of the above if bytecode is being output */
-
-  /* For static or external objects.  */
-  char *label;
-
-  /* From the named label, or the local variable pointer or the
-     argument pointer, depending on context.  */
-
-  int offset;
-
-  /* For goto labels inside bytecode functions.  */
-  struct bc_label *bc_label;
-
-  /* A unique identifier */
-  int uid;
 } *rtx;
 
+
 /* Add prototype support.  */
 #ifndef PROTO
 #if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)
@@ -434,6 +419,17 @@ extern char *note_insn_name[];
    of LABEL_REFs that point at it, so unused labels can be deleted.  */
 #define LABEL_NUSES(LABEL) ((LABEL)->fld[5].rtint)
 
+/* The rest is used instead of the above, in a CODE_LABEL,
+   if bytecode is being output.
+   We make the slightly klugy assumption that a LABEL has enough slots
+   to hold these things.  That happens to be true.  */
+
+/* For static or external objects.  */
+#define BYTECODE_LABEL(X) (XEXP ((X), 0))
+
+/* For goto labels inside bytecode functions.  */
+#define BYTECODE_BC_LABEL(X) (*(struct bc_label **) &XEXP ((X), 1))
+
 /* In jump.c, each JUMP_INSN can point to a label that it can jump to,
    so that if the JUMP_INSN is deleted, the label's LABEL_NUSES can
    be decremented and possibly the label can be deleted.  */