This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Merge branch 'release-5.21.2' into blead
[perl5.git] / opcode.h
index fb64ae2..fbc3fe1 100644 (file)
--- a/opcode.h
+++ b/opcode.h
 #define Perl_pp_chomp Perl_pp_chop
 #define Perl_pp_schomp Perl_pp_schop
 #define Perl_pp_i_preinc Perl_pp_preinc
-#define Perl_pp_i_predec Perl_pp_predec
+#define Perl_pp_predec Perl_pp_preinc
+#define Perl_pp_i_predec Perl_pp_preinc
 #define Perl_pp_i_postinc Perl_pp_postinc
-#define Perl_pp_i_postdec Perl_pp_postdec
+#define Perl_pp_postdec Perl_pp_postinc
+#define Perl_pp_i_postdec Perl_pp_postinc
 #define Perl_pp_slt Perl_pp_sle
 #define Perl_pp_sgt Perl_pp_sle
 #define Perl_pp_sge Perl_pp_sle
@@ -278,6 +280,7 @@ EXTCONST char* const PL_op_name[] = {
        "aelemfast_lex",
        "aelem",
        "aslice",
+       "kvaslice",
        "aeach",
        "akeys",
        "avalues",
@@ -289,7 +292,7 @@ EXTCONST char* const PL_op_name[] = {
        "rv2hv",
        "helem",
        "hslice",
-       "boolkeys",
+       "kvhslice",
        "unpack",
        "pack",
        "split",
@@ -517,6 +520,14 @@ EXTCONST char* const PL_op_name[] = {
        "reach",
        "rkeys",
        "rvalues",
+       "coreargs",
+       "runcv",
+       "fc",
+       "padcv",
+       "introcv",
+       "clonecv",
+       "padrange",
+       "freed",
 };
 #endif
 
@@ -656,6 +667,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",
@@ -667,7 +679,7 @@ EXTCONST char* const PL_op_desc[] = {
        "hash dereference",
        "hash element",
        "hash slice",
-       "boolkeys",
+       "key/value hash slice",
        "unpack",
        "pack",
        "split",
@@ -895,6 +907,14 @@ EXTCONST char* const PL_op_desc[] = {
        "each on reference",
        "keys on reference",
        "values on reference",
+       "CORE:: subroutine",
+       "__SUB__",
+       "fc",
+       "private subroutine",
+       "private subroutine",
+       "private subroutine",
+       "list of private variables",
+       "freed op",
 };
 #endif
 
@@ -965,12 +985,12 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
        Perl_pp_pos,
        Perl_pp_preinc,
        Perl_pp_i_preinc,       /* implemented by Perl_pp_preinc */
-       Perl_pp_predec,
-       Perl_pp_i_predec,       /* implemented by Perl_pp_predec */
+       Perl_pp_predec, /* implemented by Perl_pp_preinc */
+       Perl_pp_i_predec,       /* implemented by Perl_pp_preinc */
        Perl_pp_postinc,
        Perl_pp_i_postinc,      /* implemented by Perl_pp_postinc */
-       Perl_pp_postdec,
-       Perl_pp_i_postdec,      /* implemented by Perl_pp_postdec */
+       Perl_pp_postdec,        /* implemented by Perl_pp_postinc */
+       Perl_pp_i_postdec,      /* implemented by Perl_pp_postinc */
        Perl_pp_pow,
        Perl_pp_multiply,
        Perl_pp_i_multiply,
@@ -1048,6 +1068,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 */
@@ -1059,7 +1080,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,
@@ -1287,6 +1308,13 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
        Perl_pp_reach,  /* implemented by Perl_pp_rkeys */
        Perl_pp_rkeys,
        Perl_pp_rvalues,        /* implemented by Perl_pp_rkeys */
+       Perl_pp_coreargs,
+       Perl_pp_runcv,
+       Perl_pp_fc,
+       Perl_pp_padcv,
+       Perl_pp_introcv,
+       Perl_pp_clonecv,
+       Perl_pp_padrange,
 }
 #endif
 #ifdef PERL_PPADDR_INITED
@@ -1329,7 +1357,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 */
@@ -1349,9 +1377,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 */
@@ -1376,14 +1404,14 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
        Perl_ck_fun,            /* stringify */
        Perl_ck_bitop,          /* left_shift */
        Perl_ck_bitop,          /* right_shift */
-       Perl_ck_null,           /* lt */
-       Perl_ck_null,           /* i_lt */
-       Perl_ck_null,           /* gt */
-       Perl_ck_null,           /* i_gt */
-       Perl_ck_null,           /* le */
-       Perl_ck_null,           /* i_le */
-       Perl_ck_null,           /* ge */
-       Perl_ck_null,           /* i_ge */
+       Perl_ck_cmp,            /* lt */
+       Perl_ck_cmp,            /* i_lt */
+       Perl_ck_cmp,            /* gt */
+       Perl_ck_cmp,            /* i_gt */
+       Perl_ck_cmp,            /* le */
+       Perl_ck_cmp,            /* i_le */
+       Perl_ck_cmp,            /* ge */
+       Perl_ck_cmp,            /* i_ge */
        Perl_ck_null,           /* eq */
        Perl_ck_null,           /* i_eq */
        Perl_ck_null,           /* ne */
@@ -1417,12 +1445,12 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
        Perl_ck_fun,            /* hex */
        Perl_ck_fun,            /* oct */
        Perl_ck_fun,            /* abs */
-       Perl_ck_fun,            /* length */
+       Perl_ck_length,         /* length */
        Perl_ck_substr,         /* substr */
        Perl_ck_fun,            /* vec */
        Perl_ck_index,          /* index */
        Perl_ck_index,          /* rindex */
-       Perl_ck_fun,            /* sprintf */
+       Perl_ck_lfun,           /* sprintf */
        Perl_ck_fun,            /* formline */
        Perl_ck_fun,            /* ord */
        Perl_ck_fun,            /* chr */
@@ -1437,6 +1465,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 */
@@ -1448,8 +1477,8 @@ 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_unpack,         /* unpack */
+       Perl_ck_null,           /* kvhslice */
+       Perl_ck_fun,            /* unpack */
        Perl_ck_fun,            /* pack */
        Perl_ck_split,          /* split */
        Perl_ck_join,           /* join */
@@ -1485,7 +1514,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 */
@@ -1504,7 +1533,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 */
@@ -1537,8 +1566,8 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
        Perl_ck_fun,            /* sysread */
        Perl_ck_fun,            /* syswrite */
        Perl_ck_eof,            /* eof */
-       Perl_ck_fun,            /* tell */
-       Perl_ck_fun,            /* seek */
+       Perl_ck_tell,           /* tell */
+       Perl_ck_tell,           /* seek */
        Perl_ck_trunc,          /* truncate */
        Perl_ck_fun,            /* fcntl */
        Perl_ck_fun,            /* ioctl */
@@ -1585,7 +1614,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 */
@@ -1676,6 +1705,13 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
        Perl_ck_each,           /* reach */
        Perl_ck_each,           /* rkeys */
        Perl_ck_each,           /* rvalues */
+       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 */
 }
 #endif
 #ifdef PERL_CHECK_INITED
@@ -1732,9 +1768,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 */
@@ -1750,7 +1786,7 @@ EXTCONST U32 PL_opargs[] = {
        0x0001121e,     /* i_divide */
        0x0001123e,     /* modulo */
        0x0001121e,     /* i_modulo */
-       0x00012209,     /* repeat */
+       0x0001220b,     /* repeat */
        0x0001123e,     /* add */
        0x0001121e,     /* i_add */
        0x0001123e,     /* subtract */
@@ -1820,6 +1856,7 @@ EXTCONST U32 PL_opargs[] = {
        0x00013040,     /* aelemfast_lex */
        0x00013204,     /* aelem */
        0x00023401,     /* aslice */
+       0x00023401,     /* kvaslice */
        0x00003b00,     /* aeach */
        0x00003b08,     /* akeys */
        0x00003b08,     /* avalues */
@@ -1828,12 +1865,12 @@ EXTCONST U32 PL_opargs[] = {
        0x00004b08,     /* keys */
        0x00001b00,     /* delete */
        0x00001b04,     /* exists */
-       0x00000148,     /* rv2hv */
+       0x00000140,     /* rv2hv */
        0x00014204,     /* helem */
        0x00024401,     /* hslice */
-       0x00004b00,     /* boolkeys */
-       0x00091400,     /* unpack */
-       0x0002140d,     /* pack */
+       0x00024401,     /* kvhslice */
+       0x00091480,     /* unpack */
+       0x0002140f,     /* pack */
        0x00111408,     /* split */
        0x0002140d,     /* join */
        0x00002401,     /* list */
@@ -1939,8 +1976,8 @@ EXTCONST U32 PL_opargs[] = {
        0x01116404,     /* ssockopt */
        0x00006b04,     /* getsockname */
        0x00006b04,     /* getpeername */
-       0x00006c80,     /* lstat */
-       0x00006c80,     /* stat */
+       0x0000ec80,     /* lstat */
+       0x0000ec80,     /* stat */
        0x00006c84,     /* ftrread */
        0x00006c84,     /* ftrwrite */
        0x00006c84,     /* ftrexec */
@@ -2017,7 +2054,7 @@ EXTCONST U32 PL_opargs[] = {
        0x00009bc0,     /* require */
        0x00001140,     /* dofile */
        0x00000604,     /* hintseval */
-       0x00001b40,     /* entereval */
+       0x00009bc0,     /* entereval */
        0x00001100,     /* leaveeval */
        0x00000340,     /* entertry */
        0x00000400,     /* leavetry */
@@ -2059,6 +2096,13 @@ EXTCONST U32 PL_opargs[] = {
        0x00001b00,     /* reach */
        0x00001b08,     /* rkeys */
        0x00001b08,     /* rvalues */
+       0x00000600,     /* coreargs */
+       0x00000004,     /* runcv */
+       0x00009b8e,     /* fc */
+       0x00000040,     /* padcv */
+       0x00000040,     /* introcv */
+       0x00000040,     /* clonecv */
+       0x00000040,     /* padrange */
 };
 #endif