X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=opcode.h;h=ce83340aeebe2dab86e1621ac506255f772b4e47;hb=b73edd974ff6de4630341da3b93d562a24ff05d7;hp=aea0a8af36594559fb64c8fac6bf8a7b8c5831b2;hpb=8990e3071044a96302560bbdb5706f3e74cf1bef;p=p5sagit%2Fp5-mst-13.2.git diff --git a/opcode.h b/opcode.h index aea0a8a..ce83340 100644 --- a/opcode.h +++ b/opcode.h @@ -1,3 +1,8 @@ +#define pp_i_preinc pp_preinc +#define pp_i_predec pp_predec +#define pp_i_postinc pp_postinc +#define pp_i_postdec pp_postdec + typedef enum { OP_NULL, /* 0 */ OP_STUB, /* 1 */ @@ -5,345 +10,724 @@ typedef enum { OP_PUSHMARK, /* 3 */ OP_WANTARRAY, /* 4 */ OP_CONST, /* 5 */ - OP_INTERP, /* 6 */ - OP_GVSV, /* 7 */ - OP_GV, /* 8 */ + OP_GVSV, /* 6 */ + OP_GV, /* 7 */ + OP_GELEM, /* 8 */ OP_PADSV, /* 9 */ OP_PADAV, /* 10 */ OP_PADHV, /* 11 */ OP_PADANY, /* 12 */ OP_PUSHRE, /* 13 */ OP_RV2GV, /* 14 */ - OP_SV2LEN, /* 15 */ - OP_RV2SV, /* 16 */ - OP_AV2ARYLEN, /* 17 */ - OP_RV2CV, /* 18 */ - OP_REFGEN, /* 19 */ - OP_REF, /* 20 */ - OP_BLESS, /* 21 */ - OP_BACKTICK, /* 22 */ - OP_GLOB, /* 23 */ - OP_READLINE, /* 24 */ - OP_RCATLINE, /* 25 */ - OP_REGCMAYBE, /* 26 */ - OP_REGCOMP, /* 27 */ - OP_MATCH, /* 28 */ - OP_SUBST, /* 29 */ - OP_SUBSTCONT, /* 30 */ - OP_TRANS, /* 31 */ - OP_SASSIGN, /* 32 */ - OP_AASSIGN, /* 33 */ - OP_SCHOP, /* 34 */ - OP_CHOP, /* 35 */ - OP_DEFINED, /* 36 */ - OP_UNDEF, /* 37 */ - OP_STUDY, /* 38 */ - OP_PREINC, /* 39 */ - OP_PREDEC, /* 40 */ - OP_POSTINC, /* 41 */ - OP_POSTDEC, /* 42 */ - OP_POW, /* 43 */ - OP_MULTIPLY, /* 44 */ - OP_DIVIDE, /* 45 */ - OP_MODULO, /* 46 */ - OP_REPEAT, /* 47 */ - OP_ADD, /* 48 */ - OP_INTADD, /* 49 */ - OP_SUBTRACT, /* 50 */ - OP_CONCAT, /* 51 */ - OP_LEFT_SHIFT, /* 52 */ - OP_RIGHT_SHIFT, /* 53 */ - OP_LT, /* 54 */ - OP_GT, /* 55 */ - OP_LE, /* 56 */ - OP_GE, /* 57 */ - OP_EQ, /* 58 */ - OP_NE, /* 59 */ - OP_NCMP, /* 60 */ - OP_SLT, /* 61 */ - OP_SGT, /* 62 */ - OP_SLE, /* 63 */ - OP_SGE, /* 64 */ - OP_SEQ, /* 65 */ - OP_SNE, /* 66 */ - OP_SCMP, /* 67 */ - OP_BIT_AND, /* 68 */ - OP_XOR, /* 69 */ - OP_BIT_OR, /* 70 */ - OP_NEGATE, /* 71 */ - OP_NOT, /* 72 */ - OP_COMPLEMENT, /* 73 */ - OP_ATAN2, /* 74 */ - OP_SIN, /* 75 */ - OP_COS, /* 76 */ - OP_RAND, /* 77 */ - OP_SRAND, /* 78 */ - OP_EXP, /* 79 */ - OP_LOG, /* 80 */ - OP_SQRT, /* 81 */ - OP_INT, /* 82 */ - OP_HEX, /* 83 */ - OP_OCT, /* 84 */ - OP_ABS, /* 85 */ - OP_LENGTH, /* 86 */ - OP_SUBSTR, /* 87 */ - OP_VEC, /* 88 */ - OP_INDEX, /* 89 */ - OP_RINDEX, /* 90 */ - OP_SPRINTF, /* 91 */ - OP_FORMLINE, /* 92 */ - OP_ORD, /* 93 */ - OP_CHR, /* 94 */ - OP_CRYPT, /* 95 */ - OP_UCFIRST, /* 96 */ - OP_LCFIRST, /* 97 */ - OP_UC, /* 98 */ - OP_LC, /* 99 */ - OP_RV2AV, /* 100 */ - OP_AELEMFAST, /* 101 */ - OP_AELEM, /* 102 */ - OP_ASLICE, /* 103 */ - OP_EACH, /* 104 */ - OP_VALUES, /* 105 */ - OP_KEYS, /* 106 */ - OP_DELETE, /* 107 */ - OP_RV2HV, /* 108 */ - OP_HELEM, /* 109 */ - OP_HSLICE, /* 110 */ - OP_UNPACK, /* 111 */ - OP_PACK, /* 112 */ - OP_SPLIT, /* 113 */ - OP_JOIN, /* 114 */ - OP_LIST, /* 115 */ - OP_LSLICE, /* 116 */ - OP_ANONLIST, /* 117 */ - OP_ANONHASH, /* 118 */ - OP_SPLICE, /* 119 */ - OP_PUSH, /* 120 */ - OP_POP, /* 121 */ - OP_SHIFT, /* 122 */ - OP_UNSHIFT, /* 123 */ - OP_SORT, /* 124 */ - OP_REVERSE, /* 125 */ - OP_GREPSTART, /* 126 */ - OP_GREPWHILE, /* 127 */ - OP_RANGE, /* 128 */ - OP_FLIP, /* 129 */ - OP_FLOP, /* 130 */ - OP_AND, /* 131 */ - OP_OR, /* 132 */ - OP_COND_EXPR, /* 133 */ - OP_ANDASSIGN, /* 134 */ - OP_ORASSIGN, /* 135 */ - OP_METHOD, /* 136 */ - OP_ENTERSUBR, /* 137 */ - OP_LEAVESUBR, /* 138 */ - OP_CALLER, /* 139 */ - OP_WARN, /* 140 */ - OP_DIE, /* 141 */ - OP_RESET, /* 142 */ - OP_LINESEQ, /* 143 */ - OP_NEXTSTATE, /* 144 */ - OP_DBSTATE, /* 145 */ - OP_UNSTACK, /* 146 */ - OP_ENTER, /* 147 */ - OP_LEAVE, /* 148 */ - OP_SCOPE, /* 149 */ - OP_ENTERITER, /* 150 */ - OP_ITER, /* 151 */ - OP_ENTERLOOP, /* 152 */ - OP_LEAVELOOP, /* 153 */ - OP_RETURN, /* 154 */ - OP_LAST, /* 155 */ - OP_NEXT, /* 156 */ - OP_REDO, /* 157 */ - OP_DUMP, /* 158 */ - OP_GOTO, /* 159 */ - OP_EXIT, /* 160 */ - OP_NSWITCH, /* 161 */ - OP_CSWITCH, /* 162 */ - OP_OPEN, /* 163 */ - OP_CLOSE, /* 164 */ - OP_PIPE_OP, /* 165 */ - OP_FILENO, /* 166 */ - OP_UMASK, /* 167 */ - OP_BINMODE, /* 168 */ - OP_TIE, /* 169 */ - OP_UNTIE, /* 170 */ - OP_DBMOPEN, /* 171 */ - OP_DBMCLOSE, /* 172 */ - OP_SSELECT, /* 173 */ - OP_SELECT, /* 174 */ - OP_GETC, /* 175 */ - OP_READ, /* 176 */ - OP_ENTERWRITE, /* 177 */ - OP_LEAVEWRITE, /* 178 */ - OP_PRTF, /* 179 */ - OP_PRINT, /* 180 */ - OP_SYSREAD, /* 181 */ - OP_SYSWRITE, /* 182 */ - OP_SEND, /* 183 */ - OP_RECV, /* 184 */ - OP_EOF, /* 185 */ - OP_TELL, /* 186 */ - OP_SEEK, /* 187 */ - OP_TRUNCATE, /* 188 */ - OP_FCNTL, /* 189 */ - OP_IOCTL, /* 190 */ - OP_FLOCK, /* 191 */ - OP_SOCKET, /* 192 */ - OP_SOCKPAIR, /* 193 */ - OP_BIND, /* 194 */ - OP_CONNECT, /* 195 */ - OP_LISTEN, /* 196 */ - OP_ACCEPT, /* 197 */ - OP_SHUTDOWN, /* 198 */ - OP_GSOCKOPT, /* 199 */ - OP_SSOCKOPT, /* 200 */ - OP_GETSOCKNAME, /* 201 */ - OP_GETPEERNAME, /* 202 */ - OP_LSTAT, /* 203 */ - OP_STAT, /* 204 */ - OP_FTRREAD, /* 205 */ - OP_FTRWRITE, /* 206 */ - OP_FTREXEC, /* 207 */ - OP_FTEREAD, /* 208 */ - OP_FTEWRITE, /* 209 */ - OP_FTEEXEC, /* 210 */ - OP_FTIS, /* 211 */ - OP_FTEOWNED, /* 212 */ - OP_FTROWNED, /* 213 */ - OP_FTZERO, /* 214 */ - OP_FTSIZE, /* 215 */ - OP_FTMTIME, /* 216 */ - OP_FTATIME, /* 217 */ - OP_FTCTIME, /* 218 */ - OP_FTSOCK, /* 219 */ - OP_FTCHR, /* 220 */ - OP_FTBLK, /* 221 */ - OP_FTFILE, /* 222 */ - OP_FTDIR, /* 223 */ - OP_FTPIPE, /* 224 */ - OP_FTLINK, /* 225 */ - OP_FTSUID, /* 226 */ - OP_FTSGID, /* 227 */ - OP_FTSVTX, /* 228 */ - OP_FTTTY, /* 229 */ - OP_FTTEXT, /* 230 */ - OP_FTBINARY, /* 231 */ - OP_CHDIR, /* 232 */ - OP_CHOWN, /* 233 */ - OP_CHROOT, /* 234 */ - OP_UNLINK, /* 235 */ - OP_CHMOD, /* 236 */ - OP_UTIME, /* 237 */ - OP_RENAME, /* 238 */ - OP_LINK, /* 239 */ - OP_SYMLINK, /* 240 */ - OP_READLINK, /* 241 */ - OP_MKDIR, /* 242 */ - OP_RMDIR, /* 243 */ - OP_OPEN_DIR, /* 244 */ - OP_READDIR, /* 245 */ - OP_TELLDIR, /* 246 */ - OP_SEEKDIR, /* 247 */ - OP_REWINDDIR, /* 248 */ - OP_CLOSEDIR, /* 249 */ - OP_FORK, /* 250 */ - OP_WAIT, /* 251 */ - OP_WAITPID, /* 252 */ - OP_SYSTEM, /* 253 */ - OP_EXEC, /* 254 */ - OP_KILL, /* 255 */ - OP_GETPPID, /* 256 */ - OP_GETPGRP, /* 257 */ - OP_SETPGRP, /* 258 */ - OP_GETPRIORITY, /* 259 */ - OP_SETPRIORITY, /* 260 */ - OP_TIME, /* 261 */ - OP_TMS, /* 262 */ - OP_LOCALTIME, /* 263 */ - OP_GMTIME, /* 264 */ - OP_ALARM, /* 265 */ - OP_SLEEP, /* 266 */ - OP_SHMGET, /* 267 */ - OP_SHMCTL, /* 268 */ - OP_SHMREAD, /* 269 */ - OP_SHMWRITE, /* 270 */ - OP_MSGGET, /* 271 */ - OP_MSGCTL, /* 272 */ - OP_MSGSND, /* 273 */ - OP_MSGRCV, /* 274 */ - OP_SEMGET, /* 275 */ - OP_SEMCTL, /* 276 */ - OP_SEMOP, /* 277 */ - OP_REQUIRE, /* 278 */ - OP_DOFILE, /* 279 */ - OP_ENTEREVAL, /* 280 */ - OP_LEAVEEVAL, /* 281 */ - OP_EVALONCE, /* 282 */ - OP_ENTERTRY, /* 283 */ - OP_LEAVETRY, /* 284 */ - OP_GHBYNAME, /* 285 */ - OP_GHBYADDR, /* 286 */ - OP_GHOSTENT, /* 287 */ - OP_GNBYNAME, /* 288 */ - OP_GNBYADDR, /* 289 */ - OP_GNETENT, /* 290 */ - OP_GPBYNAME, /* 291 */ - OP_GPBYNUMBER, /* 292 */ - OP_GPROTOENT, /* 293 */ - OP_GSBYNAME, /* 294 */ - OP_GSBYPORT, /* 295 */ - OP_GSERVENT, /* 296 */ - OP_SHOSTENT, /* 297 */ - OP_SNETENT, /* 298 */ - OP_SPROTOENT, /* 299 */ - OP_SSERVENT, /* 300 */ - OP_EHOSTENT, /* 301 */ - OP_ENETENT, /* 302 */ - OP_EPROTOENT, /* 303 */ - OP_ESERVENT, /* 304 */ - OP_GPWNAM, /* 305 */ - OP_GPWUID, /* 306 */ - OP_GPWENT, /* 307 */ - OP_SPWENT, /* 308 */ - OP_EPWENT, /* 309 */ - OP_GGRNAM, /* 310 */ - OP_GGRGID, /* 311 */ - OP_GGRENT, /* 312 */ - OP_SGRENT, /* 313 */ - OP_EGRENT, /* 314 */ - OP_GETLOGIN, /* 315 */ - OP_SYSCALL, /* 316 */ + OP_RV2SV, /* 15 */ + OP_AV2ARYLEN, /* 16 */ + OP_RV2CV, /* 17 */ + OP_ANONCODE, /* 18 */ + OP_PROTOTYPE, /* 19 */ + OP_REFGEN, /* 20 */ + OP_SREFGEN, /* 21 */ + OP_REF, /* 22 */ + OP_BLESS, /* 23 */ + OP_BACKTICK, /* 24 */ + OP_GLOB, /* 25 */ + OP_READLINE, /* 26 */ + OP_RCATLINE, /* 27 */ + OP_REGCMAYBE, /* 28 */ + OP_REGCOMP, /* 29 */ + OP_MATCH, /* 30 */ + OP_SUBST, /* 31 */ + OP_SUBSTCONT, /* 32 */ + OP_TRANS, /* 33 */ + OP_SASSIGN, /* 34 */ + OP_AASSIGN, /* 35 */ + OP_CHOP, /* 36 */ + OP_SCHOP, /* 37 */ + OP_CHOMP, /* 38 */ + OP_SCHOMP, /* 39 */ + OP_DEFINED, /* 40 */ + OP_UNDEF, /* 41 */ + OP_STUDY, /* 42 */ + OP_POS, /* 43 */ + OP_PREINC, /* 44 */ + OP_I_PREINC, /* 45 */ + OP_PREDEC, /* 46 */ + OP_I_PREDEC, /* 47 */ + OP_POSTINC, /* 48 */ + OP_I_POSTINC, /* 49 */ + OP_POSTDEC, /* 50 */ + OP_I_POSTDEC, /* 51 */ + OP_POW, /* 52 */ + OP_MULTIPLY, /* 53 */ + OP_I_MULTIPLY, /* 54 */ + OP_DIVIDE, /* 55 */ + OP_I_DIVIDE, /* 56 */ + OP_MODULO, /* 57 */ + OP_I_MODULO, /* 58 */ + OP_REPEAT, /* 59 */ + OP_ADD, /* 60 */ + OP_I_ADD, /* 61 */ + OP_SUBTRACT, /* 62 */ + OP_I_SUBTRACT, /* 63 */ + OP_CONCAT, /* 64 */ + OP_STRINGIFY, /* 65 */ + OP_LEFT_SHIFT, /* 66 */ + OP_RIGHT_SHIFT, /* 67 */ + OP_LT, /* 68 */ + OP_I_LT, /* 69 */ + OP_GT, /* 70 */ + OP_I_GT, /* 71 */ + OP_LE, /* 72 */ + OP_I_LE, /* 73 */ + OP_GE, /* 74 */ + OP_I_GE, /* 75 */ + OP_EQ, /* 76 */ + OP_I_EQ, /* 77 */ + OP_NE, /* 78 */ + OP_I_NE, /* 79 */ + OP_NCMP, /* 80 */ + OP_I_NCMP, /* 81 */ + OP_SLT, /* 82 */ + OP_SGT, /* 83 */ + OP_SLE, /* 84 */ + OP_SGE, /* 85 */ + OP_SEQ, /* 86 */ + OP_SNE, /* 87 */ + OP_SCMP, /* 88 */ + OP_BIT_AND, /* 89 */ + OP_BIT_XOR, /* 90 */ + OP_BIT_OR, /* 91 */ + OP_NEGATE, /* 92 */ + OP_I_NEGATE, /* 93 */ + OP_NOT, /* 94 */ + OP_COMPLEMENT, /* 95 */ + OP_ATAN2, /* 96 */ + OP_SIN, /* 97 */ + OP_COS, /* 98 */ + OP_RAND, /* 99 */ + OP_SRAND, /* 100 */ + OP_EXP, /* 101 */ + OP_LOG, /* 102 */ + OP_SQRT, /* 103 */ + OP_INT, /* 104 */ + OP_HEX, /* 105 */ + OP_OCT, /* 106 */ + OP_ABS, /* 107 */ + OP_LENGTH, /* 108 */ + OP_SUBSTR, /* 109 */ + OP_VEC, /* 110 */ + OP_INDEX, /* 111 */ + OP_RINDEX, /* 112 */ + OP_SPRINTF, /* 113 */ + OP_FORMLINE, /* 114 */ + OP_ORD, /* 115 */ + OP_CHR, /* 116 */ + OP_CRYPT, /* 117 */ + OP_UCFIRST, /* 118 */ + OP_LCFIRST, /* 119 */ + OP_UC, /* 120 */ + OP_LC, /* 121 */ + OP_QUOTEMETA, /* 122 */ + OP_RV2AV, /* 123 */ + OP_AELEMFAST, /* 124 */ + OP_AELEM, /* 125 */ + OP_ASLICE, /* 126 */ + OP_EACH, /* 127 */ + OP_VALUES, /* 128 */ + OP_KEYS, /* 129 */ + OP_DELETE, /* 130 */ + OP_EXISTS, /* 131 */ + OP_RV2HV, /* 132 */ + OP_HELEM, /* 133 */ + OP_HSLICE, /* 134 */ + OP_UNPACK, /* 135 */ + OP_PACK, /* 136 */ + OP_SPLIT, /* 137 */ + OP_JOIN, /* 138 */ + OP_LIST, /* 139 */ + OP_LSLICE, /* 140 */ + OP_ANONLIST, /* 141 */ + OP_ANONHASH, /* 142 */ + OP_SPLICE, /* 143 */ + OP_PUSH, /* 144 */ + OP_POP, /* 145 */ + OP_SHIFT, /* 146 */ + OP_UNSHIFT, /* 147 */ + OP_SORT, /* 148 */ + OP_REVERSE, /* 149 */ + OP_GREPSTART, /* 150 */ + OP_GREPWHILE, /* 151 */ + OP_MAPSTART, /* 152 */ + OP_MAPWHILE, /* 153 */ + OP_RANGE, /* 154 */ + OP_FLIP, /* 155 */ + OP_FLOP, /* 156 */ + OP_AND, /* 157 */ + OP_OR, /* 158 */ + OP_XOR, /* 159 */ + OP_COND_EXPR, /* 160 */ + OP_ANDASSIGN, /* 161 */ + OP_ORASSIGN, /* 162 */ + OP_METHOD, /* 163 */ + OP_ENTERSUB, /* 164 */ + OP_LEAVESUB, /* 165 */ + OP_CALLER, /* 166 */ + OP_WARN, /* 167 */ + OP_DIE, /* 168 */ + OP_RESET, /* 169 */ + OP_LINESEQ, /* 170 */ + OP_NEXTSTATE, /* 171 */ + OP_DBSTATE, /* 172 */ + OP_UNSTACK, /* 173 */ + OP_ENTER, /* 174 */ + OP_LEAVE, /* 175 */ + OP_SCOPE, /* 176 */ + OP_ENTERITER, /* 177 */ + OP_ITER, /* 178 */ + OP_ENTERLOOP, /* 179 */ + OP_LEAVELOOP, /* 180 */ + OP_RETURN, /* 181 */ + OP_LAST, /* 182 */ + OP_NEXT, /* 183 */ + OP_REDO, /* 184 */ + OP_DUMP, /* 185 */ + OP_GOTO, /* 186 */ + OP_EXIT, /* 187 */ + OP_OPEN, /* 188 */ + OP_CLOSE, /* 189 */ + OP_PIPE_OP, /* 190 */ + OP_FILENO, /* 191 */ + OP_UMASK, /* 192 */ + OP_BINMODE, /* 193 */ + OP_TIE, /* 194 */ + OP_UNTIE, /* 195 */ + OP_TIED, /* 196 */ + OP_DBMOPEN, /* 197 */ + OP_DBMCLOSE, /* 198 */ + OP_SSELECT, /* 199 */ + OP_SELECT, /* 200 */ + OP_GETC, /* 201 */ + OP_READ, /* 202 */ + OP_ENTERWRITE, /* 203 */ + OP_LEAVEWRITE, /* 204 */ + OP_PRTF, /* 205 */ + OP_PRINT, /* 206 */ + OP_SYSOPEN, /* 207 */ + OP_SYSREAD, /* 208 */ + OP_SYSWRITE, /* 209 */ + OP_SEND, /* 210 */ + OP_RECV, /* 211 */ + OP_EOF, /* 212 */ + OP_TELL, /* 213 */ + OP_SEEK, /* 214 */ + OP_TRUNCATE, /* 215 */ + OP_FCNTL, /* 216 */ + OP_IOCTL, /* 217 */ + OP_FLOCK, /* 218 */ + OP_SOCKET, /* 219 */ + OP_SOCKPAIR, /* 220 */ + OP_BIND, /* 221 */ + OP_CONNECT, /* 222 */ + OP_LISTEN, /* 223 */ + OP_ACCEPT, /* 224 */ + OP_SHUTDOWN, /* 225 */ + OP_GSOCKOPT, /* 226 */ + OP_SSOCKOPT, /* 227 */ + OP_GETSOCKNAME, /* 228 */ + OP_GETPEERNAME, /* 229 */ + OP_LSTAT, /* 230 */ + OP_STAT, /* 231 */ + OP_FTRREAD, /* 232 */ + OP_FTRWRITE, /* 233 */ + OP_FTREXEC, /* 234 */ + OP_FTEREAD, /* 235 */ + OP_FTEWRITE, /* 236 */ + OP_FTEEXEC, /* 237 */ + OP_FTIS, /* 238 */ + OP_FTEOWNED, /* 239 */ + OP_FTROWNED, /* 240 */ + OP_FTZERO, /* 241 */ + OP_FTSIZE, /* 242 */ + OP_FTMTIME, /* 243 */ + OP_FTATIME, /* 244 */ + OP_FTCTIME, /* 245 */ + OP_FTSOCK, /* 246 */ + OP_FTCHR, /* 247 */ + OP_FTBLK, /* 248 */ + OP_FTFILE, /* 249 */ + OP_FTDIR, /* 250 */ + OP_FTPIPE, /* 251 */ + OP_FTLINK, /* 252 */ + OP_FTSUID, /* 253 */ + OP_FTSGID, /* 254 */ + OP_FTSVTX, /* 255 */ + OP_FTTTY, /* 256 */ + OP_FTTEXT, /* 257 */ + OP_FTBINARY, /* 258 */ + OP_CHDIR, /* 259 */ + OP_CHOWN, /* 260 */ + OP_CHROOT, /* 261 */ + OP_UNLINK, /* 262 */ + OP_CHMOD, /* 263 */ + OP_UTIME, /* 264 */ + OP_RENAME, /* 265 */ + OP_LINK, /* 266 */ + OP_SYMLINK, /* 267 */ + OP_READLINK, /* 268 */ + OP_MKDIR, /* 269 */ + OP_RMDIR, /* 270 */ + OP_OPEN_DIR, /* 271 */ + OP_READDIR, /* 272 */ + OP_TELLDIR, /* 273 */ + OP_SEEKDIR, /* 274 */ + OP_REWINDDIR, /* 275 */ + OP_CLOSEDIR, /* 276 */ + OP_FORK, /* 277 */ + OP_WAIT, /* 278 */ + OP_WAITPID, /* 279 */ + OP_SYSTEM, /* 280 */ + OP_EXEC, /* 281 */ + OP_KILL, /* 282 */ + OP_GETPPID, /* 283 */ + OP_GETPGRP, /* 284 */ + OP_SETPGRP, /* 285 */ + OP_GETPRIORITY, /* 286 */ + OP_SETPRIORITY, /* 287 */ + OP_TIME, /* 288 */ + OP_TMS, /* 289 */ + OP_LOCALTIME, /* 290 */ + OP_GMTIME, /* 291 */ + OP_ALARM, /* 292 */ + OP_SLEEP, /* 293 */ + OP_SHMGET, /* 294 */ + OP_SHMCTL, /* 295 */ + OP_SHMREAD, /* 296 */ + OP_SHMWRITE, /* 297 */ + OP_MSGGET, /* 298 */ + OP_MSGCTL, /* 299 */ + OP_MSGSND, /* 300 */ + OP_MSGRCV, /* 301 */ + OP_SEMGET, /* 302 */ + OP_SEMCTL, /* 303 */ + OP_SEMOP, /* 304 */ + OP_REQUIRE, /* 305 */ + OP_DOFILE, /* 306 */ + OP_ENTEREVAL, /* 307 */ + OP_LEAVEEVAL, /* 308 */ + OP_ENTERTRY, /* 309 */ + OP_LEAVETRY, /* 310 */ + OP_GHBYNAME, /* 311 */ + OP_GHBYADDR, /* 312 */ + OP_GHOSTENT, /* 313 */ + OP_GNBYNAME, /* 314 */ + OP_GNBYADDR, /* 315 */ + OP_GNETENT, /* 316 */ + OP_GPBYNAME, /* 317 */ + OP_GPBYNUMBER, /* 318 */ + OP_GPROTOENT, /* 319 */ + OP_GSBYNAME, /* 320 */ + OP_GSBYPORT, /* 321 */ + OP_GSERVENT, /* 322 */ + OP_SHOSTENT, /* 323 */ + OP_SNETENT, /* 324 */ + OP_SPROTOENT, /* 325 */ + OP_SSERVENT, /* 326 */ + OP_EHOSTENT, /* 327 */ + OP_ENETENT, /* 328 */ + OP_EPROTOENT, /* 329 */ + OP_ESERVENT, /* 330 */ + OP_GPWNAM, /* 331 */ + OP_GPWUID, /* 332 */ + OP_GPWENT, /* 333 */ + OP_SPWENT, /* 334 */ + OP_EPWENT, /* 335 */ + OP_GGRNAM, /* 336 */ + OP_GGRGID, /* 337 */ + OP_GGRENT, /* 338 */ + OP_SGRENT, /* 339 */ + OP_EGRENT, /* 340 */ + OP_GETLOGIN, /* 341 */ + OP_SYSCALL, /* 342 */ + OP_max } opcode; -#define MAXO 317 +#define MAXO 343 + +#ifndef DOINIT +EXT char *op_name[]; +#else +EXT char *op_name[] = { + "null", + "stub", + "scalar", + "pushmark", + "wantarray", + "const", + "gvsv", + "gv", + "gelem", + "padsv", + "padav", + "padhv", + "padany", + "pushre", + "rv2gv", + "rv2sv", + "av2arylen", + "rv2cv", + "anoncode", + "prototype", + "refgen", + "srefgen", + "ref", + "bless", + "backtick", + "glob", + "readline", + "rcatline", + "regcmaybe", + "regcomp", + "match", + "subst", + "substcont", + "trans", + "sassign", + "aassign", + "chop", + "schop", + "chomp", + "schomp", + "defined", + "undef", + "study", + "pos", + "preinc", + "i_preinc", + "predec", + "i_predec", + "postinc", + "i_postinc", + "postdec", + "i_postdec", + "pow", + "multiply", + "i_multiply", + "divide", + "i_divide", + "modulo", + "i_modulo", + "repeat", + "add", + "i_add", + "subtract", + "i_subtract", + "concat", + "stringify", + "left_shift", + "right_shift", + "lt", + "i_lt", + "gt", + "i_gt", + "le", + "i_le", + "ge", + "i_ge", + "eq", + "i_eq", + "ne", + "i_ne", + "ncmp", + "i_ncmp", + "slt", + "sgt", + "sle", + "sge", + "seq", + "sne", + "scmp", + "bit_and", + "bit_xor", + "bit_or", + "negate", + "i_negate", + "not", + "complement", + "atan2", + "sin", + "cos", + "rand", + "srand", + "exp", + "log", + "sqrt", + "int", + "hex", + "oct", + "abs", + "length", + "substr", + "vec", + "index", + "rindex", + "sprintf", + "formline", + "ord", + "chr", + "crypt", + "ucfirst", + "lcfirst", + "uc", + "lc", + "quotemeta", + "rv2av", + "aelemfast", + "aelem", + "aslice", + "each", + "values", + "keys", + "delete", + "exists", + "rv2hv", + "helem", + "hslice", + "unpack", + "pack", + "split", + "join", + "list", + "lslice", + "anonlist", + "anonhash", + "splice", + "push", + "pop", + "shift", + "unshift", + "sort", + "reverse", + "grepstart", + "grepwhile", + "mapstart", + "mapwhile", + "range", + "flip", + "flop", + "and", + "or", + "xor", + "cond_expr", + "andassign", + "orassign", + "method", + "entersub", + "leavesub", + "caller", + "warn", + "die", + "reset", + "lineseq", + "nextstate", + "dbstate", + "unstack", + "enter", + "leave", + "scope", + "enteriter", + "iter", + "enterloop", + "leaveloop", + "return", + "last", + "next", + "redo", + "dump", + "goto", + "exit", + "open", + "close", + "pipe_op", + "fileno", + "umask", + "binmode", + "tie", + "untie", + "tied", + "dbmopen", + "dbmclose", + "sselect", + "select", + "getc", + "read", + "enterwrite", + "leavewrite", + "prtf", + "print", + "sysopen", + "sysread", + "syswrite", + "send", + "recv", + "eof", + "tell", + "seek", + "truncate", + "fcntl", + "ioctl", + "flock", + "socket", + "sockpair", + "bind", + "connect", + "listen", + "accept", + "shutdown", + "gsockopt", + "ssockopt", + "getsockname", + "getpeername", + "lstat", + "stat", + "ftrread", + "ftrwrite", + "ftrexec", + "fteread", + "ftewrite", + "fteexec", + "ftis", + "fteowned", + "ftrowned", + "ftzero", + "ftsize", + "ftmtime", + "ftatime", + "ftctime", + "ftsock", + "ftchr", + "ftblk", + "ftfile", + "ftdir", + "ftpipe", + "ftlink", + "ftsuid", + "ftsgid", + "ftsvtx", + "fttty", + "fttext", + "ftbinary", + "chdir", + "chown", + "chroot", + "unlink", + "chmod", + "utime", + "rename", + "link", + "symlink", + "readlink", + "mkdir", + "rmdir", + "open_dir", + "readdir", + "telldir", + "seekdir", + "rewinddir", + "closedir", + "fork", + "wait", + "waitpid", + "system", + "exec", + "kill", + "getppid", + "getpgrp", + "setpgrp", + "getpriority", + "setpriority", + "time", + "tms", + "localtime", + "gmtime", + "alarm", + "sleep", + "shmget", + "shmctl", + "shmread", + "shmwrite", + "msgget", + "msgctl", + "msgsnd", + "msgrcv", + "semget", + "semctl", + "semop", + "require", + "dofile", + "entereval", + "leaveeval", + "entertry", + "leavetry", + "ghbyname", + "ghbyaddr", + "ghostent", + "gnbyname", + "gnbyaddr", + "gnetent", + "gpbyname", + "gpbynumber", + "gprotoent", + "gsbyname", + "gsbyport", + "gservent", + "shostent", + "snetent", + "sprotoent", + "sservent", + "ehostent", + "enetent", + "eprotoent", + "eservent", + "gpwnam", + "gpwuid", + "gpwent", + "spwent", + "epwent", + "ggrnam", + "ggrgid", + "ggrent", + "sgrent", + "egrent", + "getlogin", + "syscall", +}; +#endif #ifndef DOINIT -extern char *op_name[]; +EXT char *op_desc[]; #else -char *op_name[] = { +EXT char *op_desc[] = { "null operation", "stub", "scalar", "pushmark", "wantarray", "constant item", - "interpreted string", "scalar variable", "glob value", + "glob elem", "private variable", "private array", "private hash", "private something", "push regexp", "ref-to-glob cast", - "scalar value length", - "ref-to-scalar cast", + "scalar deref", "array length", - "subroutine reference", + "subroutine deref", + "anonymous subroutine", + "subroutine prototype", "reference constructor", + "scalar ref constructor", "reference-type operator", "bless", "backticks", @@ -358,33 +742,52 @@ char *op_name[] = { "character translation", "scalar assignment", "list assignment", - "scalar chop", "chop", + "scalar chop", + "safe chop", + "scalar safe chop", "defined operator", "undef operator", "study", + "match position", "preincrement", + "integer preincrement", "predecrement", + "integer predecrement", "postincrement", + "integer postincrement", "postdecrement", + "integer postdecrement", "exponentiation", "multiplication", + "integer multiplication", "division", + "integer division", "modulus", + "integer modulus", "repeat", "addition", "integer addition", "subtraction", + "integer subtraction", "concatenation", + "string", "left bitshift", "right bitshift", "numeric lt", + "integer lt", "numeric gt", + "integer gt", "numeric le", + "integer le", "numeric ge", + "integer ge", "numeric eq", + "integer eq", "numeric ne", - "spaceship", + "integer ne", + "spaceship operator", + "integer spaceship", "string lt", "string gt", "string le", @@ -392,10 +795,11 @@ char *op_name[] = { "string eq", "string ne", "string comparison", - "bit and", - "xor", - "bit or", + "bitwise and", + "bitwise xor", + "bitwise or", "negate", + "integer negate", "not", "1's complement", "atan2", @@ -424,6 +828,7 @@ char *op_name[] = { "lower case first", "upper case", "lower case", + "quote metachars", "array deref", "known array element", "array element", @@ -432,6 +837,7 @@ char *op_name[] = { "values", "keys", "delete", + "exists operator", "associative array deref", "associative array elem", "associative array slice", @@ -452,11 +858,14 @@ char *op_name[] = { "reverse", "grep", "grep iterator", + "map", + "map iterator", "flipflop", "range (or flip)", "range (or flop)", "logical and", "logical or", + "logical xor", "conditional expression", "logical and assignment", "logical or assignment", @@ -485,8 +894,6 @@ char *op_name[] = { "dump", "goto", "exit", - "numeric switch", - "character switch", "open", "close", "pipe", @@ -495,6 +902,7 @@ char *op_name[] = { "binmode", "tie", "untie", + "tied", "dbmopen", "dbmclose", "select system call", @@ -505,6 +913,7 @@ char *op_name[] = { "write exit", "printf", "print", + "sysopen", "sysread", "syswrite", "send", @@ -606,7 +1015,6 @@ char *op_name[] = { "do 'file'", "eval string", "eval exit", - "eval constant string", "eval block", "eval block exit", "gethostbyname", @@ -644,376 +1052,405 @@ char *op_name[] = { }; #endif -OP * ck_chop P((OP* op)); -OP * ck_concat P((OP* op)); -OP * ck_eof P((OP* op)); -OP * ck_eval P((OP* op)); -OP * ck_exec P((OP* op)); -OP * ck_formline P((OP* op)); -OP * ck_ftst P((OP* op)); -OP * ck_fun P((OP* op)); -OP * ck_glob P((OP* op)); -OP * ck_grep P((OP* op)); -OP * ck_index P((OP* op)); -OP * ck_lengthconst P((OP* op)); -OP * ck_lfun P((OP* op)); -OP * ck_listiob P((OP* op)); -OP * ck_match P((OP* op)); -OP * ck_null P((OP* op)); -OP * ck_repeat P((OP* op)); -OP * ck_require P((OP* op)); -OP * ck_rfun P((OP* op)); -OP * ck_rvconst P((OP* op)); -OP * ck_select P((OP* op)); -OP * ck_shift P((OP* op)); -OP * ck_sort P((OP* op)); -OP * ck_split P((OP* op)); -OP * ck_subr P((OP* op)); -OP * ck_svconst P((OP* op)); -OP * ck_trunc P((OP* op)); +OP * ck_concat _((OP* op)); +OP * ck_delete _((OP* op)); +OP * ck_eof _((OP* op)); +OP * ck_eval _((OP* op)); +OP * ck_exec _((OP* op)); +OP * ck_formline _((OP* op)); +OP * ck_ftst _((OP* op)); +OP * ck_fun _((OP* op)); +OP * ck_glob _((OP* op)); +OP * ck_grep _((OP* op)); +OP * ck_index _((OP* op)); +OP * ck_lengthconst _((OP* op)); +OP * ck_lfun _((OP* op)); +OP * ck_listiob _((OP* op)); +OP * ck_match _((OP* op)); +OP * ck_null _((OP* op)); +OP * ck_repeat _((OP* op)); +OP * ck_require _((OP* op)); +OP * ck_rfun _((OP* op)); +OP * ck_rvconst _((OP* op)); +OP * ck_select _((OP* op)); +OP * ck_shift _((OP* op)); +OP * ck_sort _((OP* op)); +OP * ck_spair _((OP* op)); +OP * ck_split _((OP* op)); +OP * ck_subr _((OP* op)); +OP * ck_svconst _((OP* op)); +OP * ck_trunc _((OP* op)); -OP * pp_null P((void)); -OP * pp_stub P((void)); -OP * pp_scalar P((void)); -OP * pp_pushmark P((void)); -OP * pp_wantarray P((void)); -OP * pp_const P((void)); -OP * pp_interp P((void)); -OP * pp_gvsv P((void)); -OP * pp_gv P((void)); -OP * pp_padsv P((void)); -OP * pp_padav P((void)); -OP * pp_padhv P((void)); -OP * pp_padany P((void)); -OP * pp_pushre P((void)); -OP * pp_rv2gv P((void)); -OP * pp_sv2len P((void)); -OP * pp_rv2sv P((void)); -OP * pp_av2arylen P((void)); -OP * pp_rv2cv P((void)); -OP * pp_refgen P((void)); -OP * pp_ref P((void)); -OP * pp_bless P((void)); -OP * pp_backtick P((void)); -OP * pp_glob P((void)); -OP * pp_readline P((void)); -OP * pp_rcatline P((void)); -OP * pp_regcmaybe P((void)); -OP * pp_regcomp P((void)); -OP * pp_match P((void)); -OP * pp_subst P((void)); -OP * pp_substcont P((void)); -OP * pp_trans P((void)); -OP * pp_sassign P((void)); -OP * pp_aassign P((void)); -OP * pp_schop P((void)); -OP * pp_chop P((void)); -OP * pp_defined P((void)); -OP * pp_undef P((void)); -OP * pp_study P((void)); -OP * pp_preinc P((void)); -OP * pp_predec P((void)); -OP * pp_postinc P((void)); -OP * pp_postdec P((void)); -OP * pp_pow P((void)); -OP * pp_multiply P((void)); -OP * pp_divide P((void)); -OP * pp_modulo P((void)); -OP * pp_repeat P((void)); -OP * pp_add P((void)); -OP * pp_intadd P((void)); -OP * pp_subtract P((void)); -OP * pp_concat P((void)); -OP * pp_left_shift P((void)); -OP * pp_right_shift P((void)); -OP * pp_lt P((void)); -OP * pp_gt P((void)); -OP * pp_le P((void)); -OP * pp_ge P((void)); -OP * pp_eq P((void)); -OP * pp_ne P((void)); -OP * pp_ncmp P((void)); -OP * pp_slt P((void)); -OP * pp_sgt P((void)); -OP * pp_sle P((void)); -OP * pp_sge P((void)); -OP * pp_seq P((void)); -OP * pp_sne P((void)); -OP * pp_scmp P((void)); -OP * pp_bit_and P((void)); -OP * pp_xor P((void)); -OP * pp_bit_or P((void)); -OP * pp_negate P((void)); -OP * pp_not P((void)); -OP * pp_complement P((void)); -OP * pp_atan2 P((void)); -OP * pp_sin P((void)); -OP * pp_cos P((void)); -OP * pp_rand P((void)); -OP * pp_srand P((void)); -OP * pp_exp P((void)); -OP * pp_log P((void)); -OP * pp_sqrt P((void)); -OP * pp_int P((void)); -OP * pp_hex P((void)); -OP * pp_oct P((void)); -OP * pp_abs P((void)); -OP * pp_length P((void)); -OP * pp_substr P((void)); -OP * pp_vec P((void)); -OP * pp_index P((void)); -OP * pp_rindex P((void)); -OP * pp_sprintf P((void)); -OP * pp_formline P((void)); -OP * pp_ord P((void)); -OP * pp_chr P((void)); -OP * pp_crypt P((void)); -OP * pp_ucfirst P((void)); -OP * pp_lcfirst P((void)); -OP * pp_uc P((void)); -OP * pp_lc P((void)); -OP * pp_rv2av P((void)); -OP * pp_aelemfast P((void)); -OP * pp_aelem P((void)); -OP * pp_aslice P((void)); -OP * pp_each P((void)); -OP * pp_values P((void)); -OP * pp_keys P((void)); -OP * pp_delete P((void)); -OP * pp_rv2hv P((void)); -OP * pp_helem P((void)); -OP * pp_hslice P((void)); -OP * pp_unpack P((void)); -OP * pp_pack P((void)); -OP * pp_split P((void)); -OP * pp_join P((void)); -OP * pp_list P((void)); -OP * pp_lslice P((void)); -OP * pp_anonlist P((void)); -OP * pp_anonhash P((void)); -OP * pp_splice P((void)); -OP * pp_push P((void)); -OP * pp_pop P((void)); -OP * pp_shift P((void)); -OP * pp_unshift P((void)); -OP * pp_sort P((void)); -OP * pp_reverse P((void)); -OP * pp_grepstart P((void)); -OP * pp_grepwhile P((void)); -OP * pp_range P((void)); -OP * pp_flip P((void)); -OP * pp_flop P((void)); -OP * pp_and P((void)); -OP * pp_or P((void)); -OP * pp_cond_expr P((void)); -OP * pp_andassign P((void)); -OP * pp_orassign P((void)); -OP * pp_method P((void)); -OP * pp_entersubr P((void)); -OP * pp_leavesubr P((void)); -OP * pp_caller P((void)); -OP * pp_warn P((void)); -OP * pp_die P((void)); -OP * pp_reset P((void)); -OP * pp_lineseq P((void)); -OP * pp_nextstate P((void)); -OP * pp_dbstate P((void)); -OP * pp_unstack P((void)); -OP * pp_enter P((void)); -OP * pp_leave P((void)); -OP * pp_scope P((void)); -OP * pp_enteriter P((void)); -OP * pp_iter P((void)); -OP * pp_enterloop P((void)); -OP * pp_leaveloop P((void)); -OP * pp_return P((void)); -OP * pp_last P((void)); -OP * pp_next P((void)); -OP * pp_redo P((void)); -OP * pp_dump P((void)); -OP * pp_goto P((void)); -OP * pp_exit P((void)); -OP * pp_nswitch P((void)); -OP * pp_cswitch P((void)); -OP * pp_open P((void)); -OP * pp_close P((void)); -OP * pp_pipe_op P((void)); -OP * pp_fileno P((void)); -OP * pp_umask P((void)); -OP * pp_binmode P((void)); -OP * pp_tie P((void)); -OP * pp_untie P((void)); -OP * pp_dbmopen P((void)); -OP * pp_dbmclose P((void)); -OP * pp_sselect P((void)); -OP * pp_select P((void)); -OP * pp_getc P((void)); -OP * pp_read P((void)); -OP * pp_enterwrite P((void)); -OP * pp_leavewrite P((void)); -OP * pp_prtf P((void)); -OP * pp_print P((void)); -OP * pp_sysread P((void)); -OP * pp_syswrite P((void)); -OP * pp_send P((void)); -OP * pp_recv P((void)); -OP * pp_eof P((void)); -OP * pp_tell P((void)); -OP * pp_seek P((void)); -OP * pp_truncate P((void)); -OP * pp_fcntl P((void)); -OP * pp_ioctl P((void)); -OP * pp_flock P((void)); -OP * pp_socket P((void)); -OP * pp_sockpair P((void)); -OP * pp_bind P((void)); -OP * pp_connect P((void)); -OP * pp_listen P((void)); -OP * pp_accept P((void)); -OP * pp_shutdown P((void)); -OP * pp_gsockopt P((void)); -OP * pp_ssockopt P((void)); -OP * pp_getsockname P((void)); -OP * pp_getpeername P((void)); -OP * pp_lstat P((void)); -OP * pp_stat P((void)); -OP * pp_ftrread P((void)); -OP * pp_ftrwrite P((void)); -OP * pp_ftrexec P((void)); -OP * pp_fteread P((void)); -OP * pp_ftewrite P((void)); -OP * pp_fteexec P((void)); -OP * pp_ftis P((void)); -OP * pp_fteowned P((void)); -OP * pp_ftrowned P((void)); -OP * pp_ftzero P((void)); -OP * pp_ftsize P((void)); -OP * pp_ftmtime P((void)); -OP * pp_ftatime P((void)); -OP * pp_ftctime P((void)); -OP * pp_ftsock P((void)); -OP * pp_ftchr P((void)); -OP * pp_ftblk P((void)); -OP * pp_ftfile P((void)); -OP * pp_ftdir P((void)); -OP * pp_ftpipe P((void)); -OP * pp_ftlink P((void)); -OP * pp_ftsuid P((void)); -OP * pp_ftsgid P((void)); -OP * pp_ftsvtx P((void)); -OP * pp_fttty P((void)); -OP * pp_fttext P((void)); -OP * pp_ftbinary P((void)); -OP * pp_chdir P((void)); -OP * pp_chown P((void)); -OP * pp_chroot P((void)); -OP * pp_unlink P((void)); -OP * pp_chmod P((void)); -OP * pp_utime P((void)); -OP * pp_rename P((void)); -OP * pp_link P((void)); -OP * pp_symlink P((void)); -OP * pp_readlink P((void)); -OP * pp_mkdir P((void)); -OP * pp_rmdir P((void)); -OP * pp_open_dir P((void)); -OP * pp_readdir P((void)); -OP * pp_telldir P((void)); -OP * pp_seekdir P((void)); -OP * pp_rewinddir P((void)); -OP * pp_closedir P((void)); -OP * pp_fork P((void)); -OP * pp_wait P((void)); -OP * pp_waitpid P((void)); -OP * pp_system P((void)); -OP * pp_exec P((void)); -OP * pp_kill P((void)); -OP * pp_getppid P((void)); -OP * pp_getpgrp P((void)); -OP * pp_setpgrp P((void)); -OP * pp_getpriority P((void)); -OP * pp_setpriority P((void)); -OP * pp_time P((void)); -OP * pp_tms P((void)); -OP * pp_localtime P((void)); -OP * pp_gmtime P((void)); -OP * pp_alarm P((void)); -OP * pp_sleep P((void)); -OP * pp_shmget P((void)); -OP * pp_shmctl P((void)); -OP * pp_shmread P((void)); -OP * pp_shmwrite P((void)); -OP * pp_msgget P((void)); -OP * pp_msgctl P((void)); -OP * pp_msgsnd P((void)); -OP * pp_msgrcv P((void)); -OP * pp_semget P((void)); -OP * pp_semctl P((void)); -OP * pp_semop P((void)); -OP * pp_require P((void)); -OP * pp_dofile P((void)); -OP * pp_entereval P((void)); -OP * pp_leaveeval P((void)); -OP * pp_evalonce P((void)); -OP * pp_entertry P((void)); -OP * pp_leavetry P((void)); -OP * pp_ghbyname P((void)); -OP * pp_ghbyaddr P((void)); -OP * pp_ghostent P((void)); -OP * pp_gnbyname P((void)); -OP * pp_gnbyaddr P((void)); -OP * pp_gnetent P((void)); -OP * pp_gpbyname P((void)); -OP * pp_gpbynumber P((void)); -OP * pp_gprotoent P((void)); -OP * pp_gsbyname P((void)); -OP * pp_gsbyport P((void)); -OP * pp_gservent P((void)); -OP * pp_shostent P((void)); -OP * pp_snetent P((void)); -OP * pp_sprotoent P((void)); -OP * pp_sservent P((void)); -OP * pp_ehostent P((void)); -OP * pp_enetent P((void)); -OP * pp_eprotoent P((void)); -OP * pp_eservent P((void)); -OP * pp_gpwnam P((void)); -OP * pp_gpwuid P((void)); -OP * pp_gpwent P((void)); -OP * pp_spwent P((void)); -OP * pp_epwent P((void)); -OP * pp_ggrnam P((void)); -OP * pp_ggrgid P((void)); -OP * pp_ggrent P((void)); -OP * pp_sgrent P((void)); -OP * pp_egrent P((void)); -OP * pp_getlogin P((void)); -OP * pp_syscall P((void)); +OP * pp_null _((void)); +OP * pp_stub _((void)); +OP * pp_scalar _((void)); +OP * pp_pushmark _((void)); +OP * pp_wantarray _((void)); +OP * pp_const _((void)); +OP * pp_gvsv _((void)); +OP * pp_gv _((void)); +OP * pp_gelem _((void)); +OP * pp_padsv _((void)); +OP * pp_padav _((void)); +OP * pp_padhv _((void)); +OP * pp_padany _((void)); +OP * pp_pushre _((void)); +OP * pp_rv2gv _((void)); +OP * pp_rv2sv _((void)); +OP * pp_av2arylen _((void)); +OP * pp_rv2cv _((void)); +OP * pp_anoncode _((void)); +OP * pp_prototype _((void)); +OP * pp_refgen _((void)); +OP * pp_srefgen _((void)); +OP * pp_ref _((void)); +OP * pp_bless _((void)); +OP * pp_backtick _((void)); +OP * pp_glob _((void)); +OP * pp_readline _((void)); +OP * pp_rcatline _((void)); +OP * pp_regcmaybe _((void)); +OP * pp_regcomp _((void)); +OP * pp_match _((void)); +OP * pp_subst _((void)); +OP * pp_substcont _((void)); +OP * pp_trans _((void)); +OP * pp_sassign _((void)); +OP * pp_aassign _((void)); +OP * pp_chop _((void)); +OP * pp_schop _((void)); +OP * pp_chomp _((void)); +OP * pp_schomp _((void)); +OP * pp_defined _((void)); +OP * pp_undef _((void)); +OP * pp_study _((void)); +OP * pp_pos _((void)); +OP * pp_preinc _((void)); +OP * pp_i_preinc _((void)); +OP * pp_predec _((void)); +OP * pp_i_predec _((void)); +OP * pp_postinc _((void)); +OP * pp_i_postinc _((void)); +OP * pp_postdec _((void)); +OP * pp_i_postdec _((void)); +OP * pp_pow _((void)); +OP * pp_multiply _((void)); +OP * pp_i_multiply _((void)); +OP * pp_divide _((void)); +OP * pp_i_divide _((void)); +OP * pp_modulo _((void)); +OP * pp_i_modulo _((void)); +OP * pp_repeat _((void)); +OP * pp_add _((void)); +OP * pp_i_add _((void)); +OP * pp_subtract _((void)); +OP * pp_i_subtract _((void)); +OP * pp_concat _((void)); +OP * pp_stringify _((void)); +OP * pp_left_shift _((void)); +OP * pp_right_shift _((void)); +OP * pp_lt _((void)); +OP * pp_i_lt _((void)); +OP * pp_gt _((void)); +OP * pp_i_gt _((void)); +OP * pp_le _((void)); +OP * pp_i_le _((void)); +OP * pp_ge _((void)); +OP * pp_i_ge _((void)); +OP * pp_eq _((void)); +OP * pp_i_eq _((void)); +OP * pp_ne _((void)); +OP * pp_i_ne _((void)); +OP * pp_ncmp _((void)); +OP * pp_i_ncmp _((void)); +OP * pp_slt _((void)); +OP * pp_sgt _((void)); +OP * pp_sle _((void)); +OP * pp_sge _((void)); +OP * pp_seq _((void)); +OP * pp_sne _((void)); +OP * pp_scmp _((void)); +OP * pp_bit_and _((void)); +OP * pp_bit_xor _((void)); +OP * pp_bit_or _((void)); +OP * pp_negate _((void)); +OP * pp_i_negate _((void)); +OP * pp_not _((void)); +OP * pp_complement _((void)); +OP * pp_atan2 _((void)); +OP * pp_sin _((void)); +OP * pp_cos _((void)); +OP * pp_rand _((void)); +OP * pp_srand _((void)); +OP * pp_exp _((void)); +OP * pp_log _((void)); +OP * pp_sqrt _((void)); +OP * pp_int _((void)); +OP * pp_hex _((void)); +OP * pp_oct _((void)); +OP * pp_abs _((void)); +OP * pp_length _((void)); +OP * pp_substr _((void)); +OP * pp_vec _((void)); +OP * pp_index _((void)); +OP * pp_rindex _((void)); +OP * pp_sprintf _((void)); +OP * pp_formline _((void)); +OP * pp_ord _((void)); +OP * pp_chr _((void)); +OP * pp_crypt _((void)); +OP * pp_ucfirst _((void)); +OP * pp_lcfirst _((void)); +OP * pp_uc _((void)); +OP * pp_lc _((void)); +OP * pp_quotemeta _((void)); +OP * pp_rv2av _((void)); +OP * pp_aelemfast _((void)); +OP * pp_aelem _((void)); +OP * pp_aslice _((void)); +OP * pp_each _((void)); +OP * pp_values _((void)); +OP * pp_keys _((void)); +OP * pp_delete _((void)); +OP * pp_exists _((void)); +OP * pp_rv2hv _((void)); +OP * pp_helem _((void)); +OP * pp_hslice _((void)); +OP * pp_unpack _((void)); +OP * pp_pack _((void)); +OP * pp_split _((void)); +OP * pp_join _((void)); +OP * pp_list _((void)); +OP * pp_lslice _((void)); +OP * pp_anonlist _((void)); +OP * pp_anonhash _((void)); +OP * pp_splice _((void)); +OP * pp_push _((void)); +OP * pp_pop _((void)); +OP * pp_shift _((void)); +OP * pp_unshift _((void)); +OP * pp_sort _((void)); +OP * pp_reverse _((void)); +OP * pp_grepstart _((void)); +OP * pp_grepwhile _((void)); +OP * pp_mapstart _((void)); +OP * pp_mapwhile _((void)); +OP * pp_range _((void)); +OP * pp_flip _((void)); +OP * pp_flop _((void)); +OP * pp_and _((void)); +OP * pp_or _((void)); +OP * pp_xor _((void)); +OP * pp_cond_expr _((void)); +OP * pp_andassign _((void)); +OP * pp_orassign _((void)); +OP * pp_method _((void)); +OP * pp_entersub _((void)); +OP * pp_leavesub _((void)); +OP * pp_caller _((void)); +OP * pp_warn _((void)); +OP * pp_die _((void)); +OP * pp_reset _((void)); +OP * pp_lineseq _((void)); +OP * pp_nextstate _((void)); +OP * pp_dbstate _((void)); +OP * pp_unstack _((void)); +OP * pp_enter _((void)); +OP * pp_leave _((void)); +OP * pp_scope _((void)); +OP * pp_enteriter _((void)); +OP * pp_iter _((void)); +OP * pp_enterloop _((void)); +OP * pp_leaveloop _((void)); +OP * pp_return _((void)); +OP * pp_last _((void)); +OP * pp_next _((void)); +OP * pp_redo _((void)); +OP * pp_dump _((void)); +OP * pp_goto _((void)); +OP * pp_exit _((void)); +OP * pp_open _((void)); +OP * pp_close _((void)); +OP * pp_pipe_op _((void)); +OP * pp_fileno _((void)); +OP * pp_umask _((void)); +OP * pp_binmode _((void)); +OP * pp_tie _((void)); +OP * pp_untie _((void)); +OP * pp_tied _((void)); +OP * pp_dbmopen _((void)); +OP * pp_dbmclose _((void)); +OP * pp_sselect _((void)); +OP * pp_select _((void)); +OP * pp_getc _((void)); +OP * pp_read _((void)); +OP * pp_enterwrite _((void)); +OP * pp_leavewrite _((void)); +OP * pp_prtf _((void)); +OP * pp_print _((void)); +OP * pp_sysopen _((void)); +OP * pp_sysread _((void)); +OP * pp_syswrite _((void)); +OP * pp_send _((void)); +OP * pp_recv _((void)); +OP * pp_eof _((void)); +OP * pp_tell _((void)); +OP * pp_seek _((void)); +OP * pp_truncate _((void)); +OP * pp_fcntl _((void)); +OP * pp_ioctl _((void)); +OP * pp_flock _((void)); +OP * pp_socket _((void)); +OP * pp_sockpair _((void)); +OP * pp_bind _((void)); +OP * pp_connect _((void)); +OP * pp_listen _((void)); +OP * pp_accept _((void)); +OP * pp_shutdown _((void)); +OP * pp_gsockopt _((void)); +OP * pp_ssockopt _((void)); +OP * pp_getsockname _((void)); +OP * pp_getpeername _((void)); +OP * pp_lstat _((void)); +OP * pp_stat _((void)); +OP * pp_ftrread _((void)); +OP * pp_ftrwrite _((void)); +OP * pp_ftrexec _((void)); +OP * pp_fteread _((void)); +OP * pp_ftewrite _((void)); +OP * pp_fteexec _((void)); +OP * pp_ftis _((void)); +OP * pp_fteowned _((void)); +OP * pp_ftrowned _((void)); +OP * pp_ftzero _((void)); +OP * pp_ftsize _((void)); +OP * pp_ftmtime _((void)); +OP * pp_ftatime _((void)); +OP * pp_ftctime _((void)); +OP * pp_ftsock _((void)); +OP * pp_ftchr _((void)); +OP * pp_ftblk _((void)); +OP * pp_ftfile _((void)); +OP * pp_ftdir _((void)); +OP * pp_ftpipe _((void)); +OP * pp_ftlink _((void)); +OP * pp_ftsuid _((void)); +OP * pp_ftsgid _((void)); +OP * pp_ftsvtx _((void)); +OP * pp_fttty _((void)); +OP * pp_fttext _((void)); +OP * pp_ftbinary _((void)); +OP * pp_chdir _((void)); +OP * pp_chown _((void)); +OP * pp_chroot _((void)); +OP * pp_unlink _((void)); +OP * pp_chmod _((void)); +OP * pp_utime _((void)); +OP * pp_rename _((void)); +OP * pp_link _((void)); +OP * pp_symlink _((void)); +OP * pp_readlink _((void)); +OP * pp_mkdir _((void)); +OP * pp_rmdir _((void)); +OP * pp_open_dir _((void)); +OP * pp_readdir _((void)); +OP * pp_telldir _((void)); +OP * pp_seekdir _((void)); +OP * pp_rewinddir _((void)); +OP * pp_closedir _((void)); +OP * pp_fork _((void)); +OP * pp_wait _((void)); +OP * pp_waitpid _((void)); +OP * pp_system _((void)); +OP * pp_exec _((void)); +OP * pp_kill _((void)); +OP * pp_getppid _((void)); +OP * pp_getpgrp _((void)); +OP * pp_setpgrp _((void)); +OP * pp_getpriority _((void)); +OP * pp_setpriority _((void)); +OP * pp_time _((void)); +OP * pp_tms _((void)); +OP * pp_localtime _((void)); +OP * pp_gmtime _((void)); +OP * pp_alarm _((void)); +OP * pp_sleep _((void)); +OP * pp_shmget _((void)); +OP * pp_shmctl _((void)); +OP * pp_shmread _((void)); +OP * pp_shmwrite _((void)); +OP * pp_msgget _((void)); +OP * pp_msgctl _((void)); +OP * pp_msgsnd _((void)); +OP * pp_msgrcv _((void)); +OP * pp_semget _((void)); +OP * pp_semctl _((void)); +OP * pp_semop _((void)); +OP * pp_require _((void)); +OP * pp_dofile _((void)); +OP * pp_entereval _((void)); +OP * pp_leaveeval _((void)); +OP * pp_entertry _((void)); +OP * pp_leavetry _((void)); +OP * pp_ghbyname _((void)); +OP * pp_ghbyaddr _((void)); +OP * pp_ghostent _((void)); +OP * pp_gnbyname _((void)); +OP * pp_gnbyaddr _((void)); +OP * pp_gnetent _((void)); +OP * pp_gpbyname _((void)); +OP * pp_gpbynumber _((void)); +OP * pp_gprotoent _((void)); +OP * pp_gsbyname _((void)); +OP * pp_gsbyport _((void)); +OP * pp_gservent _((void)); +OP * pp_shostent _((void)); +OP * pp_snetent _((void)); +OP * pp_sprotoent _((void)); +OP * pp_sservent _((void)); +OP * pp_ehostent _((void)); +OP * pp_enetent _((void)); +OP * pp_eprotoent _((void)); +OP * pp_eservent _((void)); +OP * pp_gpwnam _((void)); +OP * pp_gpwuid _((void)); +OP * pp_gpwent _((void)); +OP * pp_spwent _((void)); +OP * pp_epwent _((void)); +OP * pp_ggrnam _((void)); +OP * pp_ggrgid _((void)); +OP * pp_ggrent _((void)); +OP * pp_sgrent _((void)); +OP * pp_egrent _((void)); +OP * pp_getlogin _((void)); +OP * pp_syscall _((void)); #ifndef DOINIT -extern OP * (*ppaddr[])(); +EXT OP * (*ppaddr[])(); #else -OP * (*ppaddr[])() = { +EXT OP * (*ppaddr[])() = { pp_null, pp_stub, pp_scalar, pp_pushmark, pp_wantarray, pp_const, - pp_interp, pp_gvsv, pp_gv, + pp_gelem, pp_padsv, pp_padav, pp_padhv, pp_padany, pp_pushre, pp_rv2gv, - pp_sv2len, pp_rv2sv, pp_av2arylen, pp_rv2cv, + pp_anoncode, + pp_prototype, pp_refgen, + pp_srefgen, pp_ref, pp_bless, pp_backtick, @@ -1028,33 +1465,52 @@ OP * (*ppaddr[])() = { pp_trans, pp_sassign, pp_aassign, - pp_schop, pp_chop, + pp_schop, + pp_chomp, + pp_schomp, pp_defined, pp_undef, pp_study, + pp_pos, pp_preinc, + pp_i_preinc, pp_predec, + pp_i_predec, pp_postinc, + pp_i_postinc, pp_postdec, + pp_i_postdec, pp_pow, pp_multiply, + pp_i_multiply, pp_divide, + pp_i_divide, pp_modulo, + pp_i_modulo, pp_repeat, pp_add, - pp_intadd, + pp_i_add, pp_subtract, + pp_i_subtract, pp_concat, + pp_stringify, pp_left_shift, pp_right_shift, pp_lt, + pp_i_lt, pp_gt, + pp_i_gt, pp_le, + pp_i_le, pp_ge, + pp_i_ge, pp_eq, + pp_i_eq, pp_ne, + pp_i_ne, pp_ncmp, + pp_i_ncmp, pp_slt, pp_sgt, pp_sle, @@ -1063,9 +1519,10 @@ OP * (*ppaddr[])() = { pp_sne, pp_scmp, pp_bit_and, - pp_xor, + pp_bit_xor, pp_bit_or, pp_negate, + pp_i_negate, pp_not, pp_complement, pp_atan2, @@ -1094,6 +1551,7 @@ OP * (*ppaddr[])() = { pp_lcfirst, pp_uc, pp_lc, + pp_quotemeta, pp_rv2av, pp_aelemfast, pp_aelem, @@ -1102,6 +1560,7 @@ OP * (*ppaddr[])() = { pp_values, pp_keys, pp_delete, + pp_exists, pp_rv2hv, pp_helem, pp_hslice, @@ -1122,17 +1581,20 @@ OP * (*ppaddr[])() = { pp_reverse, pp_grepstart, pp_grepwhile, + pp_mapstart, + pp_mapwhile, pp_range, pp_flip, pp_flop, pp_and, pp_or, + pp_xor, pp_cond_expr, pp_andassign, pp_orassign, pp_method, - pp_entersubr, - pp_leavesubr, + pp_entersub, + pp_leavesub, pp_caller, pp_warn, pp_die, @@ -1155,8 +1617,6 @@ OP * (*ppaddr[])() = { pp_dump, pp_goto, pp_exit, - pp_nswitch, - pp_cswitch, pp_open, pp_close, pp_pipe_op, @@ -1165,6 +1625,7 @@ OP * (*ppaddr[])() = { pp_binmode, pp_tie, pp_untie, + pp_tied, pp_dbmopen, pp_dbmclose, pp_sselect, @@ -1175,6 +1636,7 @@ OP * (*ppaddr[])() = { pp_leavewrite, pp_prtf, pp_print, + pp_sysopen, pp_sysread, pp_syswrite, pp_send, @@ -1276,7 +1738,6 @@ OP * (*ppaddr[])() = { pp_dofile, pp_entereval, pp_leaveeval, - pp_evalonce, pp_entertry, pp_leavetry, pp_ghbyname, @@ -1315,29 +1776,31 @@ OP * (*ppaddr[])() = { #endif #ifndef DOINIT -extern OP * (*check[])(); +EXT OP * (*check[]) _((OP *op)); #else -OP * (*check[])() = { +EXT OP * (*check[]) _((OP *op)) = { ck_null, /* null */ ck_null, /* stub */ ck_fun, /* scalar */ ck_null, /* pushmark */ ck_null, /* wantarray */ ck_svconst, /* const */ - ck_null, /* interp */ ck_null, /* gvsv */ ck_null, /* gv */ + ck_null, /* gelem */ ck_null, /* padsv */ ck_null, /* padav */ ck_null, /* padhv */ ck_null, /* padany */ ck_null, /* pushre */ ck_rvconst, /* rv2gv */ - ck_null, /* sv2len */ ck_rvconst, /* rv2sv */ ck_null, /* av2arylen */ ck_rvconst, /* rv2cv */ - ck_null, /* refgen */ + ck_null, /* anoncode */ + ck_null, /* prototype */ + ck_spair, /* refgen */ + ck_null, /* srefgen */ ck_fun, /* ref */ ck_fun, /* bless */ ck_null, /* backtick */ @@ -1352,33 +1815,52 @@ OP * (*check[])() = { ck_null, /* trans */ ck_null, /* sassign */ ck_null, /* aassign */ + ck_spair, /* chop */ ck_null, /* schop */ - ck_chop, /* chop */ + ck_spair, /* chomp */ + ck_null, /* schomp */ ck_rfun, /* defined */ ck_lfun, /* undef */ ck_fun, /* study */ + ck_lfun, /* pos */ ck_lfun, /* preinc */ + ck_lfun, /* i_preinc */ ck_lfun, /* predec */ + ck_lfun, /* i_predec */ ck_lfun, /* postinc */ + ck_lfun, /* i_postinc */ ck_lfun, /* postdec */ + ck_lfun, /* i_postdec */ ck_null, /* pow */ ck_null, /* multiply */ + ck_null, /* i_multiply */ ck_null, /* divide */ + ck_null, /* i_divide */ ck_null, /* modulo */ + ck_null, /* i_modulo */ ck_repeat, /* repeat */ ck_null, /* add */ - ck_null, /* intadd */ + ck_null, /* i_add */ ck_null, /* subtract */ + ck_null, /* i_subtract */ ck_concat, /* concat */ + ck_fun, /* stringify */ ck_null, /* left_shift */ ck_null, /* right_shift */ ck_null, /* lt */ + ck_null, /* i_lt */ ck_null, /* gt */ + ck_null, /* i_gt */ ck_null, /* le */ + ck_null, /* i_le */ ck_null, /* ge */ + ck_null, /* i_ge */ ck_null, /* eq */ + ck_null, /* i_eq */ ck_null, /* ne */ + ck_null, /* i_ne */ ck_null, /* ncmp */ + ck_null, /* i_ncmp */ ck_null, /* slt */ ck_null, /* sgt */ ck_null, /* sle */ @@ -1387,9 +1869,10 @@ OP * (*check[])() = { ck_null, /* sne */ ck_null, /* scmp */ ck_null, /* bit_and */ - ck_null, /* xor */ + ck_null, /* bit_xor */ ck_null, /* bit_or */ ck_null, /* negate */ + ck_null, /* i_negate */ ck_null, /* not */ ck_null, /* complement */ ck_fun, /* atan2 */ @@ -1418,6 +1901,7 @@ OP * (*check[])() = { ck_fun, /* lcfirst */ ck_fun, /* uc */ ck_fun, /* lc */ + ck_fun, /* quotemeta */ ck_rvconst, /* rv2av */ ck_null, /* aelemfast */ ck_null, /* aelem */ @@ -1425,7 +1909,8 @@ OP * (*check[])() = { ck_fun, /* each */ ck_fun, /* values */ ck_fun, /* keys */ - ck_null, /* delete */ + ck_delete, /* delete */ + ck_delete, /* exists */ ck_rvconst, /* rv2hv */ ck_null, /* helem */ ck_null, /* hslice */ @@ -1435,8 +1920,8 @@ OP * (*check[])() = { ck_fun, /* join */ ck_null, /* list */ ck_null, /* lslice */ - ck_null, /* anonlist */ - ck_null, /* anonhash */ + ck_fun, /* anonlist */ + ck_fun, /* anonhash */ ck_fun, /* splice */ ck_fun, /* push */ ck_shift, /* pop */ @@ -1446,17 +1931,20 @@ OP * (*check[])() = { ck_fun, /* reverse */ ck_grep, /* grepstart */ ck_null, /* grepwhile */ + ck_grep, /* mapstart */ + ck_null, /* mapwhile */ ck_null, /* range */ ck_null, /* flip */ ck_null, /* flop */ ck_null, /* and */ ck_null, /* or */ + ck_null, /* xor */ ck_null, /* cond_expr */ ck_null, /* andassign */ ck_null, /* orassign */ ck_null, /* method */ - ck_subr, /* entersubr */ - ck_null, /* leavesubr */ + ck_subr, /* entersub */ + ck_null, /* leavesub */ ck_fun, /* caller */ ck_fun, /* warn */ ck_fun, /* die */ @@ -1472,15 +1960,13 @@ OP * (*check[])() = { ck_null, /* iter */ ck_null, /* enterloop */ ck_null, /* leaveloop */ - ck_fun, /* return */ + ck_null, /* return */ ck_null, /* last */ ck_null, /* next */ ck_null, /* redo */ ck_null, /* dump */ ck_null, /* goto */ ck_fun, /* exit */ - ck_null, /* nswitch */ - ck_null, /* cswitch */ ck_fun, /* open */ ck_fun, /* close */ ck_fun, /* pipe_op */ @@ -1489,6 +1975,7 @@ OP * (*check[])() = { ck_fun, /* binmode */ ck_fun, /* tie */ ck_fun, /* untie */ + ck_fun, /* tied */ ck_fun, /* dbmopen */ ck_fun, /* dbmclose */ ck_select, /* sselect */ @@ -1499,6 +1986,7 @@ OP * (*check[])() = { ck_null, /* leavewrite */ ck_listiob, /* prtf */ ck_listiob, /* print */ + ck_fun, /* sysopen */ ck_fun, /* sysread */ ck_fun, /* syswrite */ ck_fun, /* send */ @@ -1600,7 +2088,6 @@ OP * (*check[])() = { ck_fun, /* dofile */ ck_eval, /* entereval */ ck_null, /* leaveeval */ - ck_null, /* evalonce */ ck_null, /* entertry */ ck_null, /* leavetry */ ck_fun, /* ghbyname */ @@ -1641,31 +2128,33 @@ OP * (*check[])() = { #ifndef DOINIT EXT U32 opargs[]; #else -U32 opargs[] = { +EXT U32 opargs[] = { 0x00000000, /* null */ 0x00000000, /* stub */ 0x00000104, /* scalar */ 0x00000004, /* pushmark */ 0x00000014, /* wantarray */ 0x00000004, /* const */ - 0x00000000, /* interp */ 0x00000044, /* gvsv */ 0x00000044, /* gv */ - 0x00000000, /* padsv */ - 0x00000000, /* padav */ - 0x00000000, /* padhv */ - 0x00000000, /* padany */ + 0x00001140, /* gelem */ + 0x00000044, /* padsv */ + 0x00000040, /* padav */ + 0x00000040, /* padhv */ + 0x00000040, /* padany */ 0x00000000, /* pushre */ 0x00000044, /* rv2gv */ - 0x0000001c, /* sv2len */ 0x00000044, /* rv2sv */ 0x00000014, /* av2arylen */ 0x00000040, /* rv2cv */ - 0x0000020e, /* refgen */ - 0x0000090c, /* ref */ + 0x00000000, /* anoncode */ + 0x00000104, /* prototype */ + 0x00000201, /* refgen */ + 0x00000106, /* srefgen */ + 0x0000098c, /* ref */ 0x00009104, /* bless */ 0x00000008, /* backtick */ - 0x00000008, /* glob */ + 0x00001108, /* glob */ 0x00000008, /* readline */ 0x00000008, /* rcatline */ 0x00000104, /* regcmaybe */ @@ -1676,33 +2165,52 @@ U32 opargs[] = { 0x00000114, /* trans */ 0x00000004, /* sassign */ 0x00002208, /* aassign */ - 0x00000008, /* schop */ - 0x00000209, /* chop */ - 0x00000914, /* defined */ + 0x0000020d, /* chop */ + 0x0000098c, /* schop */ + 0x0000020d, /* chomp */ + 0x0000098c, /* schomp */ + 0x00000994, /* defined */ 0x00000904, /* undef */ - 0x0000090c, /* study */ - 0x00000104, /* preinc */ - 0x00000104, /* predec */ - 0x0000010c, /* postinc */ - 0x0000010c, /* postdec */ + 0x00000984, /* study */ + 0x0000098c, /* pos */ + 0x00000164, /* preinc */ + 0x00000154, /* i_preinc */ + 0x00000164, /* predec */ + 0x00000154, /* i_predec */ + 0x0000016c, /* postinc */ + 0x0000015c, /* i_postinc */ + 0x0000016c, /* postdec */ + 0x0000015c, /* i_postdec */ 0x0000110e, /* pow */ - 0x0000110e, /* multiply */ - 0x0000110e, /* divide */ - 0x0000111e, /* modulo */ + 0x0000112e, /* multiply */ + 0x0000111e, /* i_multiply */ + 0x0000112e, /* divide */ + 0x0000111e, /* i_divide */ + 0x0000113e, /* modulo */ + 0x0000111e, /* i_modulo */ 0x00001209, /* repeat */ 0x0000112e, /* add */ - 0x0000111e, /* intadd */ - 0x0000110e, /* subtract */ + 0x0000111e, /* i_add */ + 0x0000112e, /* subtract */ + 0x0000111e, /* i_subtract */ 0x0000110e, /* concat */ + 0x0000010e, /* stringify */ 0x0000111e, /* left_shift */ 0x0000111e, /* right_shift */ - 0x00001116, /* lt */ - 0x00001116, /* gt */ - 0x00001116, /* le */ - 0x00001116, /* ge */ - 0x00001116, /* eq */ - 0x00001116, /* ne */ - 0x0000111e, /* ncmp */ + 0x00001136, /* lt */ + 0x00001116, /* i_lt */ + 0x00001136, /* gt */ + 0x00001116, /* i_gt */ + 0x00001136, /* le */ + 0x00001116, /* i_le */ + 0x00001136, /* ge */ + 0x00001116, /* i_ge */ + 0x00001136, /* eq */ + 0x00001116, /* i_eq */ + 0x00001136, /* ne */ + 0x00001116, /* i_ne */ + 0x0000113e, /* ncmp */ + 0x0000111e, /* i_ncmp */ 0x00001116, /* slt */ 0x00001116, /* sgt */ 0x00001116, /* sle */ @@ -1711,37 +2219,39 @@ U32 opargs[] = { 0x00001116, /* sne */ 0x0000111e, /* scmp */ 0x0000110e, /* bit_and */ - 0x0000110e, /* xor */ + 0x0000110e, /* bit_xor */ 0x0000110e, /* bit_or */ - 0x0000010e, /* negate */ + 0x0000012e, /* negate */ + 0x0000011e, /* i_negate */ 0x00000116, /* not */ 0x0000010e, /* complement */ 0x0000110e, /* atan2 */ - 0x0000090e, /* sin */ - 0x0000090e, /* cos */ + 0x0000098e, /* sin */ + 0x0000098e, /* cos */ 0x0000090c, /* rand */ 0x00000904, /* srand */ - 0x0000090e, /* exp */ - 0x0000090e, /* log */ - 0x0000090e, /* sqrt */ - 0x0000090e, /* int */ - 0x0000091c, /* hex */ - 0x0000091c, /* oct */ - 0x0000090e, /* abs */ - 0x0000011c, /* length */ + 0x0000098e, /* exp */ + 0x0000098e, /* log */ + 0x0000098e, /* sqrt */ + 0x0000098e, /* int */ + 0x0000099c, /* hex */ + 0x0000099c, /* oct */ + 0x0000098e, /* abs */ + 0x0000099c, /* length */ 0x0009110c, /* substr */ 0x0001111c, /* vec */ 0x0009111c, /* index */ 0x0009111c, /* rindex */ 0x0000210d, /* sprintf */ 0x00002105, /* formline */ - 0x0000091e, /* ord */ - 0x0000090e, /* chr */ + 0x0000099e, /* ord */ + 0x0000098e, /* chr */ 0x0000110e, /* crypt */ - 0x0000010a, /* ucfirst */ - 0x0000010a, /* lcfirst */ - 0x0000010a, /* uc */ - 0x0000010a, /* lc */ + 0x0000010e, /* ucfirst */ + 0x0000010e, /* lcfirst */ + 0x0000010e, /* uc */ + 0x0000010e, /* lc */ + 0x0000010e, /* quotemeta */ 0x00000048, /* rv2av */ 0x00001304, /* aelemfast */ 0x00001304, /* aelem */ @@ -1749,7 +2259,8 @@ U32 opargs[] = { 0x00000408, /* each */ 0x00000408, /* values */ 0x00000408, /* keys */ - 0x00001404, /* delete */ + 0x00000104, /* delete */ + 0x00000114, /* exists */ 0x00000048, /* rv2hv */ 0x00001404, /* helem */ 0x00002401, /* hslice */ @@ -1759,9 +2270,9 @@ U32 opargs[] = { 0x0000210d, /* join */ 0x00000201, /* list */ 0x00022400, /* lslice */ - 0x00000201, /* anonlist */ - 0x00000201, /* anonhash */ - 0x00291301, /* splice */ + 0x00000205, /* anonlist */ + 0x00000205, /* anonhash */ + 0x00299301, /* splice */ 0x0000231d, /* push */ 0x00000304, /* pop */ 0x00000304, /* shift */ @@ -1770,17 +2281,20 @@ U32 opargs[] = { 0x00000209, /* reverse */ 0x00002541, /* grepstart */ 0x00000048, /* grepwhile */ + 0x00002541, /* mapstart */ + 0x00000048, /* mapwhile */ 0x00001100, /* range */ 0x00001100, /* flip */ 0x00000000, /* flop */ 0x00000000, /* and */ 0x00000000, /* or */ - 0x00000000, /* cond_expr */ + 0x00001106, /* xor */ + 0x00000040, /* cond_expr */ 0x00000004, /* andassign */ 0x00000004, /* orassign */ 0x00000040, /* method */ - 0x00000241, /* entersubr */ - 0x00000000, /* leavesubr */ + 0x00000249, /* entersub */ + 0x00000000, /* leavesub */ 0x00000908, /* caller */ 0x0000021d, /* warn */ 0x0000025d, /* die */ @@ -1795,7 +2309,7 @@ U32 opargs[] = { 0x00000040, /* enteriter */ 0x00000000, /* iter */ 0x00000040, /* enterloop */ - 0x00000004, /* leaveloop */ + 0x00000000, /* leaveloop */ 0x00000241, /* return */ 0x00000044, /* last */ 0x00000044, /* next */ @@ -1803,8 +2317,6 @@ U32 opargs[] = { 0x00000044, /* dump */ 0x00000044, /* goto */ 0x00000944, /* exit */ - 0x00000040, /* nswitch */ - 0x00000040, /* cswitch */ 0x0000961c, /* open */ 0x00000e14, /* close */ 0x00006614, /* pipe_op */ @@ -1813,6 +2325,7 @@ U32 opargs[] = { 0x00000604, /* binmode */ 0x00021755, /* tie */ 0x00000714, /* untie */ + 0x00000704, /* tied */ 0x00011414, /* dbmopen */ 0x00000414, /* dbmclose */ 0x00111108, /* sselect */ @@ -1823,6 +2336,7 @@ U32 opargs[] = { 0x00000000, /* leavewrite */ 0x00002e15, /* prtf */ 0x00002e15, /* print */ + 0x00911604, /* sysopen */ 0x0091761d, /* sysread */ 0x0091161d, /* syswrite */ 0x0091161d, /* send */ @@ -1845,47 +2359,47 @@ U32 opargs[] = { 0x00111614, /* ssockopt */ 0x00000614, /* getsockname */ 0x00000614, /* getpeername */ - 0x00000600, /* lstat */ - 0x00000600, /* stat */ - 0x00000614, /* ftrread */ - 0x00000614, /* ftrwrite */ - 0x00000614, /* ftrexec */ - 0x00000614, /* fteread */ - 0x00000614, /* ftewrite */ - 0x00000614, /* fteexec */ - 0x00000614, /* ftis */ - 0x00000614, /* fteowned */ - 0x00000614, /* ftrowned */ - 0x00000614, /* ftzero */ - 0x0000061c, /* ftsize */ - 0x0000060c, /* ftmtime */ - 0x0000060c, /* ftatime */ - 0x0000060c, /* ftctime */ - 0x00000614, /* ftsock */ - 0x00000614, /* ftchr */ - 0x00000614, /* ftblk */ - 0x00000614, /* ftfile */ - 0x00000614, /* ftdir */ - 0x00000614, /* ftpipe */ - 0x00000614, /* ftlink */ - 0x00000614, /* ftsuid */ - 0x00000614, /* ftsgid */ - 0x00000614, /* ftsvtx */ + 0x00000680, /* lstat */ + 0x00000680, /* stat */ + 0x00000694, /* ftrread */ + 0x00000694, /* ftrwrite */ + 0x00000694, /* ftrexec */ + 0x00000694, /* fteread */ + 0x00000694, /* ftewrite */ + 0x00000694, /* fteexec */ + 0x00000694, /* ftis */ + 0x00000694, /* fteowned */ + 0x00000694, /* ftrowned */ + 0x00000694, /* ftzero */ + 0x0000069c, /* ftsize */ + 0x0000068c, /* ftmtime */ + 0x0000068c, /* ftatime */ + 0x0000068c, /* ftctime */ + 0x00000694, /* ftsock */ + 0x00000694, /* ftchr */ + 0x00000694, /* ftblk */ + 0x00000694, /* ftfile */ + 0x00000694, /* ftdir */ + 0x00000694, /* ftpipe */ + 0x00000694, /* ftlink */ + 0x00000694, /* ftsuid */ + 0x00000694, /* ftsgid */ + 0x00000694, /* ftsvtx */ 0x00000614, /* fttty */ - 0x00000614, /* fttext */ - 0x00000614, /* ftbinary */ + 0x00000694, /* fttext */ + 0x00000694, /* ftbinary */ 0x0000091c, /* chdir */ 0x0000021d, /* chown */ - 0x0000091c, /* chroot */ - 0x0000021d, /* unlink */ + 0x0000099c, /* chroot */ + 0x0000029d, /* unlink */ 0x0000021d, /* chmod */ 0x0000021d, /* utime */ 0x0000111c, /* rename */ 0x0000111c, /* link */ 0x0000111c, /* symlink */ - 0x0000090c, /* readlink */ + 0x0000098c, /* readlink */ 0x0000111c, /* mkdir */ - 0x0000091c, /* rmdir */ + 0x0000099c, /* rmdir */ 0x00001614, /* open_dir */ 0x00000600, /* readdir */ 0x0000060c, /* telldir */ @@ -1900,31 +2414,30 @@ U32 opargs[] = { 0x0000025d, /* kill */ 0x0000001c, /* getppid */ 0x0000091c, /* getpgrp */ - 0x0000111c, /* setpgrp */ + 0x0000991c, /* setpgrp */ 0x0000111c, /* getpriority */ 0x0001111c, /* setpriority */ 0x0000001c, /* time */ 0x00000000, /* tms */ 0x00000908, /* localtime */ 0x00000908, /* gmtime */ - 0x0000091c, /* alarm */ + 0x0000099c, /* alarm */ 0x0000091c, /* sleep */ 0x0001111d, /* shmget */ 0x0001111d, /* shmctl */ 0x0011111d, /* shmread */ - 0x0011111c, /* shmwrite */ + 0x0011111d, /* shmwrite */ 0x0000111d, /* msgget */ 0x0001111d, /* msgctl */ 0x0001111d, /* msgsnd */ 0x0111111d, /* msgrcv */ 0x0001111d, /* semget */ 0x0011111d, /* semctl */ - 0x0001111d, /* semop */ - 0x00000940, /* require */ + 0x0000111d, /* semop */ + 0x000009c0, /* require */ 0x00000140, /* dofile */ 0x00000140, /* entereval */ 0x00000100, /* leaveeval */ - 0x00000140, /* evalonce */ 0x00000000, /* entertry */ 0x00000000, /* leavetry */ 0x00000100, /* ghbyname */ @@ -1950,14 +2463,14 @@ U32 opargs[] = { 0x00000100, /* gpwnam */ 0x00000100, /* gpwuid */ 0x00000000, /* gpwent */ - 0x0000001c, /* spwent */ - 0x0000001c, /* epwent */ + 0x00000014, /* spwent */ + 0x00000014, /* epwent */ 0x00000100, /* ggrnam */ 0x00000100, /* ggrgid */ 0x00000000, /* ggrent */ - 0x0000001c, /* sgrent */ - 0x0000001c, /* egrent */ + 0x00000014, /* sgrent */ + 0x00000014, /* egrent */ 0x0000000c, /* getlogin */ - 0x0000211c, /* syscall */ + 0x0000211d, /* syscall */ }; #endif