X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/838f2281125c4e0f98e5d741f9058f09c8242d33..ac5b5e2ca85da2175f9bfcad4fecc9e703956482:/opcode.h diff --git a/opcode.h b/opcode.h index 0a9628d..40cdc81 100644 --- a/opcode.h +++ b/opcode.h @@ -280,6 +280,7 @@ EXTCONST char* const PL_op_name[] = { "aelemfast_lex", "aelem", "aslice", + "kvaslice", "aeach", "akeys", "avalues", @@ -291,7 +292,7 @@ EXTCONST char* const PL_op_name[] = { "rv2hv", "helem", "hslice", - "boolkeys", + "kvhslice", "unpack", "pack", "split", @@ -522,6 +523,15 @@ EXTCONST char* const PL_op_name[] = { "coreargs", "runcv", "fc", + "padcv", + "introcv", + "clonecv", + "padrange", + "refassign", + "lvref", + "lvrefslice", + "lvavref", + "freed", }; #endif @@ -661,6 +671,7 @@ EXTCONST char* const PL_op_desc[] = { "constant lexical array element", "array element", "array slice", + "index/value array slice", "each on array", "keys on array", "values on array", @@ -672,7 +683,7 @@ EXTCONST char* const PL_op_desc[] = { "hash dereference", "hash element", "hash slice", - "boolkeys", + "key/value hash slice", "unpack", "pack", "split", @@ -903,6 +914,15 @@ EXTCONST char* const PL_op_desc[] = { "CORE:: subroutine", "__SUB__", "fc", + "private subroutine", + "private subroutine", + "private subroutine", + "list of private variables", + "lvalue ref assignment", + "lvalue ref assignment", + "lvalue ref assignment", + "lvalue array reference", + "freed op", }; #endif @@ -1056,6 +1076,7 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */ Perl_pp_aelemfast_lex, /* implemented by Perl_pp_aelemfast */ Perl_pp_aelem, Perl_pp_aslice, + Perl_pp_kvaslice, Perl_pp_aeach, Perl_pp_akeys, Perl_pp_avalues, /* implemented by Perl_pp_akeys */ @@ -1067,7 +1088,7 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */ Perl_pp_rv2hv, /* implemented by Perl_pp_rv2av */ Perl_pp_helem, Perl_pp_hslice, - Perl_pp_boolkeys, + Perl_pp_kvhslice, Perl_pp_unpack, Perl_pp_pack, Perl_pp_split, @@ -1298,6 +1319,14 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */ Perl_pp_coreargs, Perl_pp_runcv, Perl_pp_fc, + Perl_pp_padcv, + Perl_pp_introcv, + Perl_pp_clonecv, + Perl_pp_padrange, + Perl_pp_refassign, + Perl_pp_lvref, + Perl_pp_lvrefslice, + Perl_pp_lvavref, } #endif #ifdef PERL_PPADDR_INITED @@ -1340,7 +1369,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */ Perl_ck_null, /* srefgen */ Perl_ck_fun, /* ref */ Perl_ck_fun, /* bless */ - Perl_ck_open, /* backtick */ + Perl_ck_backtick, /* backtick */ Perl_ck_glob, /* glob */ Perl_ck_readline, /* readline */ Perl_ck_null, /* rcatline */ @@ -1360,9 +1389,9 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */ Perl_ck_spair, /* chomp */ Perl_ck_null, /* schomp */ Perl_ck_defined, /* defined */ - Perl_ck_lfun, /* undef */ + Perl_ck_fun, /* undef */ Perl_ck_fun, /* study */ - Perl_ck_lfun, /* pos */ + Perl_ck_fun, /* pos */ Perl_ck_lfun, /* preinc */ Perl_ck_lfun, /* i_preinc */ Perl_ck_lfun, /* predec */ @@ -1384,7 +1413,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */ Perl_ck_null, /* subtract */ Perl_ck_null, /* i_subtract */ Perl_ck_concat, /* concat */ - Perl_ck_fun, /* stringify */ + Perl_ck_stringify, /* stringify */ Perl_ck_bitop, /* left_shift */ Perl_ck_bitop, /* right_shift */ Perl_ck_cmp, /* lt */ @@ -1448,6 +1477,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */ Perl_ck_null, /* aelemfast_lex */ Perl_ck_null, /* aelem */ Perl_ck_null, /* aslice */ + Perl_ck_null, /* kvaslice */ Perl_ck_each, /* aeach */ Perl_ck_each, /* akeys */ Perl_ck_each, /* avalues */ @@ -1459,7 +1489,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */ Perl_ck_rvconst, /* rv2hv */ Perl_ck_null, /* helem */ Perl_ck_null, /* hslice */ - Perl_ck_fun, /* boolkeys */ + Perl_ck_null, /* kvhslice */ Perl_ck_fun, /* unpack */ Perl_ck_fun, /* pack */ Perl_ck_split, /* split */ @@ -1496,7 +1526,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */ Perl_ck_null, /* leavesublv */ Perl_ck_fun, /* caller */ Perl_ck_fun, /* warn */ - Perl_ck_die, /* die */ + Perl_ck_fun, /* die */ Perl_ck_fun, /* reset */ Perl_ck_null, /* lineseq */ Perl_ck_null, /* nextstate */ @@ -1515,7 +1545,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */ Perl_ck_null, /* redo */ Perl_ck_null, /* dump */ Perl_ck_null, /* goto */ - Perl_ck_exit, /* exit */ + Perl_ck_fun, /* exit */ Perl_ck_null, /* method_named */ Perl_ck_null, /* entergiven */ Perl_ck_null, /* leavegiven */ @@ -1596,7 +1626,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */ Perl_ck_ftst, /* fttty */ Perl_ck_ftst, /* fttext */ Perl_ck_ftst, /* ftbinary */ - Perl_ck_chdir, /* chdir */ + Perl_ck_trunc, /* chdir */ Perl_ck_fun, /* chown */ Perl_ck_fun, /* chroot */ Perl_ck_fun, /* unlink */ @@ -1690,6 +1720,14 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */ Perl_ck_null, /* coreargs */ Perl_ck_null, /* runcv */ Perl_ck_fun, /* fc */ + Perl_ck_null, /* padcv */ + Perl_ck_null, /* introcv */ + Perl_ck_null, /* clonecv */ + Perl_ck_null, /* padrange */ + Perl_ck_refassign, /* refassign */ + Perl_ck_null, /* lvref */ + Perl_ck_null, /* lvrefslice */ + Perl_ck_null, /* lvavref */ } #endif #ifdef PERL_CHECK_INITED @@ -1720,7 +1758,7 @@ EXTCONST U32 PL_opargs[] = { 0x00000144, /* rv2sv */ 0x00000104, /* av2arylen */ 0x00000140, /* rv2cv */ - 0x00000600, /* anoncode */ + 0x00000604, /* anoncode */ 0x00001b04, /* prototype */ 0x00002101, /* refgen */ 0x00001106, /* srefgen */ @@ -1746,9 +1784,9 @@ EXTCONST U32 PL_opargs[] = { 0x00002b1d, /* chomp */ 0x00009b9c, /* schomp */ 0x00009b84, /* defined */ - 0x00009b04, /* undef */ + 0x0000fb04, /* undef */ 0x00009b84, /* study */ - 0x00009b8c, /* pos */ + 0x0000fb8c, /* pos */ 0x00001164, /* preinc */ 0x00001144, /* i_preinc */ 0x00001164, /* predec */ @@ -1764,7 +1802,7 @@ EXTCONST U32 PL_opargs[] = { 0x0001121e, /* i_divide */ 0x0001123e, /* modulo */ 0x0001121e, /* i_modulo */ - 0x00012209, /* repeat */ + 0x0001220b, /* repeat */ 0x0001123e, /* add */ 0x0001121e, /* i_add */ 0x0001123e, /* subtract */ @@ -1830,10 +1868,11 @@ EXTCONST U32 PL_opargs[] = { 0x00009b8e, /* lc */ 0x00009b8e, /* quotemeta */ 0x00000148, /* rv2av */ - 0x00013604, /* aelemfast */ + 0x00013644, /* aelemfast */ 0x00013040, /* aelemfast_lex */ 0x00013204, /* aelem */ 0x00023401, /* aslice */ + 0x00023401, /* kvaslice */ 0x00003b00, /* aeach */ 0x00003b08, /* akeys */ 0x00003b08, /* avalues */ @@ -1842,14 +1881,14 @@ EXTCONST U32 PL_opargs[] = { 0x00004b08, /* keys */ 0x00001b00, /* delete */ 0x00001b04, /* exists */ - 0x00000148, /* rv2hv */ + 0x00000140, /* rv2hv */ 0x00014204, /* helem */ 0x00024401, /* hslice */ - 0x00004b00, /* boolkeys */ + 0x00024401, /* kvhslice */ 0x00091480, /* unpack */ - 0x0002140d, /* pack */ + 0x0002140f, /* pack */ 0x00111408, /* split */ - 0x0002140d, /* join */ + 0x0002140f, /* join */ 0x00002401, /* list */ 0x00224200, /* lslice */ 0x00002405, /* anonlist */ @@ -1876,7 +1915,7 @@ EXTCONST U32 PL_opargs[] = { 0x00000304, /* andassign */ 0x00000304, /* orassign */ 0x00000304, /* dorassign */ - 0x00000140, /* method */ + 0x00000e40, /* method */ 0x00002149, /* entersub */ 0x00000100, /* leavesub */ 0x00000100, /* leavesublv */ @@ -1902,7 +1941,7 @@ EXTCONST U32 PL_opargs[] = { 0x00000d44, /* dump */ 0x00000d44, /* goto */ 0x00009b44, /* exit */ - 0x00000640, /* method_named */ + 0x00000e40, /* method_named */ 0x00000340, /* entergiven */ 0x00000100, /* leavegiven */ 0x00000340, /* enterwhen */ @@ -2076,6 +2115,14 @@ EXTCONST U32 PL_opargs[] = { 0x00000600, /* coreargs */ 0x00000004, /* runcv */ 0x00009b8e, /* fc */ + 0x00000040, /* padcv */ + 0x00000040, /* introcv */ + 0x00000040, /* clonecv */ + 0x00000040, /* padrange */ + 0x00000240, /* refassign */ + 0x00000b40, /* lvref */ + 0x00000440, /* lvrefslice */ + 0x00000b40, /* lvavref */ }; #endif @@ -2083,4 +2130,1385 @@ EXTCONST U32 PL_opargs[] = { END_EXTERN_C + +#define OPpLVREF_SV 0x00 +#define OPpARG1_MASK 0x01 +#define OPpCOREARGS_DEREF1 0x01 +#define OPpENTERSUB_INARGS 0x01 +#define OPpSORT_NUMERIC 0x01 +#define OPpTRANS_FROM_UTF 0x01 +#define OPpCONST_NOVER 0x02 +#define OPpCOREARGS_DEREF2 0x02 +#define OPpEVAL_HAS_HH 0x02 +#define OPpFT_ACCESS 0x02 +#define OPpGREP_LEX 0x02 +#define OPpHINT_STRICT_REFS 0x02 +#define OPpSORT_INTEGER 0x02 +#define OPpTRANS_TO_UTF 0x02 +#define OPpARG2_MASK 0x03 +#define OPpCONST_SHORTCIRCUIT 0x04 +#define OPpDONT_INIT_GV 0x04 +#define OPpENTERSUB_HASTARG 0x04 +#define OPpEVAL_UNICODE 0x04 +#define OPpFT_STACKED 0x04 +#define OPpITER_REVERSED 0x04 +#define OPpLVREF_ELEM 0x04 +#define OPpSLICEWARNING 0x04 +#define OPpSORT_REVERSE 0x04 +#define OPpTRANS_IDENTICAL 0x04 +#define OPpARG3_MASK 0x07 +#define OPpPADRANGE_COUNTSHIFT 0x07 +#define OPpCONST_STRICT 0x08 +#define OPpENTERSUB_AMPER 0x08 +#define OPpEVAL_BYTES 0x08 +#define OPpFT_STACKING 0x08 +#define OPpITER_DEF 0x08 +#define OPpLVREF_ITER 0x08 +#define OPpMAYBE_LVSUB 0x08 +#define OPpREVERSE_INPLACE 0x08 +#define OPpSORT_INPLACE 0x08 +#define OPpTRANS_SQUASH 0x08 +#define OPpARG4_MASK 0x0f +#define OPpALLOW_FAKE 0x10 +#define OPpCONST_ENTERED 0x10 +#define OPpENTERSUB_DB 0x10 +#define OPpEVAL_COPHH 0x10 +#define OPpFT_AFTER_t 0x10 +#define OPpLVAL_DEFER 0x10 +#define OPpOPEN_IN_RAW 0x10 +#define OPpOUR_INTRO 0x10 +#define OPpPAD_STATE 0x10 +#define OPpSORT_DESCEND 0x10 +#define OPpSUBSTR_REPL_FIRST 0x10 +#define OPpTARGET_MY 0x10 +#define OPpDEREF_AV 0x20 +#define OPpEARLY_CV 0x20 +#define OPpEVAL_RE_REPARSING 0x20 +#define OPpHUSH_VMSISH 0x20 +#define OPpLVREF_AV 0x20 +#define OPpOPEN_IN_CRLF 0x20 +#define OPpSORT_QSORT 0x20 +#define OPpTRANS_COMPLEMENT 0x20 +#define OPpTRUEBOOL 0x20 +#define OPpASSIGN_BACKWARDS 0x40 +#define OPpASSIGN_COMMON 0x40 +#define OPpCONST_BARE 0x40 +#define OPpCOREARGS_SCALARMOD 0x40 +#define OPpDEREF_HV 0x40 +#define OPpEXISTS_SUB 0x40 +#define OPpFLIP_LINENUM 0x40 +#define OPpHINT_M_VMSISH_STATUS 0x40 +#define OPpLIST_GUESSED 0x40 +#define OPpLVREF_HV 0x40 +#define OPpMAYBE_TRUEBOOL 0x40 +#define OPpMAY_RETURN_CONSTANT 0x40 +#define OPpOPEN_OUT_RAW 0x40 +#define OPpREFCOUNTED 0x40 +#define OPpREPEAT_DOLIST 0x40 +#define OPpRUNTIME 0x40 +#define OPpSLICE 0x40 +#define OPpSORT_STABLE 0x40 +#define OPpTRANS_GROWS 0x40 +#define OPpDEREF 0x60 +#define OPpDEREF_SV 0x60 +#define OPpLVREF_CV 0x60 +#define OPpLVREF_TYPE 0x60 +#define OPpPADRANGE_COUNTMASK 0x7f +#define OPpASSIGN_CV_TO_GV 0x80 +#define OPpCOREARGS_PUSHMARK 0x80 +#define OPpENTERSUB_NOPAREN 0x80 +#define OPpHINT_M_VMSISH_TIME 0x80 +#define OPpLVALUE 0x80 +#define OPpLVAL_INTRO 0x80 +#define OPpOFFBYONE 0x80 +#define OPpOPEN_OUT_CRLF 0x80 +#define OPpPV_IS_UTF8 0x80 +#define OPpSPLIT_IMPLIM 0x80 +#define OPpTRANS_DELETE 0x80 +START_EXTERN_C + +#ifndef PERL_GLOBAL_STRUCT_INIT + +# ifndef DOINIT + +/* data about the flags in op_private */ + +EXTCONST I16 PL_op_private_bitdef_ix[]; +EXTCONST U16 PL_op_private_bitdefs[]; +EXTCONST char PL_op_private_labels[]; +EXTCONST I16 PL_op_private_bitfields[]; +EXTCONST U8 PL_op_private_valid[]; + +# else + + +/* PL_op_private_labels[]: the short descriptions of private flags. + * All labels are concatenated into a single char array + * (separated by \0's) for compactness. + */ + +EXTCONST char PL_op_private_labels[] = { + '$','M','O','D','\0', + '+','1','\0', + '-','\0', + '<','U','T','F','\0', + '>','U','T','F','\0', + 'A','M','P','E','R','\0', + 'A','V','\0', + 'B','A','R','E','\0', + 'B','K','W','A','R','D','\0', + 'B','O','O','L','\0', + 'B','O','O','L','?','\0', + 'B','Y','T','E','S','\0', + 'C','O','M','M','O','N','\0', + 'C','O','M','P','L','\0', + 'C','O','N','S','T','\0', + 'C','O','P','H','H','\0', + 'C','V','\0', + 'C','V','2','G','V','\0', + 'D','B','G','\0', + 'D','E','F','\0', + 'D','E','L','\0', + 'D','E','R','E','F','1','\0', + 'D','E','R','E','F','2','\0', + 'D','E','S','C','\0', + 'D','O','L','I','S','T','\0', + 'D','R','E','F','A','V','\0', + 'D','R','E','F','H','V','\0', + 'D','R','E','F','S','V','\0', + 'E','A','R','L','Y','C','V','\0', + 'E','L','E','M','\0', + 'E','N','T','E','R','E','D','\0', + 'F','A','K','E','\0', + 'F','T','A','C','C','E','S','S','\0', + 'F','T','A','F','T','E','R','t','\0', + 'F','T','S','T','A','C','K','E','D','\0', + 'F','T','S','T','A','C','K','I','N','G','\0', + 'G','R','E','P','L','E','X','\0', + 'G','R','O','W','S','\0', + 'G','U','E','S','S','E','D','\0', + 'H','A','S','_','H','H','\0', + 'H','U','S','H','\0', + 'H','V','\0', + 'I','D','E','N','T','\0', + 'I','M','P','L','I','M','\0', + 'I','N','A','R','G','S','\0', + 'I','N','B','I','N','\0', + 'I','N','C','R','\0', + 'I','N','P','L','A','C','E','\0', + 'I','N','T','\0', + 'I','T','E','R','\0', + 'L','I','N','E','N','U','M','\0', + 'L','V','\0', + 'L','V','D','E','F','E','R','\0', + 'L','V','I','N','T','R','O','\0', + 'L','V','S','U','B','\0', + 'M','A','R','K','\0', + 'N','O','(',')','\0', + 'N','O','I','N','I','T','\0', + 'N','O','V','E','R','\0', + 'N','U','M','\0', + 'O','U','R','I','N','T','R','\0', + 'O','U','T','B','I','N','\0', + 'O','U','T','C','R','\0', + 'Q','S','O','R','T','\0', + 'R','E','F','C','\0', + 'R','E','P','A','R','S','E','\0', + 'R','E','P','L','1','S','T','\0', + 'R','E','V','\0', + 'R','E','V','E','R','S','E','D','\0', + 'R','T','I','M','E','\0', + 'S','H','O','R','T','\0', + 'S','L','I','C','E','\0', + 'S','L','I','C','E','W','A','R','N','\0', + 'S','Q','U','A','S','H','\0', + 'S','T','A','B','L','E','\0', + 'S','T','A','T','E','\0', + 'S','T','R','I','C','T','\0', + 'S','U','B','\0', + 'S','V','\0', + 'T','A','R','G','\0', + 'T','A','R','G','M','Y','\0', + 'U','N','I','\0', + 'U','T','F','\0', + 'V','M','S','I','S','H','_','S','T','A','T','U','S','\0', + 'V','M','S','I','S','H','_','T','I','M','E','\0', + +}; + + + +/* PL_op_private_bitfields[]: details about each bit field type. + * Each definition consists of the following list of words: + * bitmin + * label (index into PL_op_private_labels[]; -1 if no label) + * repeat for each enum entry (if any): + * enum value + * enum label (index into PL_op_private_labels[]) + * -1 + */ + +EXTCONST I16 PL_op_private_bitfields[] = { + 0, 8, -1, + 0, 8, -1, + 0, 8, -1, + 0, 8, -1, + 0, 8, -1, + 0, 8, -1, + 5, -1, 1, 130, 2, 137, 3, 144, -1, + 5, -1, 0, 481, 1, 26, 2, 250, 3, 83, -1, + +}; + + +/* PL_op_private_bitdef_ix[]: map an op number to a starting position + * in PL_op_private_bitdefs. If -1, the op has no bits defined */ + +EXTCONST I16 PL_op_private_bitdef_ix[] = { + -1, /* null */ + -1, /* stub */ + 0, /* scalar */ + 1, /* pushmark */ + 3, /* wantarray */ + 4, /* const */ + 9, /* gvsv */ + 11, /* gv */ + 12, /* gelem */ + 13, /* padsv */ + 16, /* padav */ + 20, /* padhv */ + -1, /* padany */ + 26, /* pushre */ + 27, /* rv2gv */ + 34, /* rv2sv */ + 39, /* av2arylen */ + 41, /* rv2cv */ + -1, /* anoncode */ + 48, /* prototype */ + 49, /* refgen */ + 50, /* srefgen */ + 51, /* ref */ + 52, /* bless */ + 53, /* backtick */ + 58, /* glob */ + 59, /* readline */ + -1, /* rcatline */ + 60, /* regcmaybe */ + 61, /* regcreset */ + 62, /* regcomp */ + 63, /* match */ + 65, /* qr */ + 66, /* subst */ + 68, /* substcont */ + 70, /* trans */ + 78, /* transr */ + 86, /* sassign */ + 89, /* aassign */ + 92, /* chop */ + 93, /* schop */ + 94, /* chomp */ + 96, /* schomp */ + 98, /* defined */ + 99, /* undef */ + 100, /* study */ + 101, /* pos */ + 103, /* preinc */ + 104, /* i_preinc */ + 105, /* predec */ + 106, /* i_predec */ + 107, /* postinc */ + 108, /* i_postinc */ + 110, /* postdec */ + 111, /* i_postdec */ + 113, /* pow */ + 115, /* multiply */ + 117, /* i_multiply */ + 119, /* divide */ + 121, /* i_divide */ + 123, /* modulo */ + 125, /* i_modulo */ + 127, /* repeat */ + 129, /* add */ + 131, /* i_add */ + 133, /* subtract */ + 135, /* i_subtract */ + 137, /* concat */ + 139, /* stringify */ + 141, /* left_shift */ + 143, /* right_shift */ + 145, /* lt */ + 146, /* i_lt */ + 147, /* gt */ + 148, /* i_gt */ + 149, /* le */ + 150, /* i_le */ + 151, /* ge */ + 152, /* i_ge */ + 153, /* eq */ + 154, /* i_eq */ + 155, /* ne */ + 156, /* i_ne */ + 157, /* ncmp */ + 158, /* i_ncmp */ + 159, /* slt */ + 160, /* sgt */ + 161, /* sle */ + 162, /* sge */ + 163, /* seq */ + 164, /* sne */ + 165, /* scmp */ + 166, /* bit_and */ + 167, /* bit_xor */ + 168, /* bit_or */ + 169, /* negate */ + 170, /* i_negate */ + 172, /* not */ + 173, /* complement */ + 174, /* smartmatch */ + 175, /* atan2 */ + 177, /* sin */ + 179, /* cos */ + 181, /* rand */ + 183, /* srand */ + 185, /* exp */ + 187, /* log */ + 189, /* sqrt */ + 191, /* int */ + 193, /* hex */ + 195, /* oct */ + 197, /* abs */ + 199, /* length */ + 201, /* substr */ + 204, /* vec */ + 206, /* index */ + 208, /* rindex */ + 210, /* sprintf */ + 211, /* formline */ + 212, /* ord */ + 214, /* chr */ + 216, /* crypt */ + 218, /* ucfirst */ + 219, /* lcfirst */ + 220, /* uc */ + 221, /* lc */ + 222, /* quotemeta */ + 223, /* rv2av */ + 229, /* aelemfast */ + 230, /* aelemfast_lex */ + 231, /* aelem */ + 236, /* aslice */ + 239, /* kvaslice */ + 240, /* aeach */ + 241, /* akeys */ + 242, /* avalues */ + 243, /* each */ + 244, /* values */ + 245, /* keys */ + 247, /* delete */ + 250, /* exists */ + 252, /* rv2hv */ + 260, /* helem */ + 265, /* hslice */ + 268, /* kvhslice */ + 269, /* unpack */ + 270, /* pack */ + 271, /* split */ + 273, /* join */ + 274, /* list */ + 276, /* lslice */ + 277, /* anonlist */ + 278, /* anonhash */ + 279, /* splice */ + 280, /* push */ + 282, /* pop */ + 283, /* shift */ + 284, /* unshift */ + 286, /* sort */ + 293, /* reverse */ + 295, /* grepstart */ + 296, /* grepwhile */ + 298, /* mapstart */ + 299, /* mapwhile */ + 301, /* range */ + 302, /* flip */ + 304, /* flop */ + 306, /* and */ + 307, /* or */ + 308, /* xor */ + 309, /* dor */ + 310, /* cond_expr */ + 312, /* andassign */ + 313, /* orassign */ + 314, /* dorassign */ + 315, /* method */ + 316, /* entersub */ + 323, /* leavesub */ + 325, /* leavesublv */ + 327, /* caller */ + 329, /* warn */ + 330, /* die */ + 331, /* reset */ + -1, /* lineseq */ + 332, /* nextstate */ + 335, /* dbstate */ + -1, /* unstack */ + -1, /* enter */ + 338, /* leave */ + -1, /* scope */ + 340, /* enteriter */ + 344, /* iter */ + -1, /* enterloop */ + 345, /* leaveloop */ + -1, /* return */ + 347, /* last */ + 349, /* next */ + 351, /* redo */ + 353, /* dump */ + 355, /* goto */ + 357, /* exit */ + 358, /* method_named */ + 359, /* entergiven */ + 360, /* leavegiven */ + 361, /* enterwhen */ + 362, /* leavewhen */ + -1, /* break */ + -1, /* continue */ + 363, /* open */ + 368, /* close */ + 369, /* pipe_op */ + 370, /* fileno */ + 371, /* umask */ + 372, /* binmode */ + 373, /* tie */ + 374, /* untie */ + 375, /* tied */ + 376, /* dbmopen */ + 377, /* dbmclose */ + 378, /* sselect */ + 379, /* select */ + 380, /* getc */ + 381, /* read */ + 382, /* enterwrite */ + 383, /* leavewrite */ + -1, /* prtf */ + -1, /* print */ + -1, /* say */ + 385, /* sysopen */ + 386, /* sysseek */ + 387, /* sysread */ + 388, /* syswrite */ + 389, /* eof */ + 390, /* tell */ + 391, /* seek */ + 392, /* truncate */ + 393, /* fcntl */ + 394, /* ioctl */ + 395, /* flock */ + 397, /* send */ + 398, /* recv */ + 399, /* socket */ + 400, /* sockpair */ + 401, /* bind */ + 402, /* connect */ + 403, /* listen */ + 404, /* accept */ + 405, /* shutdown */ + 406, /* gsockopt */ + 407, /* ssockopt */ + 408, /* getsockname */ + 409, /* getpeername */ + 410, /* lstat */ + 411, /* stat */ + 412, /* ftrread */ + 417, /* ftrwrite */ + 422, /* ftrexec */ + 427, /* fteread */ + 432, /* ftewrite */ + 437, /* fteexec */ + 442, /* ftis */ + 446, /* ftsize */ + 450, /* ftmtime */ + 454, /* ftatime */ + 458, /* ftctime */ + 462, /* ftrowned */ + 466, /* fteowned */ + 470, /* ftzero */ + 474, /* ftsock */ + 478, /* ftchr */ + 482, /* ftblk */ + 486, /* ftfile */ + 490, /* ftdir */ + 494, /* ftpipe */ + 498, /* ftsuid */ + 502, /* ftsgid */ + 506, /* ftsvtx */ + 510, /* ftlink */ + 514, /* fttty */ + 518, /* fttext */ + 522, /* ftbinary */ + 526, /* chdir */ + 528, /* chown */ + 530, /* chroot */ + 532, /* unlink */ + 534, /* chmod */ + 536, /* utime */ + 538, /* rename */ + 540, /* link */ + 542, /* symlink */ + 544, /* readlink */ + 545, /* mkdir */ + 547, /* rmdir */ + 549, /* open_dir */ + 550, /* readdir */ + 551, /* telldir */ + 552, /* seekdir */ + 553, /* rewinddir */ + 554, /* closedir */ + -1, /* fork */ + 555, /* wait */ + 556, /* waitpid */ + 558, /* system */ + 560, /* exec */ + 562, /* kill */ + 564, /* getppid */ + 565, /* getpgrp */ + 567, /* setpgrp */ + 569, /* getpriority */ + 571, /* setpriority */ + 573, /* time */ + -1, /* tms */ + 574, /* localtime */ + 575, /* gmtime */ + 576, /* alarm */ + 577, /* sleep */ + 579, /* shmget */ + 580, /* shmctl */ + 581, /* shmread */ + 582, /* shmwrite */ + 583, /* msgget */ + 584, /* msgctl */ + 585, /* msgsnd */ + 586, /* msgrcv */ + 587, /* semop */ + 588, /* semget */ + 589, /* semctl */ + 590, /* require */ + 591, /* dofile */ + -1, /* hintseval */ + 592, /* entereval */ + 598, /* leaveeval */ + 600, /* entertry */ + -1, /* leavetry */ + 601, /* ghbyname */ + 602, /* ghbyaddr */ + -1, /* ghostent */ + 603, /* gnbyname */ + 604, /* gnbyaddr */ + -1, /* gnetent */ + 605, /* gpbyname */ + 606, /* gpbynumber */ + -1, /* gprotoent */ + 607, /* gsbyname */ + 608, /* gsbyport */ + -1, /* gservent */ + 609, /* shostent */ + 610, /* snetent */ + 611, /* sprotoent */ + 612, /* sservent */ + -1, /* ehostent */ + -1, /* enetent */ + -1, /* eprotoent */ + -1, /* eservent */ + 613, /* gpwnam */ + 614, /* gpwuid */ + -1, /* gpwent */ + -1, /* spwent */ + -1, /* epwent */ + 615, /* ggrnam */ + 616, /* ggrgid */ + -1, /* ggrent */ + -1, /* sgrent */ + -1, /* egrent */ + -1, /* getlogin */ + 617, /* syscall */ + 618, /* lock */ + 619, /* once */ + -1, /* custom */ + 620, /* reach */ + 621, /* rkeys */ + 623, /* rvalues */ + 624, /* coreargs */ + 628, /* runcv */ + 629, /* fc */ + -1, /* padcv */ + -1, /* introcv */ + -1, /* clonecv */ + 630, /* padrange */ + 632, /* refassign */ + 638, /* lvref */ + 644, /* lvrefslice */ + 645, /* lvavref */ + +}; + + + +/* PL_op_private_bitdefs[]: given a starting position in this array (as + * supplied by PL_op_private_bitdef_ix[]), each word (until a stop bit is + * seen) defines the meaning of a particular op_private bit for a + * particular op. Each word consists of: + * bit 0: stop bit: this is the last bit def for the current op + * bit 1: bitfield: if set, this defines a bit field rather than a flag + * bits 2..4: unsigned number in the range 0..7 which is the bit number + * bits 5..15: unsigned number in the range 0..2047 which is an index + * into PL_op_private_labels[] (for a flag), or + * into PL_op_private_bitfields[] (for a bit field) + */ + +EXTCONST U16 PL_op_private_bitdefs[] = { + /* scalar */ 0x0003, + /* pushmark */ 0x281c, 0x3a11, + /* wantarray */ 0x00bd, + /* const */ 0x03b8, 0x1490, 0x3acc, 0x3588, 0x2be5, + /* gvsv */ 0x281c, 0x2d31, + /* gv */ 0x12f5, + /* gelem */ 0x0067, + /* padsv */ 0x281c, 0x025a, 0x3a11, + /* padav */ 0x281c, 0x3a10, 0x290c, 0x3709, + /* padhv */ 0x281c, 0x05d8, 0x0534, 0x3a10, 0x290c, 0x3709, + /* pushre */ 0x34d9, + /* rv2gv */ 0x281c, 0x025a, 0x1590, 0x290c, 0x2b08, 0x3ac4, 0x0003, + /* rv2sv */ 0x281c, 0x025a, 0x2d30, 0x3ac4, 0x0003, + /* av2arylen */ 0x290c, 0x0003, + /* rv2cv */ 0x2a7c, 0x08f8, 0x0b90, 0x028c, 0x3c88, 0x3ac4, 0x0003, + /* prototype */ 0x0003, + /* refgen */ 0x0003, + /* srefgen */ 0x0003, + /* ref */ 0x0003, + /* bless */ 0x012f, + /* backtick */ 0x2f1c, 0x2e38, 0x22f4, 0x2230, 0x0003, + /* glob */ 0x012f, + /* readline */ 0x0003, + /* regcmaybe */ 0x0003, + /* regcreset */ 0x0003, + /* regcomp */ 0x0003, + /* match */ 0x34d8, 0x3d31, + /* qr */ 0x34d9, + /* subst */ 0x34d8, 0x3d31, + /* substcont */ 0x34d8, 0x0003, + /* trans */ 0x0c9c, 0x1c18, 0x0834, 0x3d30, 0x384c, 0x1fa8, 0x01e4, 0x0141, + /* transr */ 0x0c9c, 0x1c18, 0x0834, 0x3d30, 0x384c, 0x1fa8, 0x01e4, 0x0141, + /* sassign */ 0x0adc, 0x0458, 0x0067, + /* aassign */ 0x0758, 0x290c, 0x0067, + /* chop */ 0x0003, + /* schop */ 0x0003, + /* chomp */ 0x3d30, 0x0003, + /* schomp */ 0x3d30, 0x0003, + /* defined */ 0x0003, + /* undef */ 0x0003, + /* study */ 0x0003, + /* pos */ 0x290c, 0x0003, + /* preinc */ 0x0003, + /* i_preinc */ 0x0003, + /* predec */ 0x0003, + /* i_predec */ 0x0003, + /* postinc */ 0x0003, + /* i_postinc */ 0x3d30, 0x0003, + /* postdec */ 0x0003, + /* i_postdec */ 0x3d30, 0x0003, + /* pow */ 0x3d30, 0x0067, + /* multiply */ 0x3d30, 0x0067, + /* i_multiply */ 0x3d30, 0x0067, + /* divide */ 0x3d30, 0x0067, + /* i_divide */ 0x3d30, 0x0067, + /* modulo */ 0x3d30, 0x0067, + /* i_modulo */ 0x3d30, 0x0067, + /* repeat */ 0x0f78, 0x0067, + /* add */ 0x3d30, 0x0067, + /* i_add */ 0x3d30, 0x0067, + /* subtract */ 0x3d30, 0x0067, + /* i_subtract */ 0x3d30, 0x0067, + /* concat */ 0x3d30, 0x0067, + /* stringify */ 0x3d30, 0x012f, + /* left_shift */ 0x3d30, 0x0067, + /* right_shift */ 0x3d30, 0x0067, + /* lt */ 0x0067, + /* i_lt */ 0x0067, + /* gt */ 0x0067, + /* i_gt */ 0x0067, + /* le */ 0x0067, + /* i_le */ 0x0067, + /* ge */ 0x0067, + /* i_ge */ 0x0067, + /* eq */ 0x0067, + /* i_eq */ 0x0067, + /* ne */ 0x0067, + /* i_ne */ 0x0067, + /* ncmp */ 0x0067, + /* i_ncmp */ 0x0067, + /* slt */ 0x0067, + /* sgt */ 0x0067, + /* sle */ 0x0067, + /* sge */ 0x0067, + /* seq */ 0x0067, + /* sne */ 0x0067, + /* scmp */ 0x0067, + /* bit_and */ 0x0067, + /* bit_xor */ 0x0067, + /* bit_or */ 0x0067, + /* negate */ 0x0003, + /* i_negate */ 0x3d30, 0x0003, + /* not */ 0x0003, + /* complement */ 0x0003, + /* smartmatch */ 0x0067, + /* atan2 */ 0x3d30, 0x012f, + /* sin */ 0x3d30, 0x0003, + /* cos */ 0x3d30, 0x0003, + /* rand */ 0x3d30, 0x012f, + /* srand */ 0x3d30, 0x012f, + /* exp */ 0x3d30, 0x0003, + /* log */ 0x3d30, 0x0003, + /* sqrt */ 0x3d30, 0x0003, + /* int */ 0x3d30, 0x0003, + /* hex */ 0x3d30, 0x0003, + /* oct */ 0x3d30, 0x0003, + /* abs */ 0x3d30, 0x0003, + /* length */ 0x3d30, 0x0003, + /* substr */ 0x3230, 0x290c, 0x00cb, + /* vec */ 0x290c, 0x0067, + /* index */ 0x3d30, 0x012f, + /* rindex */ 0x3d30, 0x012f, + /* sprintf */ 0x012f, + /* formline */ 0x012f, + /* ord */ 0x3d30, 0x0003, + /* chr */ 0x3d30, 0x0003, + /* crypt */ 0x3d30, 0x012f, + /* ucfirst */ 0x0003, + /* lcfirst */ 0x0003, + /* uc */ 0x0003, + /* lc */ 0x0003, + /* quotemeta */ 0x0003, + /* rv2av */ 0x281c, 0x2d30, 0x290c, 0x3708, 0x3ac4, 0x0003, + /* aelemfast */ 0x01ff, + /* aelemfast_lex */ 0x01ff, + /* aelem */ 0x281c, 0x025a, 0x2710, 0x290c, 0x0067, + /* aslice */ 0x281c, 0x290c, 0x3709, + /* kvaslice */ 0x290d, + /* aeach */ 0x0003, + /* akeys */ 0x0003, + /* avalues */ 0x0003, + /* each */ 0x0003, + /* values */ 0x0003, + /* keys */ 0x290c, 0x0003, + /* delete */ 0x281c, 0x3658, 0x0003, + /* exists */ 0x3bb8, 0x0003, + /* rv2hv */ 0x281c, 0x05d8, 0x0534, 0x2d30, 0x290c, 0x3708, 0x3ac4, 0x0003, + /* helem */ 0x281c, 0x025a, 0x2710, 0x290c, 0x0067, + /* hslice */ 0x281c, 0x290c, 0x3709, + /* kvhslice */ 0x290d, + /* unpack */ 0x012f, + /* pack */ 0x012f, + /* split */ 0x207c, 0x2d31, + /* join */ 0x012f, + /* list */ 0x281c, 0x1cd9, + /* lslice */ 0x0067, + /* anonlist */ 0x012f, + /* anonhash */ 0x012f, + /* splice */ 0x012f, + /* push */ 0x3d30, 0x012f, + /* pop */ 0x0003, + /* shift */ 0x0003, + /* unshift */ 0x3d30, 0x012f, + /* sort */ 0x3938, 0x2fd4, 0x0ed0, 0x238c, 0x3328, 0x2484, 0x2ca1, + /* reverse */ 0x238c, 0x0003, + /* grepstart */ 0x1b05, + /* grepwhile */ 0x1b04, 0x0003, + /* mapstart */ 0x1b05, + /* mapwhile */ 0x1b04, 0x0003, + /* range */ 0x0003, + /* flip */ 0x25b8, 0x0003, + /* flop */ 0x25b8, 0x0003, + /* and */ 0x0003, + /* or */ 0x0003, + /* xor */ 0x0067, + /* dor */ 0x0003, + /* cond_expr */ 0x281c, 0x0003, + /* andassign */ 0x0003, + /* orassign */ 0x0003, + /* dorassign */ 0x0003, + /* method */ 0x0003, + /* entersub */ 0x281c, 0x025a, 0x0b90, 0x028c, 0x3c88, 0x3ac4, 0x2141, + /* leavesub */ 0x3098, 0x0003, + /* leavesublv */ 0x3098, 0x0003, + /* caller */ 0x00bc, 0x012f, + /* warn */ 0x012f, + /* die */ 0x012f, + /* reset */ 0x012f, + /* nextstate */ 0x40dc, 0x3f18, 0x1eb5, + /* dbstate */ 0x40dc, 0x3f18, 0x1eb5, + /* leave */ 0x26bc, 0x3099, + /* enteriter */ 0x281c, 0x2d30, 0x0c0c, 0x33a9, + /* iter */ 0x33a9, + /* leaveloop */ 0x26bc, 0x0067, + /* last */ 0x3e9c, 0x0003, + /* next */ 0x3e9c, 0x0003, + /* redo */ 0x3e9c, 0x0003, + /* dump */ 0x3e9c, 0x0003, + /* goto */ 0x3e9c, 0x0003, + /* exit */ 0x012f, + /* method_named */ 0x0003, + /* entergiven */ 0x0003, + /* leavegiven */ 0x0003, + /* enterwhen */ 0x0003, + /* leavewhen */ 0x0003, + /* open */ 0x2f1c, 0x2e38, 0x22f4, 0x2230, 0x012f, + /* close */ 0x012f, + /* pipe_op */ 0x012f, + /* fileno */ 0x012f, + /* umask */ 0x012f, + /* binmode */ 0x012f, + /* tie */ 0x012f, + /* untie */ 0x0003, + /* tied */ 0x0003, + /* dbmopen */ 0x012f, + /* dbmclose */ 0x0003, + /* sselect */ 0x012f, + /* select */ 0x012f, + /* getc */ 0x012f, + /* read */ 0x012f, + /* enterwrite */ 0x012f, + /* leavewrite */ 0x3098, 0x0003, + /* sysopen */ 0x012f, + /* sysseek */ 0x012f, + /* sysread */ 0x012f, + /* syswrite */ 0x012f, + /* eof */ 0x012f, + /* tell */ 0x012f, + /* seek */ 0x012f, + /* truncate */ 0x012f, + /* fcntl */ 0x012f, + /* ioctl */ 0x012f, + /* flock */ 0x3d30, 0x012f, + /* send */ 0x012f, + /* recv */ 0x012f, + /* socket */ 0x012f, + /* sockpair */ 0x012f, + /* bind */ 0x012f, + /* connect */ 0x012f, + /* listen */ 0x012f, + /* accept */ 0x012f, + /* shutdown */ 0x012f, + /* gsockopt */ 0x012f, + /* ssockopt */ 0x012f, + /* getsockname */ 0x0003, + /* getpeername */ 0x0003, + /* lstat */ 0x0003, + /* stat */ 0x0003, + /* ftrread */ 0x1750, 0x19ac, 0x1868, 0x1624, 0x0003, + /* ftrwrite */ 0x1750, 0x19ac, 0x1868, 0x1624, 0x0003, + /* ftrexec */ 0x1750, 0x19ac, 0x1868, 0x1624, 0x0003, + /* fteread */ 0x1750, 0x19ac, 0x1868, 0x1624, 0x0003, + /* ftewrite */ 0x1750, 0x19ac, 0x1868, 0x1624, 0x0003, + /* fteexec */ 0x1750, 0x19ac, 0x1868, 0x1624, 0x0003, + /* ftis */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* ftsize */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* ftmtime */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* ftatime */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* ftctime */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* ftrowned */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* fteowned */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* ftzero */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* ftsock */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* ftchr */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* ftblk */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* ftfile */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* ftdir */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* ftpipe */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* ftsuid */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* ftsgid */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* ftsvtx */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* ftlink */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* fttty */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* fttext */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* ftbinary */ 0x1750, 0x19ac, 0x1868, 0x0003, + /* chdir */ 0x3d30, 0x012f, + /* chown */ 0x3d30, 0x012f, + /* chroot */ 0x3d30, 0x0003, + /* unlink */ 0x3d30, 0x012f, + /* chmod */ 0x3d30, 0x012f, + /* utime */ 0x3d30, 0x012f, + /* rename */ 0x3d30, 0x012f, + /* link */ 0x3d30, 0x012f, + /* symlink */ 0x3d30, 0x012f, + /* readlink */ 0x0003, + /* mkdir */ 0x3d30, 0x012f, + /* rmdir */ 0x3d30, 0x0003, + /* open_dir */ 0x012f, + /* readdir */ 0x0003, + /* telldir */ 0x0003, + /* seekdir */ 0x012f, + /* rewinddir */ 0x0003, + /* closedir */ 0x0003, + /* wait */ 0x3d31, + /* waitpid */ 0x3d30, 0x012f, + /* system */ 0x3d30, 0x012f, + /* exec */ 0x3d30, 0x012f, + /* kill */ 0x3d30, 0x012f, + /* getppid */ 0x3d31, + /* getpgrp */ 0x3d30, 0x012f, + /* setpgrp */ 0x3d30, 0x012f, + /* getpriority */ 0x3d30, 0x012f, + /* setpriority */ 0x3d30, 0x012f, + /* time */ 0x3d31, + /* localtime */ 0x0003, + /* gmtime */ 0x012f, + /* alarm */ 0x0003, + /* sleep */ 0x3d30, 0x012f, + /* shmget */ 0x012f, + /* shmctl */ 0x012f, + /* shmread */ 0x012f, + /* shmwrite */ 0x012f, + /* msgget */ 0x012f, + /* msgctl */ 0x012f, + /* msgsnd */ 0x012f, + /* msgrcv */ 0x012f, + /* semop */ 0x012f, + /* semget */ 0x012f, + /* semctl */ 0x012f, + /* require */ 0x0003, + /* dofile */ 0x0003, + /* entereval */ 0x3134, 0x09b0, 0x068c, 0x3e08, 0x1dc4, 0x0003, + /* leaveeval */ 0x3098, 0x0003, + /* entertry */ 0x0003, + /* ghbyname */ 0x0003, + /* ghbyaddr */ 0x012f, + /* gnbyname */ 0x0003, + /* gnbyaddr */ 0x012f, + /* gpbyname */ 0x0003, + /* gpbynumber */ 0x012f, + /* gsbyname */ 0x012f, + /* gsbyport */ 0x012f, + /* shostent */ 0x0003, + /* snetent */ 0x0003, + /* sprotoent */ 0x0003, + /* sservent */ 0x0003, + /* gpwnam */ 0x0003, + /* gpwuid */ 0x0003, + /* ggrnam */ 0x0003, + /* ggrgid */ 0x0003, + /* syscall */ 0x012f, + /* lock */ 0x0003, + /* once */ 0x0003, + /* reach */ 0x0003, + /* rkeys */ 0x290c, 0x0003, + /* rvalues */ 0x0003, + /* coreargs */ 0x29dc, 0x0018, 0x0de4, 0x0d01, + /* runcv */ 0x00bd, + /* fc */ 0x0003, + /* padrange */ 0x281c, 0x019b, + /* refassign */ 0x281c, 0x037a, 0x3a10, 0x250c, 0x13e8, 0x0067, + /* lvref */ 0x281c, 0x037a, 0x3a10, 0x250c, 0x13e8, 0x0003, + /* lvrefslice */ 0x281d, + /* lvavref */ 0x281c, 0x3a10, 0x0003, + +}; + + +/* PL_op_private_valid: for each op, indexed by op_type, indicate which + * flags bits in op_private are legal */ + +EXTCONST U8 PL_op_private_valid[] = { + /* NULL */ (0xff), + /* STUB */ (0), + /* SCALAR */ (OPpARG1_MASK), + /* PUSHMARK */ (OPpPAD_STATE|OPpLVAL_INTRO), + /* WANTARRAY */ (OPpOFFBYONE), + /* CONST */ (OPpCONST_NOVER|OPpCONST_SHORTCIRCUIT|OPpCONST_STRICT|OPpCONST_ENTERED|OPpCONST_BARE), + /* GVSV */ (OPpOUR_INTRO|OPpLVAL_INTRO), + /* GV */ (OPpEARLY_CV), + /* GELEM */ (OPpARG2_MASK), + /* PADSV */ (OPpPAD_STATE|OPpDEREF|OPpLVAL_INTRO), + /* PADAV */ (OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpPAD_STATE|OPpLVAL_INTRO), + /* PADHV */ (OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpPAD_STATE|OPpTRUEBOOL|OPpMAYBE_TRUEBOOL|OPpLVAL_INTRO), + /* PADANY */ (0), + /* PUSHRE */ (OPpRUNTIME), + /* RV2GV */ (OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpDONT_INIT_GV|OPpMAYBE_LVSUB|OPpALLOW_FAKE|OPpDEREF|OPpLVAL_INTRO), + /* RV2SV */ (OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpOUR_INTRO|OPpDEREF|OPpLVAL_INTRO), + /* AV2ARYLEN */ (OPpARG1_MASK|OPpMAYBE_LVSUB), + /* RV2CV */ (OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpENTERSUB_HASTARG|OPpENTERSUB_AMPER|OPpENTERSUB_DB|OPpMAY_RETURN_CONSTANT|OPpENTERSUB_NOPAREN), + /* ANONCODE */ (0), + /* PROTOTYPE */ (OPpARG1_MASK), + /* REFGEN */ (OPpARG1_MASK), + /* SREFGEN */ (OPpARG1_MASK), + /* REF */ (OPpARG1_MASK), + /* BLESS */ (OPpARG4_MASK), + /* BACKTICK */ (OPpARG1_MASK|OPpOPEN_IN_RAW|OPpOPEN_IN_CRLF|OPpOPEN_OUT_RAW|OPpOPEN_OUT_CRLF), + /* GLOB */ (OPpARG4_MASK), + /* READLINE */ (OPpARG1_MASK), + /* RCATLINE */ (0), + /* REGCMAYBE */ (OPpARG1_MASK), + /* REGCRESET */ (OPpARG1_MASK), + /* REGCOMP */ (OPpARG1_MASK), + /* MATCH */ (OPpTARGET_MY|OPpRUNTIME), + /* QR */ (OPpRUNTIME), + /* SUBST */ (OPpTARGET_MY|OPpRUNTIME), + /* SUBSTCONT */ (OPpARG1_MASK|OPpRUNTIME), + /* TRANS */ (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF|OPpTRANS_IDENTICAL|OPpTRANS_SQUASH|OPpTARGET_MY|OPpTRANS_COMPLEMENT|OPpTRANS_GROWS|OPpTRANS_DELETE), + /* TRANSR */ (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF|OPpTRANS_IDENTICAL|OPpTRANS_SQUASH|OPpTARGET_MY|OPpTRANS_COMPLEMENT|OPpTRANS_GROWS|OPpTRANS_DELETE), + /* SASSIGN */ (OPpARG2_MASK|OPpASSIGN_BACKWARDS|OPpASSIGN_CV_TO_GV), + /* AASSIGN */ (OPpARG2_MASK|OPpMAYBE_LVSUB|OPpASSIGN_COMMON), + /* CHOP */ (OPpARG1_MASK), + /* SCHOP */ (OPpARG1_MASK), + /* CHOMP */ (OPpARG1_MASK|OPpTARGET_MY), + /* SCHOMP */ (OPpARG1_MASK|OPpTARGET_MY), + /* DEFINED */ (OPpARG1_MASK), + /* UNDEF */ (OPpARG1_MASK), + /* STUDY */ (OPpARG1_MASK), + /* POS */ (OPpARG1_MASK|OPpMAYBE_LVSUB), + /* PREINC */ (OPpARG1_MASK), + /* I_PREINC */ (OPpARG1_MASK), + /* PREDEC */ (OPpARG1_MASK), + /* I_PREDEC */ (OPpARG1_MASK), + /* POSTINC */ (OPpARG1_MASK), + /* I_POSTINC */ (OPpARG1_MASK|OPpTARGET_MY), + /* POSTDEC */ (OPpARG1_MASK), + /* I_POSTDEC */ (OPpARG1_MASK|OPpTARGET_MY), + /* POW */ (OPpARG2_MASK|OPpTARGET_MY), + /* MULTIPLY */ (OPpARG2_MASK|OPpTARGET_MY), + /* I_MULTIPLY */ (OPpARG2_MASK|OPpTARGET_MY), + /* DIVIDE */ (OPpARG2_MASK|OPpTARGET_MY), + /* I_DIVIDE */ (OPpARG2_MASK|OPpTARGET_MY), + /* MODULO */ (OPpARG2_MASK|OPpTARGET_MY), + /* I_MODULO */ (OPpARG2_MASK|OPpTARGET_MY), + /* REPEAT */ (OPpARG2_MASK|OPpREPEAT_DOLIST), + /* ADD */ (OPpARG2_MASK|OPpTARGET_MY), + /* I_ADD */ (OPpARG2_MASK|OPpTARGET_MY), + /* SUBTRACT */ (OPpARG2_MASK|OPpTARGET_MY), + /* I_SUBTRACT */ (OPpARG2_MASK|OPpTARGET_MY), + /* CONCAT */ (OPpARG2_MASK|OPpTARGET_MY), + /* STRINGIFY */ (OPpARG4_MASK|OPpTARGET_MY), + /* LEFT_SHIFT */ (OPpARG2_MASK|OPpTARGET_MY), + /* RIGHT_SHIFT */ (OPpARG2_MASK|OPpTARGET_MY), + /* LT */ (OPpARG2_MASK), + /* I_LT */ (OPpARG2_MASK), + /* GT */ (OPpARG2_MASK), + /* I_GT */ (OPpARG2_MASK), + /* LE */ (OPpARG2_MASK), + /* I_LE */ (OPpARG2_MASK), + /* GE */ (OPpARG2_MASK), + /* I_GE */ (OPpARG2_MASK), + /* EQ */ (OPpARG2_MASK), + /* I_EQ */ (OPpARG2_MASK), + /* NE */ (OPpARG2_MASK), + /* I_NE */ (OPpARG2_MASK), + /* NCMP */ (OPpARG2_MASK), + /* I_NCMP */ (OPpARG2_MASK), + /* SLT */ (OPpARG2_MASK), + /* SGT */ (OPpARG2_MASK), + /* SLE */ (OPpARG2_MASK), + /* SGE */ (OPpARG2_MASK), + /* SEQ */ (OPpARG2_MASK), + /* SNE */ (OPpARG2_MASK), + /* SCMP */ (OPpARG2_MASK), + /* BIT_AND */ (OPpARG2_MASK), + /* BIT_XOR */ (OPpARG2_MASK), + /* BIT_OR */ (OPpARG2_MASK), + /* NEGATE */ (OPpARG1_MASK), + /* I_NEGATE */ (OPpARG1_MASK|OPpTARGET_MY), + /* NOT */ (OPpARG1_MASK), + /* COMPLEMENT */ (OPpARG1_MASK), + /* SMARTMATCH */ (OPpARG2_MASK), + /* ATAN2 */ (OPpARG4_MASK|OPpTARGET_MY), + /* SIN */ (OPpARG1_MASK|OPpTARGET_MY), + /* COS */ (OPpARG1_MASK|OPpTARGET_MY), + /* RAND */ (OPpARG4_MASK|OPpTARGET_MY), + /* SRAND */ (OPpARG4_MASK|OPpTARGET_MY), + /* EXP */ (OPpARG1_MASK|OPpTARGET_MY), + /* LOG */ (OPpARG1_MASK|OPpTARGET_MY), + /* SQRT */ (OPpARG1_MASK|OPpTARGET_MY), + /* INT */ (OPpARG1_MASK|OPpTARGET_MY), + /* HEX */ (OPpARG1_MASK|OPpTARGET_MY), + /* OCT */ (OPpARG1_MASK|OPpTARGET_MY), + /* ABS */ (OPpARG1_MASK|OPpTARGET_MY), + /* LENGTH */ (OPpARG1_MASK|OPpTARGET_MY), + /* SUBSTR */ (OPpARG3_MASK|OPpMAYBE_LVSUB|OPpSUBSTR_REPL_FIRST), + /* VEC */ (OPpARG2_MASK|OPpMAYBE_LVSUB), + /* INDEX */ (OPpARG4_MASK|OPpTARGET_MY), + /* RINDEX */ (OPpARG4_MASK|OPpTARGET_MY), + /* SPRINTF */ (OPpARG4_MASK), + /* FORMLINE */ (OPpARG4_MASK), + /* ORD */ (OPpARG1_MASK|OPpTARGET_MY), + /* CHR */ (OPpARG1_MASK|OPpTARGET_MY), + /* CRYPT */ (OPpARG4_MASK|OPpTARGET_MY), + /* UCFIRST */ (OPpARG1_MASK), + /* LCFIRST */ (OPpARG1_MASK), + /* UC */ (OPpARG1_MASK), + /* LC */ (OPpARG1_MASK), + /* QUOTEMETA */ (OPpARG1_MASK), + /* RV2AV */ (OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpOUR_INTRO|OPpLVAL_INTRO), + /* AELEMFAST */ (255), + /* AELEMFAST_LEX */ (255), + /* AELEM */ (OPpARG2_MASK|OPpMAYBE_LVSUB|OPpLVAL_DEFER|OPpDEREF|OPpLVAL_INTRO), + /* ASLICE */ (OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpLVAL_INTRO), + /* KVASLICE */ (OPpMAYBE_LVSUB), + /* AEACH */ (OPpARG1_MASK), + /* AKEYS */ (OPpARG1_MASK), + /* AVALUES */ (OPpARG1_MASK), + /* EACH */ (OPpARG1_MASK), + /* VALUES */ (OPpARG1_MASK), + /* KEYS */ (OPpARG1_MASK|OPpMAYBE_LVSUB), + /* DELETE */ (OPpARG1_MASK|OPpSLICE|OPpLVAL_INTRO), + /* EXISTS */ (OPpARG1_MASK|OPpEXISTS_SUB), + /* RV2HV */ (OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpOUR_INTRO|OPpTRUEBOOL|OPpMAYBE_TRUEBOOL|OPpLVAL_INTRO), + /* HELEM */ (OPpARG2_MASK|OPpMAYBE_LVSUB|OPpLVAL_DEFER|OPpDEREF|OPpLVAL_INTRO), + /* HSLICE */ (OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpLVAL_INTRO), + /* KVHSLICE */ (OPpMAYBE_LVSUB), + /* UNPACK */ (OPpARG4_MASK), + /* PACK */ (OPpARG4_MASK), + /* SPLIT */ (OPpOUR_INTRO|OPpSPLIT_IMPLIM), + /* JOIN */ (OPpARG4_MASK), + /* LIST */ (OPpLIST_GUESSED|OPpLVAL_INTRO), + /* LSLICE */ (OPpARG2_MASK), + /* ANONLIST */ (OPpARG4_MASK), + /* ANONHASH */ (OPpARG4_MASK), + /* SPLICE */ (OPpARG4_MASK), + /* PUSH */ (OPpARG4_MASK|OPpTARGET_MY), + /* POP */ (OPpARG1_MASK), + /* SHIFT */ (OPpARG1_MASK), + /* UNSHIFT */ (OPpARG4_MASK|OPpTARGET_MY), + /* SORT */ (OPpSORT_NUMERIC|OPpSORT_INTEGER|OPpSORT_REVERSE|OPpSORT_INPLACE|OPpSORT_DESCEND|OPpSORT_QSORT|OPpSORT_STABLE), + /* REVERSE */ (OPpARG1_MASK|OPpREVERSE_INPLACE), + /* GREPSTART */ (OPpGREP_LEX), + /* GREPWHILE */ (OPpARG1_MASK|OPpGREP_LEX), + /* MAPSTART */ (OPpGREP_LEX), + /* MAPWHILE */ (OPpARG1_MASK|OPpGREP_LEX), + /* RANGE */ (OPpARG1_MASK), + /* FLIP */ (OPpARG1_MASK|OPpFLIP_LINENUM), + /* FLOP */ (OPpARG1_MASK|OPpFLIP_LINENUM), + /* AND */ (OPpARG1_MASK), + /* OR */ (OPpARG1_MASK), + /* XOR */ (OPpARG2_MASK), + /* DOR */ (OPpARG1_MASK), + /* COND_EXPR */ (OPpARG1_MASK|OPpLVAL_INTRO), + /* ANDASSIGN */ (OPpARG1_MASK), + /* ORASSIGN */ (OPpARG1_MASK), + /* DORASSIGN */ (OPpARG1_MASK), + /* METHOD */ (OPpARG1_MASK), + /* ENTERSUB */ (OPpENTERSUB_INARGS|OPpHINT_STRICT_REFS|OPpENTERSUB_HASTARG|OPpENTERSUB_AMPER|OPpENTERSUB_DB|OPpDEREF|OPpLVAL_INTRO), + /* LEAVESUB */ (OPpARG1_MASK|OPpREFCOUNTED), + /* LEAVESUBLV */ (OPpARG1_MASK|OPpREFCOUNTED), + /* CALLER */ (OPpARG4_MASK|OPpOFFBYONE), + /* WARN */ (OPpARG4_MASK), + /* DIE */ (OPpARG4_MASK), + /* RESET */ (OPpARG4_MASK), + /* LINESEQ */ (0), + /* NEXTSTATE */ (OPpHUSH_VMSISH|OPpHINT_M_VMSISH_STATUS|OPpHINT_M_VMSISH_TIME), + /* DBSTATE */ (OPpHUSH_VMSISH|OPpHINT_M_VMSISH_STATUS|OPpHINT_M_VMSISH_TIME), + /* UNSTACK */ (0), + /* ENTER */ (0), + /* LEAVE */ (OPpREFCOUNTED|OPpLVALUE), + /* SCOPE */ (0), + /* ENTERITER */ (OPpITER_REVERSED|OPpITER_DEF|OPpOUR_INTRO|OPpLVAL_INTRO), + /* ITER */ (OPpITER_REVERSED), + /* ENTERLOOP */ (0), + /* LEAVELOOP */ (OPpARG2_MASK|OPpLVALUE), + /* RETURN */ (0), + /* LAST */ (OPpARG1_MASK|OPpPV_IS_UTF8), + /* NEXT */ (OPpARG1_MASK|OPpPV_IS_UTF8), + /* REDO */ (OPpARG1_MASK|OPpPV_IS_UTF8), + /* DUMP */ (OPpARG1_MASK|OPpPV_IS_UTF8), + /* GOTO */ (OPpARG1_MASK|OPpPV_IS_UTF8), + /* EXIT */ (OPpARG4_MASK), + /* METHOD_NAMED */ (OPpARG1_MASK), + /* ENTERGIVEN */ (OPpARG1_MASK), + /* LEAVEGIVEN */ (OPpARG1_MASK), + /* ENTERWHEN */ (OPpARG1_MASK), + /* LEAVEWHEN */ (OPpARG1_MASK), + /* BREAK */ (0), + /* CONTINUE */ (0), + /* OPEN */ (OPpARG4_MASK|OPpOPEN_IN_RAW|OPpOPEN_IN_CRLF|OPpOPEN_OUT_RAW|OPpOPEN_OUT_CRLF), + /* CLOSE */ (OPpARG4_MASK), + /* PIPE_OP */ (OPpARG4_MASK), + /* FILENO */ (OPpARG4_MASK), + /* UMASK */ (OPpARG4_MASK), + /* BINMODE */ (OPpARG4_MASK), + /* TIE */ (OPpARG4_MASK), + /* UNTIE */ (OPpARG1_MASK), + /* TIED */ (OPpARG1_MASK), + /* DBMOPEN */ (OPpARG4_MASK), + /* DBMCLOSE */ (OPpARG1_MASK), + /* SSELECT */ (OPpARG4_MASK), + /* SELECT */ (OPpARG4_MASK), + /* GETC */ (OPpARG4_MASK), + /* READ */ (OPpARG4_MASK), + /* ENTERWRITE */ (OPpARG4_MASK), + /* LEAVEWRITE */ (OPpARG1_MASK|OPpREFCOUNTED), + /* PRTF */ (0), + /* PRINT */ (0), + /* SAY */ (0), + /* SYSOPEN */ (OPpARG4_MASK), + /* SYSSEEK */ (OPpARG4_MASK), + /* SYSREAD */ (OPpARG4_MASK), + /* SYSWRITE */ (OPpARG4_MASK), + /* EOF */ (OPpARG4_MASK), + /* TELL */ (OPpARG4_MASK), + /* SEEK */ (OPpARG4_MASK), + /* TRUNCATE */ (OPpARG4_MASK), + /* FCNTL */ (OPpARG4_MASK), + /* IOCTL */ (OPpARG4_MASK), + /* FLOCK */ (OPpARG4_MASK|OPpTARGET_MY), + /* SEND */ (OPpARG4_MASK), + /* RECV */ (OPpARG4_MASK), + /* SOCKET */ (OPpARG4_MASK), + /* SOCKPAIR */ (OPpARG4_MASK), + /* BIND */ (OPpARG4_MASK), + /* CONNECT */ (OPpARG4_MASK), + /* LISTEN */ (OPpARG4_MASK), + /* ACCEPT */ (OPpARG4_MASK), + /* SHUTDOWN */ (OPpARG4_MASK), + /* GSOCKOPT */ (OPpARG4_MASK), + /* SSOCKOPT */ (OPpARG4_MASK), + /* GETSOCKNAME */ (OPpARG1_MASK), + /* GETPEERNAME */ (OPpARG1_MASK), + /* LSTAT */ (OPpARG1_MASK), + /* STAT */ (OPpARG1_MASK), + /* FTRREAD */ (OPpARG1_MASK|OPpFT_ACCESS|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTRWRITE */ (OPpARG1_MASK|OPpFT_ACCESS|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTREXEC */ (OPpARG1_MASK|OPpFT_ACCESS|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTEREAD */ (OPpARG1_MASK|OPpFT_ACCESS|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTEWRITE */ (OPpARG1_MASK|OPpFT_ACCESS|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTEEXEC */ (OPpARG1_MASK|OPpFT_ACCESS|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTIS */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTSIZE */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTMTIME */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTATIME */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTCTIME */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTROWNED */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTEOWNED */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTZERO */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTSOCK */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTCHR */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTBLK */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTFILE */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTDIR */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTPIPE */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTSUID */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTSGID */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTSVTX */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTLINK */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTTTY */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTTEXT */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* FTBINARY */ (OPpARG1_MASK|OPpFT_STACKED|OPpFT_STACKING|OPpFT_AFTER_t), + /* CHDIR */ (OPpARG4_MASK|OPpTARGET_MY), + /* CHOWN */ (OPpARG4_MASK|OPpTARGET_MY), + /* CHROOT */ (OPpARG1_MASK|OPpTARGET_MY), + /* UNLINK */ (OPpARG4_MASK|OPpTARGET_MY), + /* CHMOD */ (OPpARG4_MASK|OPpTARGET_MY), + /* UTIME */ (OPpARG4_MASK|OPpTARGET_MY), + /* RENAME */ (OPpARG4_MASK|OPpTARGET_MY), + /* LINK */ (OPpARG4_MASK|OPpTARGET_MY), + /* SYMLINK */ (OPpARG4_MASK|OPpTARGET_MY), + /* READLINK */ (OPpARG1_MASK), + /* MKDIR */ (OPpARG4_MASK|OPpTARGET_MY), + /* RMDIR */ (OPpARG1_MASK|OPpTARGET_MY), + /* OPEN_DIR */ (OPpARG4_MASK), + /* READDIR */ (OPpARG1_MASK), + /* TELLDIR */ (OPpARG1_MASK), + /* SEEKDIR */ (OPpARG4_MASK), + /* REWINDDIR */ (OPpARG1_MASK), + /* CLOSEDIR */ (OPpARG1_MASK), + /* FORK */ (0), + /* WAIT */ (OPpTARGET_MY), + /* WAITPID */ (OPpARG4_MASK|OPpTARGET_MY), + /* SYSTEM */ (OPpARG4_MASK|OPpTARGET_MY), + /* EXEC */ (OPpARG4_MASK|OPpTARGET_MY), + /* KILL */ (OPpARG4_MASK|OPpTARGET_MY), + /* GETPPID */ (OPpTARGET_MY), + /* GETPGRP */ (OPpARG4_MASK|OPpTARGET_MY), + /* SETPGRP */ (OPpARG4_MASK|OPpTARGET_MY), + /* GETPRIORITY */ (OPpARG4_MASK|OPpTARGET_MY), + /* SETPRIORITY */ (OPpARG4_MASK|OPpTARGET_MY), + /* TIME */ (OPpTARGET_MY), + /* TMS */ (0), + /* LOCALTIME */ (OPpARG1_MASK), + /* GMTIME */ (OPpARG4_MASK), + /* ALARM */ (OPpARG1_MASK), + /* SLEEP */ (OPpARG4_MASK|OPpTARGET_MY), + /* SHMGET */ (OPpARG4_MASK), + /* SHMCTL */ (OPpARG4_MASK), + /* SHMREAD */ (OPpARG4_MASK), + /* SHMWRITE */ (OPpARG4_MASK), + /* MSGGET */ (OPpARG4_MASK), + /* MSGCTL */ (OPpARG4_MASK), + /* MSGSND */ (OPpARG4_MASK), + /* MSGRCV */ (OPpARG4_MASK), + /* SEMOP */ (OPpARG4_MASK), + /* SEMGET */ (OPpARG4_MASK), + /* SEMCTL */ (OPpARG4_MASK), + /* REQUIRE */ (OPpARG1_MASK), + /* DOFILE */ (OPpARG1_MASK), + /* HINTSEVAL */ (0), + /* ENTEREVAL */ (OPpARG1_MASK|OPpEVAL_HAS_HH|OPpEVAL_UNICODE|OPpEVAL_BYTES|OPpEVAL_COPHH|OPpEVAL_RE_REPARSING), + /* LEAVEEVAL */ (OPpARG1_MASK|OPpREFCOUNTED), + /* ENTERTRY */ (OPpARG1_MASK), + /* LEAVETRY */ (0), + /* GHBYNAME */ (OPpARG1_MASK), + /* GHBYADDR */ (OPpARG4_MASK), + /* GHOSTENT */ (0), + /* GNBYNAME */ (OPpARG1_MASK), + /* GNBYADDR */ (OPpARG4_MASK), + /* GNETENT */ (0), + /* GPBYNAME */ (OPpARG1_MASK), + /* GPBYNUMBER */ (OPpARG4_MASK), + /* GPROTOENT */ (0), + /* GSBYNAME */ (OPpARG4_MASK), + /* GSBYPORT */ (OPpARG4_MASK), + /* GSERVENT */ (0), + /* SHOSTENT */ (OPpARG1_MASK), + /* SNETENT */ (OPpARG1_MASK), + /* SPROTOENT */ (OPpARG1_MASK), + /* SSERVENT */ (OPpARG1_MASK), + /* EHOSTENT */ (0), + /* ENETENT */ (0), + /* EPROTOENT */ (0), + /* ESERVENT */ (0), + /* GPWNAM */ (OPpARG1_MASK), + /* GPWUID */ (OPpARG1_MASK), + /* GPWENT */ (0), + /* SPWENT */ (0), + /* EPWENT */ (0), + /* GGRNAM */ (OPpARG1_MASK), + /* GGRGID */ (OPpARG1_MASK), + /* GGRENT */ (0), + /* SGRENT */ (0), + /* EGRENT */ (0), + /* GETLOGIN */ (0), + /* SYSCALL */ (OPpARG4_MASK), + /* LOCK */ (OPpARG1_MASK), + /* ONCE */ (OPpARG1_MASK), + /* CUSTOM */ (0xff), + /* REACH */ (OPpARG1_MASK), + /* RKEYS */ (OPpARG1_MASK|OPpMAYBE_LVSUB), + /* RVALUES */ (OPpARG1_MASK), + /* COREARGS */ (OPpCOREARGS_DEREF1|OPpCOREARGS_DEREF2|OPpCOREARGS_SCALARMOD|OPpCOREARGS_PUSHMARK), + /* RUNCV */ (OPpOFFBYONE), + /* FC */ (OPpARG1_MASK), + /* PADCV */ (0), + /* INTROCV */ (0), + /* CLONECV */ (0), + /* PADRANGE */ (OPpPADRANGE_COUNTMASK|OPpLVAL_INTRO), + /* REFASSIGN */ (OPpARG2_MASK|OPpLVREF_ELEM|OPpLVREF_ITER|OPpPAD_STATE|OPpLVREF_TYPE|OPpLVAL_INTRO), + /* LVREF */ (OPpARG1_MASK|OPpLVREF_ELEM|OPpLVREF_ITER|OPpPAD_STATE|OPpLVREF_TYPE|OPpLVAL_INTRO), + /* LVREFSLICE */ (OPpLVAL_INTRO), + /* LVAVREF */ (OPpARG1_MASK|OPpPAD_STATE|OPpLVAL_INTRO), + +}; + +# endif /* !DOINIT */ +#endif /* !PERL_GLOBAL_STRUCT_INIT */ + +END_EXTERN_C + + + /* ex: set ro: */