This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Correct the minor mistake of changes 32675 and 32676 - the check should
[perl5.git] / opcode.h
index 7acce19..a7ca152 100644 (file)
--- a/opcode.h
+++ b/opcode.h
@@ -131,6 +131,7 @@ EXTCONST char* const PL_op_name[] = {
        "i_negate",
        "not",
        "complement",
+       "smartmatch",
        "atan2",
        "sin",
        "cos",
@@ -162,6 +163,9 @@ EXTCONST char* const PL_op_name[] = {
        "aelemfast",
        "aelem",
        "aslice",
+       "aeach",
+       "akeys",
+       "avalues",
        "each",
        "values",
        "keys",
@@ -195,9 +199,11 @@ EXTCONST char* const PL_op_name[] = {
        "and",
        "or",
        "xor",
+       "dor",
        "cond_expr",
        "andassign",
        "orassign",
+       "dorassign",
        "method",
        "entersub",
        "leavesub",
@@ -224,6 +230,14 @@ EXTCONST char* const PL_op_name[] = {
        "dump",
        "goto",
        "exit",
+       "setstate",
+       "method_named",
+       "entergiven",
+       "leavegiven",
+       "enterwhen",
+       "leavewhen",
+       "break",
+       "continue",
        "open",
        "close",
        "pipe_op",
@@ -243,6 +257,7 @@ EXTCONST char* const PL_op_name[] = {
        "leavewrite",
        "prtf",
        "print",
+       "say",
        "sysopen",
        "sysseek",
        "sysread",
@@ -381,18 +396,7 @@ EXTCONST char* const PL_op_name[] = {
        "getlogin",
        "syscall",
        "lock",
-       "setstate",
-       "method_named",
-       "dor",
-       "dorassign",
-       "entergiven",
-       "leavegiven",
-       "enterwhen",
-       "leavewhen",
-       "break",
-       "continue",
-       "smartmatch",
-       "say",
+       "once",
        "custom",
 };
 #endif
@@ -499,6 +503,7 @@ EXTCONST char* const PL_op_desc[] = {
        "integer negation (-)",
        "not",
        "1's complement (~)",
+       "smart match",
        "atan2",
        "sin",
        "cos",
@@ -530,6 +535,9 @@ EXTCONST char* const PL_op_desc[] = {
        "constant array element",
        "array element",
        "array slice",
+       "each on array",
+       "keys on array",
+       "values on array",
        "each",
        "values",
        "keys",
@@ -563,9 +571,11 @@ EXTCONST char* const PL_op_desc[] = {
        "logical and (&&)",
        "logical or (||)",
        "logical xor",
+       "defined or (//)",
        "conditional expression",
        "logical and assignment (&&=)",
        "logical or assignment (||=)",
+       "defined or assignment (//=)",
        "method lookup",
        "subroutine entry",
        "subroutine exit",
@@ -592,6 +602,14 @@ EXTCONST char* const PL_op_desc[] = {
        "dump",
        "goto",
        "exit",
+       "set statement info",
+       "method with known name",
+       "given()",
+       "leave given block",
+       "when()",
+       "leave when block",
+       "break",
+       "continue",
        "open",
        "close",
        "pipe",
@@ -611,6 +629,7 @@ EXTCONST char* const PL_op_desc[] = {
        "write exit",
        "printf",
        "print",
+       "say",
        "sysopen",
        "sysseek",
        "sysread",
@@ -749,18 +768,7 @@ EXTCONST char* const PL_op_desc[] = {
        "getlogin",
        "syscall",
        "lock",
-       "set statement info",
-       "method with known name",
-       "defined or (//)",
-       "defined or assignment (//=)",
-       "given()",
-       "leave given block",
-       "when()",
-       "leave when block",
-       "break",
-       "continue",
-       "smart match",
-       "say",
+       "once",
        "unknown custom operator",
 };
 #endif
@@ -881,6 +889,7 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
        MEMBER_TO_FPTR(Perl_pp_i_negate),
        MEMBER_TO_FPTR(Perl_pp_not),
        MEMBER_TO_FPTR(Perl_pp_complement),
+       MEMBER_TO_FPTR(Perl_pp_smartmatch),
        MEMBER_TO_FPTR(Perl_pp_atan2),
        MEMBER_TO_FPTR(Perl_pp_sin),
        MEMBER_TO_FPTR(Perl_pp_sin),    /* Perl_pp_cos */
@@ -912,6 +921,9 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
        MEMBER_TO_FPTR(Perl_pp_aelemfast),
        MEMBER_TO_FPTR(Perl_pp_aelem),
        MEMBER_TO_FPTR(Perl_pp_aslice),
+       MEMBER_TO_FPTR(Perl_pp_aeach),
+       MEMBER_TO_FPTR(Perl_pp_akeys),
+       MEMBER_TO_FPTR(Perl_pp_akeys),  /* Perl_pp_avalues */
        MEMBER_TO_FPTR(Perl_pp_each),
        MEMBER_TO_FPTR(Perl_do_kv),     /* Perl_pp_values */
        MEMBER_TO_FPTR(Perl_do_kv),     /* Perl_pp_keys */
@@ -945,9 +957,11 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
        MEMBER_TO_FPTR(Perl_pp_and),
        MEMBER_TO_FPTR(Perl_pp_or),
        MEMBER_TO_FPTR(Perl_pp_xor),
+       MEMBER_TO_FPTR(Perl_pp_defined),        /* Perl_pp_dor */
        MEMBER_TO_FPTR(Perl_pp_cond_expr),
        MEMBER_TO_FPTR(Perl_pp_and),    /* Perl_pp_andassign */
        MEMBER_TO_FPTR(Perl_pp_or),     /* Perl_pp_orassign */
+       MEMBER_TO_FPTR(Perl_pp_defined),        /* Perl_pp_dorassign */
        MEMBER_TO_FPTR(Perl_pp_method),
        MEMBER_TO_FPTR(Perl_pp_entersub),
        MEMBER_TO_FPTR(Perl_pp_leavesub),
@@ -974,6 +988,14 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
        MEMBER_TO_FPTR(Perl_pp_goto),   /* Perl_pp_dump */
        MEMBER_TO_FPTR(Perl_pp_goto),
        MEMBER_TO_FPTR(Perl_pp_exit),
+       MEMBER_TO_FPTR(Perl_pp_setstate),
+       MEMBER_TO_FPTR(Perl_pp_method_named),
+       MEMBER_TO_FPTR(Perl_pp_entergiven),
+       MEMBER_TO_FPTR(Perl_pp_leavegiven),
+       MEMBER_TO_FPTR(Perl_pp_enterwhen),
+       MEMBER_TO_FPTR(Perl_pp_leavewhen),
+       MEMBER_TO_FPTR(Perl_pp_break),
+       MEMBER_TO_FPTR(Perl_pp_continue),
        MEMBER_TO_FPTR(Perl_pp_open),
        MEMBER_TO_FPTR(Perl_pp_close),
        MEMBER_TO_FPTR(Perl_pp_pipe_op),
@@ -993,6 +1015,7 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
        MEMBER_TO_FPTR(Perl_pp_leavewrite),
        MEMBER_TO_FPTR(Perl_pp_prtf),
        MEMBER_TO_FPTR(Perl_pp_print),
+       MEMBER_TO_FPTR(Perl_pp_print),  /* Perl_pp_say */
        MEMBER_TO_FPTR(Perl_pp_sysopen),
        MEMBER_TO_FPTR(Perl_pp_sysseek),
        MEMBER_TO_FPTR(Perl_pp_sysread),
@@ -1131,18 +1154,8 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
        MEMBER_TO_FPTR(Perl_pp_getlogin),
        MEMBER_TO_FPTR(Perl_pp_syscall),
        MEMBER_TO_FPTR(Perl_pp_lock),
-       MEMBER_TO_FPTR(Perl_pp_setstate),
-       MEMBER_TO_FPTR(Perl_pp_method_named),
-       MEMBER_TO_FPTR(Perl_pp_defined),        /* Perl_pp_dor */
-       MEMBER_TO_FPTR(Perl_pp_defined),        /* Perl_pp_dorassign */
-       MEMBER_TO_FPTR(Perl_pp_entergiven),
-       MEMBER_TO_FPTR(Perl_pp_leavegiven),
-       MEMBER_TO_FPTR(Perl_pp_enterwhen),
-       MEMBER_TO_FPTR(Perl_pp_leavewhen),
-       MEMBER_TO_FPTR(Perl_pp_break),
-       MEMBER_TO_FPTR(Perl_pp_continue),
-       MEMBER_TO_FPTR(Perl_pp_smartmatch),
-       MEMBER_TO_FPTR(Perl_pp_print),  /* Perl_pp_say */
+       MEMBER_TO_FPTR(Perl_pp_once),
+       MEMBER_TO_FPTR(Perl_unimplemented_op),  /* Perl_pp_custom */
 }
 #endif
 #ifdef PERL_PPADDR_INITED
@@ -1187,7 +1200,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
        MEMBER_TO_FPTR(Perl_ck_fun),    /* bless */
        MEMBER_TO_FPTR(Perl_ck_open),   /* backtick */
        MEMBER_TO_FPTR(Perl_ck_glob),   /* glob */
-       MEMBER_TO_FPTR(Perl_ck_null),   /* readline */
+       MEMBER_TO_FPTR(Perl_ck_readline),       /* readline */
        MEMBER_TO_FPTR(Perl_ck_null),   /* rcatline */
        MEMBER_TO_FPTR(Perl_ck_fun),    /* regcmaybe */
        MEMBER_TO_FPTR(Perl_ck_fun),    /* regcreset */
@@ -1259,6 +1272,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
        MEMBER_TO_FPTR(Perl_ck_null),   /* i_negate */
        MEMBER_TO_FPTR(Perl_ck_null),   /* not */
        MEMBER_TO_FPTR(Perl_ck_bitop),  /* complement */
+       MEMBER_TO_FPTR(Perl_ck_smartmatch),     /* smartmatch */
        MEMBER_TO_FPTR(Perl_ck_fun),    /* atan2 */
        MEMBER_TO_FPTR(Perl_ck_fun),    /* sin */
        MEMBER_TO_FPTR(Perl_ck_fun),    /* cos */
@@ -1290,9 +1304,12 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
        MEMBER_TO_FPTR(Perl_ck_null),   /* aelemfast */
        MEMBER_TO_FPTR(Perl_ck_null),   /* aelem */
        MEMBER_TO_FPTR(Perl_ck_null),   /* aslice */
-       MEMBER_TO_FPTR(Perl_ck_fun),    /* each */
-       MEMBER_TO_FPTR(Perl_ck_fun),    /* values */
-       MEMBER_TO_FPTR(Perl_ck_fun),    /* keys */
+       MEMBER_TO_FPTR(Perl_ck_each),   /* aeach */
+       MEMBER_TO_FPTR(Perl_ck_each),   /* akeys */
+       MEMBER_TO_FPTR(Perl_ck_each),   /* avalues */
+       MEMBER_TO_FPTR(Perl_ck_each),   /* each */
+       MEMBER_TO_FPTR(Perl_ck_each),   /* values */
+       MEMBER_TO_FPTR(Perl_ck_each),   /* keys */
        MEMBER_TO_FPTR(Perl_ck_delete), /* delete */
        MEMBER_TO_FPTR(Perl_ck_exists), /* exists */
        MEMBER_TO_FPTR(Perl_ck_rvconst),        /* rv2hv */
@@ -1323,9 +1340,11 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
        MEMBER_TO_FPTR(Perl_ck_null),   /* and */
        MEMBER_TO_FPTR(Perl_ck_null),   /* or */
        MEMBER_TO_FPTR(Perl_ck_null),   /* xor */
+       MEMBER_TO_FPTR(Perl_ck_null),   /* dor */
        MEMBER_TO_FPTR(Perl_ck_null),   /* cond_expr */
        MEMBER_TO_FPTR(Perl_ck_null),   /* andassign */
        MEMBER_TO_FPTR(Perl_ck_null),   /* orassign */
+       MEMBER_TO_FPTR(Perl_ck_null),   /* dorassign */
        MEMBER_TO_FPTR(Perl_ck_method), /* method */
        MEMBER_TO_FPTR(Perl_ck_subr),   /* entersub */
        MEMBER_TO_FPTR(Perl_ck_null),   /* leavesub */
@@ -1352,6 +1371,14 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
        MEMBER_TO_FPTR(Perl_ck_null),   /* dump */
        MEMBER_TO_FPTR(Perl_ck_null),   /* goto */
        MEMBER_TO_FPTR(Perl_ck_exit),   /* exit */
+       MEMBER_TO_FPTR(Perl_ck_null),   /* setstate */
+       MEMBER_TO_FPTR(Perl_ck_null),   /* method_named */
+       MEMBER_TO_FPTR(Perl_ck_null),   /* entergiven */
+       MEMBER_TO_FPTR(Perl_ck_null),   /* leavegiven */
+       MEMBER_TO_FPTR(Perl_ck_null),   /* enterwhen */
+       MEMBER_TO_FPTR(Perl_ck_null),   /* leavewhen */
+       MEMBER_TO_FPTR(Perl_ck_null),   /* break */
+       MEMBER_TO_FPTR(Perl_ck_null),   /* continue */
        MEMBER_TO_FPTR(Perl_ck_open),   /* open */
        MEMBER_TO_FPTR(Perl_ck_fun),    /* close */
        MEMBER_TO_FPTR(Perl_ck_fun),    /* pipe_op */
@@ -1371,6 +1398,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
        MEMBER_TO_FPTR(Perl_ck_null),   /* leavewrite */
        MEMBER_TO_FPTR(Perl_ck_listiob),        /* prtf */
        MEMBER_TO_FPTR(Perl_ck_listiob),        /* print */
+       MEMBER_TO_FPTR(Perl_ck_listiob),        /* say */
        MEMBER_TO_FPTR(Perl_ck_fun),    /* sysopen */
        MEMBER_TO_FPTR(Perl_ck_fun),    /* sysseek */
        MEMBER_TO_FPTR(Perl_ck_fun),    /* sysread */
@@ -1509,18 +1537,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
        MEMBER_TO_FPTR(Perl_ck_null),   /* getlogin */
        MEMBER_TO_FPTR(Perl_ck_fun),    /* syscall */
        MEMBER_TO_FPTR(Perl_ck_rfun),   /* lock */
-       MEMBER_TO_FPTR(Perl_ck_null),   /* setstate */
-       MEMBER_TO_FPTR(Perl_ck_null),   /* method_named */
-       MEMBER_TO_FPTR(Perl_ck_null),   /* dor */
-       MEMBER_TO_FPTR(Perl_ck_null),   /* dorassign */
-       MEMBER_TO_FPTR(Perl_ck_null),   /* entergiven */
-       MEMBER_TO_FPTR(Perl_ck_null),   /* leavegiven */
-       MEMBER_TO_FPTR(Perl_ck_null),   /* enterwhen */
-       MEMBER_TO_FPTR(Perl_ck_null),   /* leavewhen */
-       MEMBER_TO_FPTR(Perl_ck_null),   /* break */
-       MEMBER_TO_FPTR(Perl_ck_null),   /* continue */
-       MEMBER_TO_FPTR(Perl_ck_smartmatch),     /* smartmatch */
-       MEMBER_TO_FPTR(Perl_ck_listiob),        /* say */
+       MEMBER_TO_FPTR(Perl_ck_null),   /* once */
        MEMBER_TO_FPTR(Perl_ck_null),   /* custom */
 }
 #endif
@@ -1632,6 +1649,7 @@ EXTCONST U32 PL_opargs[] = {
        0x0000231e,     /* i_negate */
        0x00002216,     /* not */
        0x0000220e,     /* complement */
+       0x00000404,     /* smartmatch */
        0x0002290e,     /* atan2 */
        0x0001378e,     /* sin */
        0x0001378e,     /* cos */
@@ -1663,6 +1681,9 @@ EXTCONST U32 PL_opargs[] = {
        0x00026c04,     /* aelemfast */
        0x00026404,     /* aelem */
        0x00046801,     /* aslice */
+       0x00007600,     /* aeach */
+       0x00007608,     /* akeys */
+       0x00007608,     /* avalues */
        0x00009600,     /* each */
        0x00009608,     /* values */
        0x00009608,     /* keys */
@@ -1696,9 +1717,11 @@ EXTCONST U32 PL_opargs[] = {
        0x00000600,     /* and */
        0x00000600,     /* or */
        0x00022406,     /* xor */
+       0x00000600,     /* dor */
        0x00000640,     /* cond_expr */
        0x00000604,     /* andassign */
        0x00000604,     /* orassign */
+       0x00000604,     /* dorassign */
        0x00000240,     /* method */
        0x00004249,     /* entersub */
        0x00000200,     /* leavesub */
@@ -1725,6 +1748,14 @@ EXTCONST U32 PL_opargs[] = {
        0x00001a44,     /* dump */
        0x00001a44,     /* goto */
        0x00013644,     /* exit */
+       0x00001404,     /* setstate */
+       0x00000c40,     /* method_named */
+       0x00000640,     /* entergiven */
+       0x00000200,     /* leavegiven */
+       0x00000640,     /* enterwhen */
+       0x00000200,     /* leavewhen */
+       0x00000000,     /* break */
+       0x00000000,     /* continue */
        0x0052c81d,     /* open */
        0x0001d614,     /* close */
        0x000cc814,     /* pipe_op */
@@ -1744,6 +1775,7 @@ EXTCONST U32 PL_opargs[] = {
        0x00000200,     /* leavewrite */
        0x0005c815,     /* prtf */
        0x0005c815,     /* print */
+       0x0005c815,     /* say */
        0x1222c804,     /* sysopen */
        0x0022c804,     /* sysseek */
        0x122ec81d,     /* sysread */
@@ -1882,18 +1914,7 @@ EXTCONST U32 PL_opargs[] = {
        0x0000000c,     /* getlogin */
        0x0004281d,     /* syscall */
        0x0000f604,     /* lock */
-       0x00001404,     /* setstate */
-       0x00000c40,     /* method_named */
-       0x00000600,     /* dor */
-       0x00000604,     /* dorassign */
-       0x00000640,     /* entergiven */
-       0x00000200,     /* leavegiven */
-       0x00000640,     /* enterwhen */
-       0x00000200,     /* leavewhen */
-       0x00000000,     /* break */
-       0x00000000,     /* continue */
-       0x00000404,     /* smartmatch */
-       0x0005c815,     /* say */
+       0x00000600,     /* once */
        0x00000000,     /* custom */
 };
 #endif