aboutsummaryrefslogtreecommitdiffstats
path: root/decompile.c
diff options
context:
space:
mode:
authornop <nop>1998-12-14 13:17:26 +0000
committernop <nop>1998-12-14 13:17:26 +0000
commitc8db4429501e7e33e519e4f75ca56311e3298128 (patch)
tree3404f267560b4977ad18a43ae9a147d5312382c1 /decompile.c
parentfa306b4cdc64de192c8b034fe8167711799a07a2 (diff)
downloadmoo-cvs-c8db4429501e7e33e519e4f75ca56311e3298128.tar.gz
moo-cvs-c8db4429501e7e33e519e4f75ca56311e3298128.tar.xz
moo-cvs-c8db4429501e7e33e519e4f75ca56311e3298128.zip
Merge UNSAFE_OPTS (ref fixups); fix Log tag placement to fit CVS whims
Diffstat (limited to 'decompile.c')
-rw-r--r--decompile.c27
1 files changed, 23 insertions, 4 deletions
diff --git a/decompile.c b/decompile.c
index d78c652..b7803ad 100644
--- a/decompile.c
+++ b/decompile.c
@@ -155,6 +155,13 @@ decompile(Bytecodes bc, Byte * start, Byte * end, Stmt ** stmt_sink,
e->e.id = PUSH_n_INDEX(op);
push_expr(HOT_OP(e));
continue;
+#ifdef BYTECODE_REDUCE_REF
+ } else if (IS_PUSH_CLEAR_n(op)) {
+ e = alloc_expr(EXPR_ID);
+ e->e.id = PUSH_CLEAR_n_INDEX(op);
+ push_expr(HOT_OP(e));
+ continue;
+#endif /* BYTECODE_REDUCE_REF */
} else if (IS_PUT_n(op)) {
e = alloc_expr(EXPR_ID);
e->e.id = PUT_n_INDEX(op);
@@ -984,10 +991,22 @@ find_line_number(Program * prog, int vector, int pc)
char rcsid_decompile[] = "$Id$";
-/* $Log$
-/* Revision 1.3 1997/07/07 03:24:53 nop
-/* Merge UNSAFE_OPTS (r5) after extensive testing.
-/*
+/*
+ * $Log$
+ * Revision 1.4 1998/12/14 13:17:40 nop
+ * Merge UNSAFE_OPTS (ref fixups); fix Log tag placement to fit CVS whims
+ *
+ * Revision 1.3 1997/07/07 03:24:53 nop
+ * Merge UNSAFE_OPTS (r5) after extensive testing.
+ *
+ * Revision 1.2.2.2 1997/09/09 07:01:16 bjj
+ * Change bytecode generation so that x=f(x) calls f() without holding a ref
+ * to the value of x in the variable slot. See the options.h comment for
+ * BYTECODE_REDUCE_REF for more details.
+ *
+ * This checkin also makes x[y]=z (OP_INDEXSET) take advantage of that (that
+ * new code is not conditional and still works either way).
+ *
* Revision 1.2.2.1 1997/06/05 09:00:00 bjj
* Cache one pc/lineno pair with each Program. Hopefully most programs that
* fail multiple times usually do it on the same line!