summaryrefslogtreecommitdiff
path: root/op.h
diff options
context:
space:
mode:
authorIlya Zakharevich <ilya@math.berkeley.edu>1999-06-12 00:49:09 -0400
committerGurusamy Sarathy <gsar@cpan.org>1999-07-06 10:17:52 +0000
commitb162f9ead0a98db35cdcfc8c889e344c040c8d8e (patch)
treea63f009c58b2d69d004f575eb9e2215205385270 /op.h
parentc70704064b4c55c8116e7b43f88c86dc34819ee2 (diff)
downloadperl-b162f9ead0a98db35cdcfc8c889e344c040c8d8e.tar.gz
Optimize away OP_SASSIGN
Message-Id: <199906120849.EAA26986@monk.mps.ohio-state.edu> p4raw-id: //depot/perl@3612
Diffstat (limited to 'op.h')
-rw-r--r--op.h45
1 files changed, 26 insertions, 19 deletions
diff --git a/op.h b/op.h
index a13df7752e..8c6f336ca2 100644
--- a/op.h
+++ b/op.h
@@ -131,6 +131,10 @@ typedef U32 PADOFFSET;
#define OPpLVAL_DEFER 16 /* Defer creation of array/hash elem */
/* for OP_RV2?V, lower bits carry hints */
+/* Private for OPs with TARGLEX */
+ /* (lower bits may carry MAXARG) */
+#define OPpTARGET_MY 16 /* Target is PADMY. */
+
/* Private for OP_CONST */
#define OPpCONST_STRICT 8 /* bearword subject to strict 'subs' */
#define OPpCONST_ENTERED 16 /* Has been entered as symbol. */
@@ -302,27 +306,30 @@ struct loop {
#define OA_OTHERINT 32
#define OA_DANGEROUS 64
#define OA_DEFGV 128
+#define OA_TARGLEX 256
/* The next 4 bits encode op class information */
-#define OA_CLASS_MASK (15 << 8)
-
-#define OA_BASEOP (0 << 8)
-#define OA_UNOP (1 << 8)
-#define OA_BINOP (2 << 8)
-#define OA_LOGOP (3 << 8)
-#define OA_CONDOP (4 << 8)
-#define OA_LISTOP (5 << 8)
-#define OA_PMOP (6 << 8)
-#define OA_SVOP (7 << 8)
-#define OA_GVOP (8 << 8)
-#define OA_PVOP_OR_SVOP (9 << 8)
-#define OA_LOOP (10 << 8)
-#define OA_COP (11 << 8)
-#define OA_BASEOP_OR_UNOP (12 << 8)
-#define OA_FILESTATOP (13 << 8)
-#define OA_LOOPEXOP (14 << 8)
-
-#define OASHIFT 12
+#define OCSHIFT 9
+
+#define OA_CLASS_MASK (15 << OCSHIFT)
+
+#define OA_BASEOP (0 << OCSHIFT)
+#define OA_UNOP (1 << OCSHIFT)
+#define OA_BINOP (2 << OCSHIFT)
+#define OA_LOGOP (3 << OCSHIFT)
+#define OA_CONDOP (4 << OCSHIFT)
+#define OA_LISTOP (5 << OCSHIFT)
+#define OA_PMOP (6 << OCSHIFT)
+#define OA_SVOP (7 << OCSHIFT)
+#define OA_GVOP (8 << OCSHIFT)
+#define OA_PVOP_OR_SVOP (9 << OCSHIFT)
+#define OA_LOOP (10 << OCSHIFT)
+#define OA_COP (11 << OCSHIFT)
+#define OA_BASEOP_OR_UNOP (12 << OCSHIFT)
+#define OA_FILESTATOP (13 << OCSHIFT)
+#define OA_LOOPEXOP (14 << OCSHIFT)
+
+#define OASHIFT 13
/* Remaining nybbles of PL_opargs */
#define OA_SCALAR 1