X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=opcode.h;h=aa57e212ae8cd6a55cf9aea7fb20e60298ca5fa7;hb=4e73d6a402bc493d66d19c409c41e1e271c6450b;hp=7acce1968bc776898c6af7d56c41ae4f48f3a864;hpb=01f5bc1b1054964df4fcf07067d574b936dee120;p=p5sagit%2Fp5-mst-13.2.git diff --git a/opcode.h b/opcode.h index 7acce19..aa57e21 100644 --- 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,13 @@ EXTCONST char* const PL_op_name[] = { "dump", "goto", "exit", + "method_named", + "entergiven", + "leavegiven", + "enterwhen", + "leavewhen", + "break", + "continue", "open", "close", "pipe_op", @@ -243,12 +256,11 @@ EXTCONST char* const PL_op_name[] = { "leavewrite", "prtf", "print", + "say", "sysopen", "sysseek", "sysread", "syswrite", - "send", - "recv", "eof", "tell", "seek", @@ -256,6 +268,8 @@ EXTCONST char* const PL_op_name[] = { "fcntl", "ioctl", "flock", + "send", + "recv", "socket", "sockpair", "bind", @@ -344,6 +358,7 @@ EXTCONST char* const PL_op_name[] = { "semctl", "require", "dofile", + "hintseval", "entereval", "leaveeval", "entertry", @@ -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,13 @@ EXTCONST char* const PL_op_desc[] = { "dump", "goto", "exit", + "method with known name", + "given()", + "leave given block", + "when()", + "leave when block", + "break", + "continue", "open", "close", "pipe", @@ -611,12 +628,11 @@ EXTCONST char* const PL_op_desc[] = { "write exit", "printf", "print", + "say", "sysopen", "sysseek", "sysread", "syswrite", - "send", - "recv", "eof", "tell", "seek", @@ -624,6 +640,8 @@ EXTCONST char* const PL_op_desc[] = { "fcntl", "ioctl", "flock", + "send", + "recv", "socket", "socketpair", "bind", @@ -712,6 +730,7 @@ EXTCONST char* const PL_op_desc[] = { "semctl", "require", "do \"file\"", + "eval hints", "eval \"string\"", "eval \"string\" exit", "eval {block}", @@ -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,13 @@ 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_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,12 +1014,11 @@ 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), MEMBER_TO_FPTR(Perl_pp_send), /* Perl_pp_syswrite */ - MEMBER_TO_FPTR(Perl_pp_send), - MEMBER_TO_FPTR(Perl_pp_sysread), /* Perl_pp_recv */ MEMBER_TO_FPTR(Perl_pp_eof), MEMBER_TO_FPTR(Perl_pp_tell), MEMBER_TO_FPTR(Perl_pp_sysseek), /* Perl_pp_seek */ @@ -1006,6 +1026,8 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */ MEMBER_TO_FPTR(Perl_pp_ioctl), /* Perl_pp_fcntl */ MEMBER_TO_FPTR(Perl_pp_ioctl), MEMBER_TO_FPTR(Perl_pp_flock), + MEMBER_TO_FPTR(Perl_pp_send), + MEMBER_TO_FPTR(Perl_pp_sysread), /* Perl_pp_recv */ MEMBER_TO_FPTR(Perl_pp_socket), MEMBER_TO_FPTR(Perl_pp_sockpair), MEMBER_TO_FPTR(Perl_pp_bind), @@ -1094,6 +1116,7 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */ MEMBER_TO_FPTR(Perl_pp_semctl), MEMBER_TO_FPTR(Perl_pp_require), MEMBER_TO_FPTR(Perl_pp_require), /* Perl_pp_dofile */ + MEMBER_TO_FPTR(Perl_pp_hintseval), MEMBER_TO_FPTR(Perl_pp_entereval), MEMBER_TO_FPTR(Perl_pp_leaveeval), MEMBER_TO_FPTR(Perl_pp_entertry), @@ -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 */ @@ -1271,7 +1285,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */ MEMBER_TO_FPTR(Perl_ck_fun), /* hex */ MEMBER_TO_FPTR(Perl_ck_fun), /* oct */ MEMBER_TO_FPTR(Perl_ck_fun), /* abs */ - MEMBER_TO_FPTR(Perl_ck_lengthconst), /* length */ + MEMBER_TO_FPTR(Perl_ck_fun), /* length */ MEMBER_TO_FPTR(Perl_ck_substr), /* substr */ MEMBER_TO_FPTR(Perl_ck_fun), /* vec */ MEMBER_TO_FPTR(Perl_ck_index), /* index */ @@ -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,13 @@ 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), /* 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,12 +1397,11 @@ 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 */ MEMBER_TO_FPTR(Perl_ck_fun), /* syswrite */ - MEMBER_TO_FPTR(Perl_ck_fun), /* send */ - MEMBER_TO_FPTR(Perl_ck_fun), /* recv */ MEMBER_TO_FPTR(Perl_ck_eof), /* eof */ MEMBER_TO_FPTR(Perl_ck_fun), /* tell */ MEMBER_TO_FPTR(Perl_ck_fun), /* seek */ @@ -1384,6 +1409,8 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */ MEMBER_TO_FPTR(Perl_ck_fun), /* fcntl */ MEMBER_TO_FPTR(Perl_ck_fun), /* ioctl */ MEMBER_TO_FPTR(Perl_ck_fun), /* flock */ + MEMBER_TO_FPTR(Perl_ck_fun), /* send */ + MEMBER_TO_FPTR(Perl_ck_fun), /* recv */ MEMBER_TO_FPTR(Perl_ck_fun), /* socket */ MEMBER_TO_FPTR(Perl_ck_fun), /* sockpair */ MEMBER_TO_FPTR(Perl_ck_fun), /* bind */ @@ -1472,6 +1499,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */ MEMBER_TO_FPTR(Perl_ck_fun), /* semctl */ MEMBER_TO_FPTR(Perl_ck_require), /* require */ MEMBER_TO_FPTR(Perl_ck_fun), /* dofile */ + MEMBER_TO_FPTR(Perl_ck_svconst), /* hintseval */ MEMBER_TO_FPTR(Perl_ck_eval), /* entereval */ MEMBER_TO_FPTR(Perl_ck_null), /* leaveeval */ MEMBER_TO_FPTR(Perl_ck_null), /* entertry */ @@ -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 */ @@ -1644,12 +1662,12 @@ EXTCONST U32 PL_opargs[] = { 0x0001378e, /* hex */ 0x0001378e, /* oct */ 0x0001378e, /* abs */ - 0x0001379c, /* length */ + 0x0001379e, /* length */ 0x1322280c, /* substr */ 0x0022281c, /* vec */ 0x0122291c, /* index */ 0x0122291c, /* rindex */ - 0x0004280d, /* sprintf */ + 0x0004280f, /* sprintf */ 0x00042805, /* formline */ 0x0001379e, /* ord */ 0x0001378e, /* chr */ @@ -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,13 @@ EXTCONST U32 PL_opargs[] = { 0x00001a44, /* dump */ 0x00001a44, /* goto */ 0x00013644, /* exit */ + 0x00000c40, /* method_named */ + 0x00000640, /* entergiven */ + 0x00000200, /* leavegiven */ + 0x00000640, /* enterwhen */ + 0x00000200, /* leavewhen */ + 0x00000000, /* break */ + 0x00000000, /* continue */ 0x0052c81d, /* open */ 0x0001d614, /* close */ 0x000cc814, /* pipe_op */ @@ -1744,12 +1774,11 @@ EXTCONST U32 PL_opargs[] = { 0x00000200, /* leavewrite */ 0x0005c815, /* prtf */ 0x0005c815, /* print */ + 0x0005c815, /* say */ 0x1222c804, /* sysopen */ 0x0022c804, /* sysseek */ 0x122ec81d, /* sysread */ 0x1322c81d, /* syswrite */ - 0x1222c81d, /* send */ - 0x022ec81d, /* recv */ 0x0001d614, /* eof */ 0x0001d60c, /* tell */ 0x0022c804, /* seek */ @@ -1757,6 +1786,8 @@ EXTCONST U32 PL_opargs[] = { 0x0022c80c, /* fcntl */ 0x0022c80c, /* ioctl */ 0x0002c91c, /* flock */ + 0x1222c81d, /* send */ + 0x022ec81d, /* recv */ 0x0222c814, /* socket */ 0x222cc814, /* sockpair */ 0x0002c814, /* bind */ @@ -1845,6 +1876,7 @@ EXTCONST U32 PL_opargs[] = { 0x0222281d, /* semctl */ 0x000136c0, /* require */ 0x00002240, /* dofile */ + 0x00000c04, /* hintseval */ 0x00003640, /* entereval */ 0x00002200, /* leaveeval */ 0x00000600, /* entertry */ @@ -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