summaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorbson <bson@138bc75d-0d04-0410-961f-82ee72b054a4>1993-09-21 21:25:24 +0000
committerbson <bson@138bc75d-0d04-0410-961f-82ee72b054a4>1993-09-21 21:25:24 +0000
commit649d8da671b8294cfd36bbbecc22d2e6d70f545f (patch)
tree9955b06ba9da7010dd96c146915e52676d09d15f /gcc/emit-rtl.c
parent9175412d6ac92ee9a762d3033177fcbf9359a75e (diff)
downloadgcc-649d8da671b8294cfd36bbbecc22d2e6d70f545f.tar.gz
bytecode
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@5379 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r--gcc/emit-rtl.c41
1 files changed, 39 insertions, 2 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 04b9069ea58..a927fd0a5ce 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -42,8 +42,29 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "regs.h"
#include "insn-config.h"
#include "real.h"
+#include "obstack.h"
+
+#include "bytecode.h"
+#include "machmode.h"
+#include "bc-opcode.h"
+#include "bc-typecd.h"
+#include "bc-optab.h"
+#include "bc-emit.h"
+
#include <stdio.h>
+
+/* Opcode names */
+#ifdef BCDEBUG_PRINT_CODE
+char *opcode_name[] =
+{
+#include "bc-opname.h"
+
+"***END***"
+};
+#endif
+
+
/* This is reset to LAST_VIRTUAL_REGISTER + 1 at the start of each function.
After rtl generation, it is 1 plus the largest register number used. */
@@ -203,6 +224,11 @@ extern int emit_lineno;
rtx change_address ();
void init_emit ();
+extern struct obstack *rtl_obstack;
+
+extern int stack_depth;
+extern int max_stack_depth;
+
/* rtx gen_rtx (code, mode, [element1, ..., elementn])
**
** This routine generates an RTX of the size specified by
@@ -1216,8 +1242,12 @@ change_address (memref, mode, addr)
rtx
gen_label_rtx ()
{
- register rtx label = gen_rtx (CODE_LABEL, VOIDmode, 0, 0, 0,
- label_num++, NULL_PTR);
+ register rtx label;
+
+ label = output_bytecode
+ ? bc_gen_rtx (0, 0, bc_get_bytecode_label ())
+ : gen_rtx (CODE_LABEL, VOIDmode, 0, 0, 0, label_num++, NULL_PTR);
+
LABEL_NUSES (label) = 0;
return label;
}
@@ -2559,6 +2589,13 @@ emit_line_note (file, line)
char *file;
int line;
{
+ if (output_bytecode)
+ {
+ /* FIXME: for now we do nothing, but eventually we will have to deal with
+ debugging information. */
+ return 0;
+ }
+
emit_filename = file;
emit_lineno = line;