diff options
author | Ilya Zakharevich <ilya@math.berkeley.edu> | 1999-06-12 00:49:09 -0400 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1999-07-06 10:17:52 +0000 |
commit | b162f9ead0a98db35cdcfc8c889e344c040c8d8e (patch) | |
tree | a63f009c58b2d69d004f575eb9e2215205385270 /op.h | |
parent | c70704064b4c55c8116e7b43f88c86dc34819ee2 (diff) | |
download | perl-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.h | 45 |
1 files changed, 26 insertions, 19 deletions
@@ -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 |