summaryrefslogtreecommitdiff
path: root/op.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2005-12-22 11:23:34 +0000
committerNicholas Clark <nick@ccl4.org>2005-12-22 11:23:34 +0000
commite26df76ac13ccf3f750bea05eac65b7ffffc7826 (patch)
treed11edf27d8ba34c895c8936275642e04a8ccebb9 /op.h
parent08247bd41cc7b76a946c65fcbf364608f5bde98d (diff)
downloadperl-e26df76ac13ccf3f750bea05eac65b7ffffc7826.tar.gz
Add an optimisation to allow proxy constant subroutines to be copied
as proxy constant subroutines in a new symbol table where possible. (Rather than converting them to full blown constant subroutines and instantiating 2 typeglobs) p4raw-id: //depot/perl@26446
Diffstat (limited to 'op.h')
-rw-r--r--op.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/op.h b/op.h
index b3f91aa341..74bc179812 100644
--- a/op.h
+++ b/op.h
@@ -140,6 +140,7 @@ Deprecated. Use C<GIMME_V> instead.
/* Private for OP_SASSIGN */
#define OPpASSIGN_BACKWARDS 64 /* Left & right switched. */
+#define OPpASSIGN_CV_TO_GV 128 /* Possible optimisation for constants. */
/* Private for OP_MATCH and OP_SUBST{,CONST} */
#define OPpRUNTIME 64 /* Pattern coming in on the stack */
@@ -181,6 +182,14 @@ Deprecated. Use C<GIMME_V> instead.
#define OPpMAYBE_LVSUB 8 /* We might be an lvalue to return */
/* for OP_RV2?V, lower bits carry hints (currently only HINT_STRICT_REFS) */
+ /* OP_RV2GV only */
+#define OPpDONT_INIT_GV 8 /* Call gv_fetchpv with GV_NOINIT */
+/* (Therefore will return whatever is currently in the symbol table, not
+ guaranteed to be a PVGV) */
+
+ /* OP_RV2CV only */
+#define OPpMAY_RETURN_CONSTANT 1 /* If a constant sub, return the constant */
+
/* Private for OPs with TARGLEX */
/* (lower bits may carry MAXARG) */
#define OPpTARGET_MY 16 /* Target is PADMY. */