(BYTECODE_LABEL, BYTECODE_OFFSET, BYTECODE_BC_LABEL):
authorRichard Stallman <rms@gnu.org>
Fri, 24 Sep 1993 19:22:11 +0000 (19:22 +0000)
committerRichard Stallman <rms@gnu.org>
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.

From-SVN: r5446

gcc/rtl.h

index 945fbc8d22c7929b751e109e3357bfd4e2f963a2..c65afba9f73e040526ce1d4f50ff10cf80af303a 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.  */