aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-09-24 19:22:11 +0000
committerRichard Stallman <rms@gnu.org>1993-09-24 19:22:11 +0000
commit73e8e1ecab9b85e451a5008b2601d6d13747b0ed (patch)
tree7084f81741434a61862b1369b8aa7db37c0f9352
parentff32812a4744c908eabf8ca2cc09f4d9d6fc3eef (diff)
downloadgcc-73e8e1ecab9b85e451a5008b2601d6d13747b0ed.zip
gcc-73e8e1ecab9b85e451a5008b2601d6d13747b0ed.tar.gz
gcc-73e8e1ecab9b85e451a5008b2601d6d13747b0ed.tar.bz2
(BYTECODE_LABEL, BYTECODE_OFFSET, BYTECODE_BC_LABEL):
(BYTECODE_UID): New macros. (struct rtx_def): Delete elements label, offset, bc_label, uid. From-SVN: r5446
-rw-r--r--gcc/rtl.h28
1 files changed, 12 insertions, 16 deletions
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 945fbc8..c65afba 100644
--- 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. */