summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xext/B/t/b.t2
-rw-r--r--opcode.h120
-rwxr-xr-xopcode.pl32
-rw-r--r--opnames.h524
-rw-r--r--pp.sym24
-rw-r--r--pp_proto.h24
6 files changed, 361 insertions, 365 deletions
diff --git a/ext/B/t/b.t b/ext/B/t/b.t
index 95a5059ac8..b750f12eff 100755
--- a/ext/B/t/b.t
+++ b/ext/B/t/b.t
@@ -164,7 +164,7 @@ is(B::cstring("wibble"), '"wibble"', "Testing B::cstring()");
is(B::perlstring("wibble"), '"wibble"', "Testing B::perlstring()");
is(B::class(bless {}, "Wibble::Bibble"), "Bibble", "Testing B::class()");
is(B::cast_I32(3.14), 3, "Testing B::cast_I32()");
-is(B::opnumber("localtime"), 294, "Testing opnumber with opname (localtime)");
+is(B::opnumber("chop"), 38, "Testing opnumber with opname (chop)");
{
no warnings 'once';
diff --git a/opcode.h b/opcode.h
index 42b6e56d08..6ca4d5e25f 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",
@@ -195,9 +196,11 @@ EXTCONST char* const PL_op_name[] = {
"and",
"or",
"xor",
+ "dor",
"cond_expr",
"andassign",
"orassign",
+ "dorassign",
"method",
"entersub",
"leavesub",
@@ -224,6 +227,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 +254,7 @@ EXTCONST char* const PL_op_name[] = {
"leavewrite",
"prtf",
"print",
+ "say",
"sysopen",
"sysseek",
"sysread",
@@ -381,18 +393,6 @@ EXTCONST char* const PL_op_name[] = {
"getlogin",
"syscall",
"lock",
- "setstate",
- "method_named",
- "dor",
- "dorassign",
- "entergiven",
- "leavegiven",
- "enterwhen",
- "leavewhen",
- "break",
- "continue",
- "smartmatch",
- "say",
"custom",
};
#endif
@@ -499,6 +499,7 @@ EXTCONST char* const PL_op_desc[] = {
"integer negation (-)",
"not",
"1's complement (~)",
+ "smart match",
"atan2",
"sin",
"cos",
@@ -563,9 +564,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 +595,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 +622,7 @@ EXTCONST char* const PL_op_desc[] = {
"write exit",
"printf",
"print",
+ "say",
"sysopen",
"sysseek",
"sysread",
@@ -749,18 +761,6 @@ 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",
"unknown custom operator",
};
#endif
@@ -881,6 +881,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 */
@@ -945,9 +946,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 +977,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 +1004,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 +1143,6 @@ 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_unimplemented_op), /* Perl_pp_custom */
}
#endif
@@ -1260,6 +1260,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 */
@@ -1324,9 +1325,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 */
@@ -1353,6 +1356,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 */
@@ -1372,6 +1383,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 */
@@ -1510,18 +1522,6 @@ 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), /* custom */
}
#endif
@@ -1633,6 +1633,7 @@ EXTCONST U32 PL_opargs[] = {
0x0000231e, /* i_negate */
0x00002216, /* not */
0x0000220e, /* complement */
+ 0x00000404, /* smartmatch */
0x0002290e, /* atan2 */
0x0001378e, /* sin */
0x0001378e, /* cos */
@@ -1697,9 +1698,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 */
@@ -1726,6 +1729,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 */
@@ -1745,6 +1756,7 @@ EXTCONST U32 PL_opargs[] = {
0x00000200, /* leavewrite */
0x0005c815, /* prtf */
0x0005c815, /* print */
+ 0x0005c815, /* say */
0x1222c804, /* sysopen */
0x0022c804, /* sysseek */
0x122ec81d, /* sysread */
@@ -1883,18 +1895,6 @@ 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 */
0x00000000, /* custom */
};
#endif
diff --git a/opcode.pl b/opcode.pl
index ab8f31ee1a..f90a6c9001 100755
--- a/opcode.pl
+++ b/opcode.pl
@@ -689,6 +689,8 @@ i_negate integer negation (-) ck_null ifsT1 S
not not ck_null ifs1 S
complement 1's complement (~) ck_bitop fst1 S
+smartmatch smart match ck_smartmatch s2
+
# High falutin' math.
atan2 atan2 ck_fun fsT@ S S
@@ -784,9 +786,11 @@ flop range (or flop) ck_null 1
and logical and (&&) ck_null |
or logical or (||) ck_null |
xor logical xor ck_null fs2 S S
+dor defined or (//) ck_null |
cond_expr conditional expression ck_null d|
andassign logical and assignment (&&=) ck_null s|
orassign logical or assignment (||=) ck_null s|
+dorassign defined or assignment (//=) ck_null s|
method method lookup ck_method d1
entersub subroutine entry ck_subr dmt1 L
@@ -815,7 +819,15 @@ redo redo ck_null ds}
dump dump ck_null ds}
goto goto ck_null ds}
exit exit ck_exit ds% S?
-# continued below
+setstate set statement info ck_null s;
+method_named method with known name ck_null d$
+
+entergiven given() ck_null d|
+leavegiven leave given block ck_null 1
+enterwhen when() ck_null d|
+leavewhen leave when block ck_null 1
+break break ck_null 0
+continue continue ck_null 0
#nswitch numeric switch ck_null d
#cswitch character switch ck_null d
@@ -846,6 +858,7 @@ leavewrite write exit ck_null 1
prtf printf ck_listiob ims@ F? L
print print ck_listiob ims@ F? L
+say say ck_listiob ims@ F? L
sysopen sysopen ck_fun s@ F S S S?
sysseek sysseek ck_fun s@ F S S
@@ -1037,21 +1050,4 @@ syscall syscall ck_fun imst@ S L
# For multi-threading
lock lock ck_rfun s% R
-# Control (contd.)
-setstate set statement info ck_null s;
-method_named method with known name ck_null d$
-
-dor defined or (//) ck_null |
-dorassign defined or assignment (//=) ck_null s|
-
-entergiven given() ck_null d|
-leavegiven leave given block ck_null 1
-enterwhen when() ck_null d|
-leavewhen leave when block ck_null 1
-break break ck_null 0
-continue continue ck_null 0
-smartmatch smart match ck_smartmatch s2
-
-say say ck_listiob ims@ F? L
-
custom unknown custom operator ck_null 0
diff --git a/opnames.h b/opnames.h
index d40140d429..e09cb084d2 100644
--- a/opnames.h
+++ b/opnames.h
@@ -113,268 +113,268 @@ typedef enum opcode {
OP_I_NEGATE, /* 95 */
OP_NOT, /* 96 */
OP_COMPLEMENT, /* 97 */
- OP_ATAN2, /* 98 */
- OP_SIN, /* 99 */
- OP_COS, /* 100 */
- OP_RAND, /* 101 */
- OP_SRAND, /* 102 */
- OP_EXP, /* 103 */
- OP_LOG, /* 104 */
- OP_SQRT, /* 105 */
- OP_INT, /* 106 */
- OP_HEX, /* 107 */
- OP_OCT, /* 108 */
- OP_ABS, /* 109 */
- OP_LENGTH, /* 110 */
- OP_SUBSTR, /* 111 */
- OP_VEC, /* 112 */
- OP_INDEX, /* 113 */
- OP_RINDEX, /* 114 */
- OP_SPRINTF, /* 115 */
- OP_FORMLINE, /* 116 */
- OP_ORD, /* 117 */
- OP_CHR, /* 118 */
- OP_CRYPT, /* 119 */
- OP_UCFIRST, /* 120 */
- OP_LCFIRST, /* 121 */
- OP_UC, /* 122 */
- OP_LC, /* 123 */
- OP_QUOTEMETA, /* 124 */
- OP_RV2AV, /* 125 */
- OP_AELEMFAST, /* 126 */
- OP_AELEM, /* 127 */
- OP_ASLICE, /* 128 */
- OP_EACH, /* 129 */
- OP_VALUES, /* 130 */
- OP_KEYS, /* 131 */
- OP_DELETE, /* 132 */
- OP_EXISTS, /* 133 */
- OP_RV2HV, /* 134 */
- OP_HELEM, /* 135 */
- OP_HSLICE, /* 136 */
- OP_UNPACK, /* 137 */
- OP_PACK, /* 138 */
- OP_SPLIT, /* 139 */
- OP_JOIN, /* 140 */
- OP_LIST, /* 141 */
- OP_LSLICE, /* 142 */
- OP_ANONLIST, /* 143 */
- OP_ANONHASH, /* 144 */
- OP_SPLICE, /* 145 */
- OP_PUSH, /* 146 */
- OP_POP, /* 147 */
- OP_SHIFT, /* 148 */
- OP_UNSHIFT, /* 149 */
- OP_SORT, /* 150 */
- OP_REVERSE, /* 151 */
- OP_GREPSTART, /* 152 */
- OP_GREPWHILE, /* 153 */
- OP_MAPSTART, /* 154 */
- OP_MAPWHILE, /* 155 */
- OP_RANGE, /* 156 */
- OP_FLIP, /* 157 */
- OP_FLOP, /* 158 */
- OP_AND, /* 159 */
- OP_OR, /* 160 */
- OP_XOR, /* 161 */
- OP_COND_EXPR, /* 162 */
- OP_ANDASSIGN, /* 163 */
- OP_ORASSIGN, /* 164 */
- OP_METHOD, /* 165 */
- OP_ENTERSUB, /* 166 */
- OP_LEAVESUB, /* 167 */
- OP_LEAVESUBLV, /* 168 */
- OP_CALLER, /* 169 */
- OP_WARN, /* 170 */
- OP_DIE, /* 171 */
- OP_RESET, /* 172 */
- OP_LINESEQ, /* 173 */
- OP_NEXTSTATE, /* 174 */
- OP_DBSTATE, /* 175 */
- OP_UNSTACK, /* 176 */
- OP_ENTER, /* 177 */
- OP_LEAVE, /* 178 */
- OP_SCOPE, /* 179 */
- OP_ENTERITER, /* 180 */
- OP_ITER, /* 181 */
- OP_ENTERLOOP, /* 182 */
- OP_LEAVELOOP, /* 183 */
- OP_RETURN, /* 184 */
- OP_LAST, /* 185 */
- OP_NEXT, /* 186 */
- OP_REDO, /* 187 */
- OP_DUMP, /* 188 */
- OP_GOTO, /* 189 */
- OP_EXIT, /* 190 */
- OP_OPEN, /* 191 */
- OP_CLOSE, /* 192 */
- OP_PIPE_OP, /* 193 */
- OP_FILENO, /* 194 */
- OP_UMASK, /* 195 */
- OP_BINMODE, /* 196 */
- OP_TIE, /* 197 */
- OP_UNTIE, /* 198 */
- OP_TIED, /* 199 */
- OP_DBMOPEN, /* 200 */
- OP_DBMCLOSE, /* 201 */
- OP_SSELECT, /* 202 */
- OP_SELECT, /* 203 */
- OP_GETC, /* 204 */
- OP_READ, /* 205 */
- OP_ENTERWRITE, /* 206 */
- OP_LEAVEWRITE, /* 207 */
- OP_PRTF, /* 208 */
- OP_PRINT, /* 209 */
- OP_SYSOPEN, /* 210 */
- OP_SYSSEEK, /* 211 */
- OP_SYSREAD, /* 212 */
- OP_SYSWRITE, /* 213 */
- OP_SEND, /* 214 */
- OP_RECV, /* 215 */
- OP_EOF, /* 216 */
- OP_TELL, /* 217 */
- OP_SEEK, /* 218 */
- OP_TRUNCATE, /* 219 */
- OP_FCNTL, /* 220 */
- OP_IOCTL, /* 221 */
- OP_FLOCK, /* 222 */
- OP_SOCKET, /* 223 */
- OP_SOCKPAIR, /* 224 */
- OP_BIND, /* 225 */
- OP_CONNECT, /* 226 */
- OP_LISTEN, /* 227 */
- OP_ACCEPT, /* 228 */
- OP_SHUTDOWN, /* 229 */
- OP_GSOCKOPT, /* 230 */
- OP_SSOCKOPT, /* 231 */
- OP_GETSOCKNAME, /* 232 */
- OP_GETPEERNAME, /* 233 */
- OP_LSTAT, /* 234 */
- OP_STAT, /* 235 */
- OP_FTRREAD, /* 236 */
- OP_FTRWRITE, /* 237 */
- OP_FTREXEC, /* 238 */
- OP_FTEREAD, /* 239 */
- OP_FTEWRITE, /* 240 */
- OP_FTEEXEC, /* 241 */
- OP_FTIS, /* 242 */
- OP_FTSIZE, /* 243 */
- OP_FTMTIME, /* 244 */
- OP_FTATIME, /* 245 */
- OP_FTCTIME, /* 246 */
- OP_FTROWNED, /* 247 */
- OP_FTEOWNED, /* 248 */
- OP_FTZERO, /* 249 */
- OP_FTSOCK, /* 250 */
- OP_FTCHR, /* 251 */
- OP_FTBLK, /* 252 */
- OP_FTFILE, /* 253 */
- OP_FTDIR, /* 254 */
- OP_FTPIPE, /* 255 */
- OP_FTSUID, /* 256 */
- OP_FTSGID, /* 257 */
- OP_FTSVTX, /* 258 */
- OP_FTLINK, /* 259 */
- OP_FTTTY, /* 260 */
- OP_FTTEXT, /* 261 */
- OP_FTBINARY, /* 262 */
- OP_CHDIR, /* 263 */
- OP_CHOWN, /* 264 */
- OP_CHROOT, /* 265 */
- OP_UNLINK, /* 266 */
- OP_CHMOD, /* 267 */
- OP_UTIME, /* 268 */
- OP_RENAME, /* 269 */
- OP_LINK, /* 270 */
- OP_SYMLINK, /* 271 */
- OP_READLINK, /* 272 */
- OP_MKDIR, /* 273 */
- OP_RMDIR, /* 274 */
- OP_OPEN_DIR, /* 275 */
- OP_READDIR, /* 276 */
- OP_TELLDIR, /* 277 */
- OP_SEEKDIR, /* 278 */
- OP_REWINDDIR, /* 279 */
- OP_CLOSEDIR, /* 280 */
- OP_FORK, /* 281 */
- OP_WAIT, /* 282 */
- OP_WAITPID, /* 283 */
- OP_SYSTEM, /* 284 */
- OP_EXEC, /* 285 */
- OP_KILL, /* 286 */
- OP_GETPPID, /* 287 */
- OP_GETPGRP, /* 288 */
- OP_SETPGRP, /* 289 */
- OP_GETPRIORITY, /* 290 */
- OP_SETPRIORITY, /* 291 */
- OP_TIME, /* 292 */
- OP_TMS, /* 293 */
- OP_LOCALTIME, /* 294 */
- OP_GMTIME, /* 295 */
- OP_ALARM, /* 296 */
- OP_SLEEP, /* 297 */
- OP_SHMGET, /* 298 */
- OP_SHMCTL, /* 299 */
- OP_SHMREAD, /* 300 */
- OP_SHMWRITE, /* 301 */
- OP_MSGGET, /* 302 */
- OP_MSGCTL, /* 303 */
- OP_MSGSND, /* 304 */
- OP_MSGRCV, /* 305 */
- OP_SEMOP, /* 306 */
- OP_SEMGET, /* 307 */
- OP_SEMCTL, /* 308 */
- OP_REQUIRE, /* 309 */
- OP_DOFILE, /* 310 */
- OP_ENTEREVAL, /* 311 */
- OP_LEAVEEVAL, /* 312 */
- OP_ENTERTRY, /* 313 */
- OP_LEAVETRY, /* 314 */
- OP_GHBYNAME, /* 315 */
- OP_GHBYADDR, /* 316 */
- OP_GHOSTENT, /* 317 */
- OP_GNBYNAME, /* 318 */
- OP_GNBYADDR, /* 319 */
- OP_GNETENT, /* 320 */
- OP_GPBYNAME, /* 321 */
- OP_GPBYNUMBER, /* 322 */
- OP_GPROTOENT, /* 323 */
- OP_GSBYNAME, /* 324 */
- OP_GSBYPORT, /* 325 */
- OP_GSERVENT, /* 326 */
- OP_SHOSTENT, /* 327 */
- OP_SNETENT, /* 328 */
- OP_SPROTOENT, /* 329 */
- OP_SSERVENT, /* 330 */
- OP_EHOSTENT, /* 331 */
- OP_ENETENT, /* 332 */
- OP_EPROTOENT, /* 333 */
- OP_ESERVENT, /* 334 */
- OP_GPWNAM, /* 335 */
- OP_GPWUID, /* 336 */
- OP_GPWENT, /* 337 */
- OP_SPWENT, /* 338 */
- OP_EPWENT, /* 339 */
- OP_GGRNAM, /* 340 */
- OP_GGRGID, /* 341 */
- OP_GGRENT, /* 342 */
- OP_SGRENT, /* 343 */
- OP_EGRENT, /* 344 */
- OP_GETLOGIN, /* 345 */
- OP_SYSCALL, /* 346 */
- OP_LOCK, /* 347 */
- OP_SETSTATE, /* 348 */
- OP_METHOD_NAMED,/* 349 */
- OP_DOR, /* 350 */
- OP_DORASSIGN, /* 351 */
- OP_ENTERGIVEN, /* 352 */
- OP_LEAVEGIVEN, /* 353 */
- OP_ENTERWHEN, /* 354 */
- OP_LEAVEWHEN, /* 355 */
- OP_BREAK, /* 356 */
- OP_CONTINUE, /* 357 */
- OP_SMARTMATCH, /* 358 */
- OP_SAY, /* 359 */
+ OP_SMARTMATCH, /* 98 */
+ OP_ATAN2, /* 99 */
+ OP_SIN, /* 100 */
+ OP_COS, /* 101 */
+ OP_RAND, /* 102 */
+ OP_SRAND, /* 103 */
+ OP_EXP, /* 104 */
+ OP_LOG, /* 105 */
+ OP_SQRT, /* 106 */
+ OP_INT, /* 107 */
+ OP_HEX, /* 108 */
+ OP_OCT, /* 109 */
+ OP_ABS, /* 110 */
+ OP_LENGTH, /* 111 */
+ OP_SUBSTR, /* 112 */
+ OP_VEC, /* 113 */
+ OP_INDEX, /* 114 */
+ OP_RINDEX, /* 115 */
+ OP_SPRINTF, /* 116 */
+ OP_FORMLINE, /* 117 */
+ OP_ORD, /* 118 */
+ OP_CHR, /* 119 */
+ OP_CRYPT, /* 120 */
+ OP_UCFIRST, /* 121 */
+ OP_LCFIRST, /* 122 */
+ OP_UC, /* 123 */
+ OP_LC, /* 124 */
+ OP_QUOTEMETA, /* 125 */
+ OP_RV2AV, /* 126 */
+ OP_AELEMFAST, /* 127 */
+ OP_AELEM, /* 128 */
+ OP_ASLICE, /* 129 */
+ OP_EACH, /* 130 */
+ OP_VALUES, /* 131 */
+ OP_KEYS, /* 132 */
+ OP_DELETE, /* 133 */
+ OP_EXISTS, /* 134 */
+ OP_RV2HV, /* 135 */
+ OP_HELEM, /* 136 */
+ OP_HSLICE, /* 137 */
+ OP_UNPACK, /* 138 */
+ OP_PACK, /* 139 */
+ OP_SPLIT, /* 140 */
+ OP_JOIN, /* 141 */
+ OP_LIST, /* 142 */
+ OP_LSLICE, /* 143 */
+ OP_ANONLIST, /* 144 */
+ OP_ANONHASH, /* 145 */
+ OP_SPLICE, /* 146 */
+ OP_PUSH, /* 147 */
+ OP_POP, /* 148 */
+ OP_SHIFT, /* 149 */
+ OP_UNSHIFT, /* 150 */
+ OP_SORT, /* 151 */
+ OP_REVERSE, /* 152 */
+ OP_GREPSTART, /* 153 */
+ OP_GREPWHILE, /* 154 */
+ OP_MAPSTART, /* 155 */
+ OP_MAPWHILE, /* 156 */
+ OP_RANGE, /* 157 */
+ OP_FLIP, /* 158 */
+ OP_FLOP, /* 159 */
+ OP_AND, /* 160 */
+ OP_OR, /* 161 */
+ OP_XOR, /* 162 */
+ OP_DOR, /* 163 */
+ OP_COND_EXPR, /* 164 */
+ OP_ANDASSIGN, /* 165 */
+ OP_ORASSIGN, /* 166 */
+ OP_DORASSIGN, /* 167 */
+ OP_METHOD, /* 168 */
+ OP_ENTERSUB, /* 169 */
+ OP_LEAVESUB, /* 170 */
+ OP_LEAVESUBLV, /* 171 */
+ OP_CALLER, /* 172 */
+ OP_WARN, /* 173 */
+ OP_DIE, /* 174 */
+ OP_RESET, /* 175 */
+ OP_LINESEQ, /* 176 */
+ OP_NEXTSTATE, /* 177 */
+ OP_DBSTATE, /* 178 */
+ OP_UNSTACK, /* 179 */
+ OP_ENTER, /* 180 */
+ OP_LEAVE, /* 181 */
+ OP_SCOPE, /* 182 */
+ OP_ENTERITER, /* 183 */
+ OP_ITER, /* 184 */
+ OP_ENTERLOOP, /* 185 */
+ OP_LEAVELOOP, /* 186 */
+ OP_RETURN, /* 187 */
+ OP_LAST, /* 188 */
+ OP_NEXT, /* 189 */
+ OP_REDO, /* 190 */
+ OP_DUMP, /* 191 */
+ OP_GOTO, /* 192 */
+ OP_EXIT, /* 193 */
+ OP_SETSTATE, /* 194 */
+ OP_METHOD_NAMED,/* 195 */
+ OP_ENTERGIVEN, /* 196 */
+ OP_LEAVEGIVEN, /* 197 */
+ OP_ENTERWHEN, /* 198 */
+ OP_LEAVEWHEN, /* 199 */
+ OP_BREAK, /* 200 */
+ OP_CONTINUE, /* 201 */
+ OP_OPEN, /* 202 */
+ OP_CLOSE, /* 203 */
+ OP_PIPE_OP, /* 204 */
+ OP_FILENO, /* 205 */
+ OP_UMASK, /* 206 */
+ OP_BINMODE, /* 207 */
+ OP_TIE, /* 208 */
+ OP_UNTIE, /* 209 */
+ OP_TIED, /* 210 */
+ OP_DBMOPEN, /* 211 */
+ OP_DBMCLOSE, /* 212 */
+ OP_SSELECT, /* 213 */
+ OP_SELECT, /* 214 */
+ OP_GETC, /* 215 */
+ OP_READ, /* 216 */
+ OP_ENTERWRITE, /* 217 */
+ OP_LEAVEWRITE, /* 218 */
+ OP_PRTF, /* 219 */
+ OP_PRINT, /* 220 */
+ OP_SAY, /* 221 */
+ OP_SYSOPEN, /* 222 */
+ OP_SYSSEEK, /* 223 */
+ OP_SYSREAD, /* 224 */
+ OP_SYSWRITE, /* 225 */
+ OP_SEND, /* 226 */
+ OP_RECV, /* 227 */
+ OP_EOF, /* 228 */
+ OP_TELL, /* 229 */
+ OP_SEEK, /* 230 */
+ OP_TRUNCATE, /* 231 */
+ OP_FCNTL, /* 232 */
+ OP_IOCTL, /* 233 */
+ OP_FLOCK, /* 234 */
+ OP_SOCKET, /* 235 */
+ OP_SOCKPAIR, /* 236 */
+ OP_BIND, /* 237 */
+ OP_CONNECT, /* 238 */
+ OP_LISTEN, /* 239 */
+ OP_ACCEPT, /* 240 */
+ OP_SHUTDOWN, /* 241 */
+ OP_GSOCKOPT, /* 242 */
+ OP_SSOCKOPT, /* 243 */
+ OP_GETSOCKNAME, /* 244 */
+ OP_GETPEERNAME, /* 245 */
+ OP_LSTAT, /* 246 */
+ OP_STAT, /* 247 */
+ OP_FTRREAD, /* 248 */
+ OP_FTRWRITE, /* 249 */
+ OP_FTREXEC, /* 250 */
+ OP_FTEREAD, /* 251 */
+ OP_FTEWRITE, /* 252 */
+ OP_FTEEXEC, /* 253 */
+ OP_FTIS, /* 254 */
+ OP_FTSIZE, /* 255 */
+ OP_FTMTIME, /* 256 */
+ OP_FTATIME, /* 257 */
+ OP_FTCTIME, /* 258 */
+ OP_FTROWNED, /* 259 */
+ OP_FTEOWNED, /* 260 */
+ OP_FTZERO, /* 261 */
+ OP_FTSOCK, /* 262 */
+ OP_FTCHR, /* 263 */
+ OP_FTBLK, /* 264 */
+ OP_FTFILE, /* 265 */
+ OP_FTDIR, /* 266 */
+ OP_FTPIPE, /* 267 */
+ OP_FTSUID, /* 268 */
+ OP_FTSGID, /* 269 */
+ OP_FTSVTX, /* 270 */
+ OP_FTLINK, /* 271 */
+ OP_FTTTY, /* 272 */
+ OP_FTTEXT, /* 273 */
+ OP_FTBINARY, /* 274 */
+ OP_CHDIR, /* 275 */
+ OP_CHOWN, /* 276 */
+ OP_CHROOT, /* 277 */
+ OP_UNLINK, /* 278 */
+ OP_CHMOD, /* 279 */
+ OP_UTIME, /* 280 */
+ OP_RENAME, /* 281 */
+ OP_LINK, /* 282 */
+ OP_SYMLINK, /* 283 */
+ OP_READLINK, /* 284 */
+ OP_MKDIR, /* 285 */
+ OP_RMDIR, /* 286 */
+ OP_OPEN_DIR, /* 287 */
+ OP_READDIR, /* 288 */
+ OP_TELLDIR, /* 289 */
+ OP_SEEKDIR, /* 290 */
+ OP_REWINDDIR, /* 291 */
+ OP_CLOSEDIR, /* 292 */
+ OP_FORK, /* 293 */
+ OP_WAIT, /* 294 */
+ OP_WAITPID, /* 295 */
+ OP_SYSTEM, /* 296 */
+ OP_EXEC, /* 297 */
+ OP_KILL, /* 298 */
+ OP_GETPPID, /* 299 */
+ OP_GETPGRP, /* 300 */
+ OP_SETPGRP, /* 301 */
+ OP_GETPRIORITY, /* 302 */
+ OP_SETPRIORITY, /* 303 */
+ OP_TIME, /* 304 */
+ OP_TMS, /* 305 */
+ OP_LOCALTIME, /* 306 */
+ OP_GMTIME, /* 307 */
+ OP_ALARM, /* 308 */
+ OP_SLEEP, /* 309 */
+ OP_SHMGET, /* 310 */
+ OP_SHMCTL, /* 311 */
+ OP_SHMREAD, /* 312 */
+ OP_SHMWRITE, /* 313 */
+ OP_MSGGET, /* 314 */
+ OP_MSGCTL, /* 315 */
+ OP_MSGSND, /* 316 */
+ OP_MSGRCV, /* 317 */
+ OP_SEMOP, /* 318 */
+ OP_SEMGET, /* 319 */
+ OP_SEMCTL, /* 320 */
+ OP_REQUIRE, /* 321 */
+ OP_DOFILE, /* 322 */
+ OP_ENTEREVAL, /* 323 */
+ OP_LEAVEEVAL, /* 324 */
+ OP_ENTERTRY, /* 325 */
+ OP_LEAVETRY, /* 326 */
+ OP_GHBYNAME, /* 327 */
+ OP_GHBYADDR, /* 328 */
+ OP_GHOSTENT, /* 329 */
+ OP_GNBYNAME, /* 330 */
+ OP_GNBYADDR, /* 331 */
+ OP_GNETENT, /* 332 */
+ OP_GPBYNAME, /* 333 */
+ OP_GPBYNUMBER, /* 334 */
+ OP_GPROTOENT, /* 335 */
+ OP_GSBYNAME, /* 336 */
+ OP_GSBYPORT, /* 337 */
+ OP_GSERVENT, /* 338 */
+ OP_SHOSTENT, /* 339 */
+ OP_SNETENT, /* 340 */
+ OP_SPROTOENT, /* 341 */
+ OP_SSERVENT, /* 342 */
+ OP_EHOSTENT, /* 343 */
+ OP_ENETENT, /* 344 */
+ OP_EPROTOENT, /* 345 */
+ OP_ESERVENT, /* 346 */
+ OP_GPWNAM, /* 347 */
+ OP_GPWUID, /* 348 */
+ OP_GPWENT, /* 349 */
+ OP_SPWENT, /* 350 */
+ OP_EPWENT, /* 351 */
+ OP_GGRNAM, /* 352 */
+ OP_GGRGID, /* 353 */
+ OP_GGRENT, /* 354 */
+ OP_SGRENT, /* 355 */
+ OP_EGRENT, /* 356 */
+ OP_GETLOGIN, /* 357 */
+ OP_SYSCALL, /* 358 */
+ OP_LOCK, /* 359 */
OP_CUSTOM, /* 360 */
OP_max
} opcode;
diff --git a/pp.sym b/pp.sym
index 66df9e1d42..8e1495f296 100644
--- a/pp.sym
+++ b/pp.sym
@@ -142,6 +142,7 @@ Perl_pp_negate
Perl_pp_i_negate
Perl_pp_not
Perl_pp_complement
+Perl_pp_smartmatch
Perl_pp_atan2
Perl_pp_sin
Perl_pp_cos
@@ -206,9 +207,11 @@ Perl_pp_flop
Perl_pp_and
Perl_pp_or
Perl_pp_xor
+Perl_pp_dor
Perl_pp_cond_expr
Perl_pp_andassign
Perl_pp_orassign
+Perl_pp_dorassign
Perl_pp_method
Perl_pp_entersub
Perl_pp_leavesub
@@ -235,6 +238,14 @@ Perl_pp_redo
Perl_pp_dump
Perl_pp_goto
Perl_pp_exit
+Perl_pp_setstate
+Perl_pp_method_named
+Perl_pp_entergiven
+Perl_pp_leavegiven
+Perl_pp_enterwhen
+Perl_pp_leavewhen
+Perl_pp_break
+Perl_pp_continue
Perl_pp_open
Perl_pp_close
Perl_pp_pipe_op
@@ -254,6 +265,7 @@ Perl_pp_enterwrite
Perl_pp_leavewrite
Perl_pp_prtf
Perl_pp_print
+Perl_pp_say
Perl_pp_sysopen
Perl_pp_sysseek
Perl_pp_sysread
@@ -392,17 +404,5 @@ Perl_pp_egrent
Perl_pp_getlogin
Perl_pp_syscall
Perl_pp_lock
-Perl_pp_setstate
-Perl_pp_method_named
-Perl_pp_dor
-Perl_pp_dorassign
-Perl_pp_entergiven
-Perl_pp_leavegiven
-Perl_pp_enterwhen
-Perl_pp_leavewhen
-Perl_pp_break
-Perl_pp_continue
-Perl_pp_smartmatch
-Perl_pp_say
# ex: set ro:
diff --git a/pp_proto.h b/pp_proto.h
index e5c87bdd5b..431992c0b0 100644
--- a/pp_proto.h
+++ b/pp_proto.h
@@ -143,6 +143,7 @@ PERL_PPDEF(Perl_pp_negate)
PERL_PPDEF(Perl_pp_i_negate)
PERL_PPDEF(Perl_pp_not)
PERL_PPDEF(Perl_pp_complement)
+PERL_PPDEF(Perl_pp_smartmatch)
PERL_PPDEF(Perl_pp_atan2)
PERL_PPDEF(Perl_pp_sin)
PERL_PPDEF(Perl_pp_cos)
@@ -207,9 +208,11 @@ PERL_PPDEF(Perl_pp_flop)
PERL_PPDEF(Perl_pp_and)
PERL_PPDEF(Perl_pp_or)
PERL_PPDEF(Perl_pp_xor)
+PERL_PPDEF(Perl_pp_dor)
PERL_PPDEF(Perl_pp_cond_expr)
PERL_PPDEF(Perl_pp_andassign)
PERL_PPDEF(Perl_pp_orassign)
+PERL_PPDEF(Perl_pp_dorassign)
PERL_PPDEF(Perl_pp_method)
PERL_PPDEF(Perl_pp_entersub)
PERL_PPDEF(Perl_pp_leavesub)
@@ -236,6 +239,14 @@ PERL_PPDEF(Perl_pp_redo)
PERL_PPDEF(Perl_pp_dump)
PERL_PPDEF(Perl_pp_goto)
PERL_PPDEF(Perl_pp_exit)
+PERL_PPDEF(Perl_pp_setstate)
+PERL_PPDEF(Perl_pp_method_named)
+PERL_PPDEF(Perl_pp_entergiven)
+PERL_PPDEF(Perl_pp_leavegiven)
+PERL_PPDEF(Perl_pp_enterwhen)
+PERL_PPDEF(Perl_pp_leavewhen)
+PERL_PPDEF(Perl_pp_break)
+PERL_PPDEF(Perl_pp_continue)
PERL_PPDEF(Perl_pp_open)
PERL_PPDEF(Perl_pp_close)
PERL_PPDEF(Perl_pp_pipe_op)
@@ -255,6 +266,7 @@ PERL_PPDEF(Perl_pp_enterwrite)
PERL_PPDEF(Perl_pp_leavewrite)
PERL_PPDEF(Perl_pp_prtf)
PERL_PPDEF(Perl_pp_print)
+PERL_PPDEF(Perl_pp_say)
PERL_PPDEF(Perl_pp_sysopen)
PERL_PPDEF(Perl_pp_sysseek)
PERL_PPDEF(Perl_pp_sysread)
@@ -393,17 +405,5 @@ PERL_PPDEF(Perl_pp_egrent)
PERL_PPDEF(Perl_pp_getlogin)
PERL_PPDEF(Perl_pp_syscall)
PERL_PPDEF(Perl_pp_lock)
-PERL_PPDEF(Perl_pp_setstate)
-PERL_PPDEF(Perl_pp_method_named)
-PERL_PPDEF(Perl_pp_dor)
-PERL_PPDEF(Perl_pp_dorassign)
-PERL_PPDEF(Perl_pp_entergiven)
-PERL_PPDEF(Perl_pp_leavegiven)
-PERL_PPDEF(Perl_pp_enterwhen)
-PERL_PPDEF(Perl_pp_leavewhen)
-PERL_PPDEF(Perl_pp_break)
-PERL_PPDEF(Perl_pp_continue)
-PERL_PPDEF(Perl_pp_smartmatch)
-PERL_PPDEF(Perl_pp_say)
/* ex: set ro: */