| 1 | /* -*- buffer-read-only: t -*- |
| 2 | * |
| 3 | * opnames.h |
| 4 | * |
| 5 | * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, |
| 6 | * 2008 by Larry Wall and others |
| 7 | * |
| 8 | * You may distribute under the terms of either the GNU General Public |
| 9 | * License or the Artistic License, as specified in the README file. |
| 10 | * |
| 11 | * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! |
| 12 | * This file is built by regen/opcode.pl from its data. |
| 13 | * Any changes made here will be lost! |
| 14 | */ |
| 15 | |
| 16 | typedef enum opcode { |
| 17 | OP_NULL = 0, |
| 18 | OP_STUB = 1, |
| 19 | OP_SCALAR = 2, |
| 20 | OP_PUSHMARK = 3, |
| 21 | OP_WANTARRAY = 4, |
| 22 | OP_CONST = 5, |
| 23 | OP_GVSV = 6, |
| 24 | OP_GV = 7, |
| 25 | OP_GELEM = 8, |
| 26 | OP_PADSV = 9, |
| 27 | OP_PADAV = 10, |
| 28 | OP_PADHV = 11, |
| 29 | OP_PADANY = 12, |
| 30 | OP_RV2GV = 13, |
| 31 | OP_RV2SV = 14, |
| 32 | OP_AV2ARYLEN = 15, |
| 33 | OP_RV2CV = 16, |
| 34 | OP_ANONCODE = 17, |
| 35 | OP_PROTOTYPE = 18, |
| 36 | OP_REFGEN = 19, |
| 37 | OP_SREFGEN = 20, |
| 38 | OP_REF = 21, |
| 39 | OP_BLESS = 22, |
| 40 | OP_BACKTICK = 23, |
| 41 | OP_GLOB = 24, |
| 42 | OP_READLINE = 25, |
| 43 | OP_RCATLINE = 26, |
| 44 | OP_REGCMAYBE = 27, |
| 45 | OP_REGCRESET = 28, |
| 46 | OP_REGCOMP = 29, |
| 47 | OP_MATCH = 30, |
| 48 | OP_QR = 31, |
| 49 | OP_SUBST = 32, |
| 50 | OP_SUBSTCONT = 33, |
| 51 | OP_TRANS = 34, |
| 52 | OP_TRANSR = 35, |
| 53 | OP_SASSIGN = 36, |
| 54 | OP_AASSIGN = 37, |
| 55 | OP_CHOP = 38, |
| 56 | OP_SCHOP = 39, |
| 57 | OP_CHOMP = 40, |
| 58 | OP_SCHOMP = 41, |
| 59 | OP_DEFINED = 42, |
| 60 | OP_UNDEF = 43, |
| 61 | OP_STUDY = 44, |
| 62 | OP_POS = 45, |
| 63 | OP_PREINC = 46, |
| 64 | OP_I_PREINC = 47, |
| 65 | OP_PREDEC = 48, |
| 66 | OP_I_PREDEC = 49, |
| 67 | OP_POSTINC = 50, |
| 68 | OP_I_POSTINC = 51, |
| 69 | OP_POSTDEC = 52, |
| 70 | OP_I_POSTDEC = 53, |
| 71 | OP_POW = 54, |
| 72 | OP_MULTIPLY = 55, |
| 73 | OP_I_MULTIPLY = 56, |
| 74 | OP_DIVIDE = 57, |
| 75 | OP_I_DIVIDE = 58, |
| 76 | OP_MODULO = 59, |
| 77 | OP_I_MODULO = 60, |
| 78 | OP_REPEAT = 61, |
| 79 | OP_ADD = 62, |
| 80 | OP_I_ADD = 63, |
| 81 | OP_SUBTRACT = 64, |
| 82 | OP_I_SUBTRACT = 65, |
| 83 | OP_CONCAT = 66, |
| 84 | OP_MULTICONCAT = 67, |
| 85 | OP_STRINGIFY = 68, |
| 86 | OP_LEFT_SHIFT = 69, |
| 87 | OP_RIGHT_SHIFT = 70, |
| 88 | OP_LT = 71, |
| 89 | OP_I_LT = 72, |
| 90 | OP_GT = 73, |
| 91 | OP_I_GT = 74, |
| 92 | OP_LE = 75, |
| 93 | OP_I_LE = 76, |
| 94 | OP_GE = 77, |
| 95 | OP_I_GE = 78, |
| 96 | OP_EQ = 79, |
| 97 | OP_I_EQ = 80, |
| 98 | OP_NE = 81, |
| 99 | OP_I_NE = 82, |
| 100 | OP_NCMP = 83, |
| 101 | OP_I_NCMP = 84, |
| 102 | OP_SLT = 85, |
| 103 | OP_SGT = 86, |
| 104 | OP_SLE = 87, |
| 105 | OP_SGE = 88, |
| 106 | OP_SEQ = 89, |
| 107 | OP_SNE = 90, |
| 108 | OP_SCMP = 91, |
| 109 | OP_BIT_AND = 92, |
| 110 | OP_BIT_XOR = 93, |
| 111 | OP_BIT_OR = 94, |
| 112 | OP_NBIT_AND = 95, |
| 113 | OP_NBIT_XOR = 96, |
| 114 | OP_NBIT_OR = 97, |
| 115 | OP_SBIT_AND = 98, |
| 116 | OP_SBIT_XOR = 99, |
| 117 | OP_SBIT_OR = 100, |
| 118 | OP_NEGATE = 101, |
| 119 | OP_I_NEGATE = 102, |
| 120 | OP_NOT = 103, |
| 121 | OP_COMPLEMENT = 104, |
| 122 | OP_NCOMPLEMENT = 105, |
| 123 | OP_SCOMPLEMENT = 106, |
| 124 | OP_SMARTMATCH = 107, |
| 125 | OP_ATAN2 = 108, |
| 126 | OP_SIN = 109, |
| 127 | OP_COS = 110, |
| 128 | OP_RAND = 111, |
| 129 | OP_SRAND = 112, |
| 130 | OP_EXP = 113, |
| 131 | OP_LOG = 114, |
| 132 | OP_SQRT = 115, |
| 133 | OP_INT = 116, |
| 134 | OP_HEX = 117, |
| 135 | OP_OCT = 118, |
| 136 | OP_ABS = 119, |
| 137 | OP_LENGTH = 120, |
| 138 | OP_SUBSTR = 121, |
| 139 | OP_VEC = 122, |
| 140 | OP_INDEX = 123, |
| 141 | OP_RINDEX = 124, |
| 142 | OP_SPRINTF = 125, |
| 143 | OP_FORMLINE = 126, |
| 144 | OP_ORD = 127, |
| 145 | OP_CHR = 128, |
| 146 | OP_CRYPT = 129, |
| 147 | OP_UCFIRST = 130, |
| 148 | OP_LCFIRST = 131, |
| 149 | OP_UC = 132, |
| 150 | OP_LC = 133, |
| 151 | OP_QUOTEMETA = 134, |
| 152 | OP_RV2AV = 135, |
| 153 | OP_AELEMFAST = 136, |
| 154 | OP_AELEMFAST_LEX = 137, |
| 155 | OP_AELEM = 138, |
| 156 | OP_ASLICE = 139, |
| 157 | OP_KVASLICE = 140, |
| 158 | OP_AEACH = 141, |
| 159 | OP_AVALUES = 142, |
| 160 | OP_AKEYS = 143, |
| 161 | OP_EACH = 144, |
| 162 | OP_VALUES = 145, |
| 163 | OP_KEYS = 146, |
| 164 | OP_DELETE = 147, |
| 165 | OP_EXISTS = 148, |
| 166 | OP_RV2HV = 149, |
| 167 | OP_HELEM = 150, |
| 168 | OP_HSLICE = 151, |
| 169 | OP_KVHSLICE = 152, |
| 170 | OP_MULTIDEREF = 153, |
| 171 | OP_UNPACK = 154, |
| 172 | OP_PACK = 155, |
| 173 | OP_SPLIT = 156, |
| 174 | OP_JOIN = 157, |
| 175 | OP_LIST = 158, |
| 176 | OP_LSLICE = 159, |
| 177 | OP_ANONLIST = 160, |
| 178 | OP_ANONHASH = 161, |
| 179 | OP_SPLICE = 162, |
| 180 | OP_PUSH = 163, |
| 181 | OP_POP = 164, |
| 182 | OP_SHIFT = 165, |
| 183 | OP_UNSHIFT = 166, |
| 184 | OP_SORT = 167, |
| 185 | OP_REVERSE = 168, |
| 186 | OP_GREPSTART = 169, |
| 187 | OP_GREPWHILE = 170, |
| 188 | OP_MAPSTART = 171, |
| 189 | OP_MAPWHILE = 172, |
| 190 | OP_RANGE = 173, |
| 191 | OP_FLIP = 174, |
| 192 | OP_FLOP = 175, |
| 193 | OP_AND = 176, |
| 194 | OP_OR = 177, |
| 195 | OP_XOR = 178, |
| 196 | OP_DOR = 179, |
| 197 | OP_COND_EXPR = 180, |
| 198 | OP_ANDASSIGN = 181, |
| 199 | OP_ORASSIGN = 182, |
| 200 | OP_DORASSIGN = 183, |
| 201 | OP_ENTERSUB = 184, |
| 202 | OP_LEAVESUB = 185, |
| 203 | OP_LEAVESUBLV = 186, |
| 204 | OP_ARGCHECK = 187, |
| 205 | OP_ARGELEM = 188, |
| 206 | OP_ARGDEFELEM = 189, |
| 207 | OP_CALLER = 190, |
| 208 | OP_WARN = 191, |
| 209 | OP_DIE = 192, |
| 210 | OP_RESET = 193, |
| 211 | OP_LINESEQ = 194, |
| 212 | OP_NEXTSTATE = 195, |
| 213 | OP_DBSTATE = 196, |
| 214 | OP_UNSTACK = 197, |
| 215 | OP_ENTER = 198, |
| 216 | OP_LEAVE = 199, |
| 217 | OP_SCOPE = 200, |
| 218 | OP_ENTERITER = 201, |
| 219 | OP_ITER = 202, |
| 220 | OP_ENTERLOOP = 203, |
| 221 | OP_LEAVELOOP = 204, |
| 222 | OP_RETURN = 205, |
| 223 | OP_LAST = 206, |
| 224 | OP_NEXT = 207, |
| 225 | OP_REDO = 208, |
| 226 | OP_DUMP = 209, |
| 227 | OP_GOTO = 210, |
| 228 | OP_EXIT = 211, |
| 229 | OP_METHOD = 212, |
| 230 | OP_METHOD_NAMED = 213, |
| 231 | OP_METHOD_SUPER = 214, |
| 232 | OP_METHOD_REDIR = 215, |
| 233 | OP_METHOD_REDIR_SUPER = 216, |
| 234 | OP_ENTERGIVEN = 217, |
| 235 | OP_LEAVEGIVEN = 218, |
| 236 | OP_ENTERWHEN = 219, |
| 237 | OP_LEAVEWHEN = 220, |
| 238 | OP_BREAK = 221, |
| 239 | OP_CONTINUE = 222, |
| 240 | OP_OPEN = 223, |
| 241 | OP_CLOSE = 224, |
| 242 | OP_PIPE_OP = 225, |
| 243 | OP_FILENO = 226, |
| 244 | OP_UMASK = 227, |
| 245 | OP_BINMODE = 228, |
| 246 | OP_TIE = 229, |
| 247 | OP_UNTIE = 230, |
| 248 | OP_TIED = 231, |
| 249 | OP_DBMOPEN = 232, |
| 250 | OP_DBMCLOSE = 233, |
| 251 | OP_SSELECT = 234, |
| 252 | OP_SELECT = 235, |
| 253 | OP_GETC = 236, |
| 254 | OP_READ = 237, |
| 255 | OP_ENTERWRITE = 238, |
| 256 | OP_LEAVEWRITE = 239, |
| 257 | OP_PRTF = 240, |
| 258 | OP_PRINT = 241, |
| 259 | OP_SAY = 242, |
| 260 | OP_SYSOPEN = 243, |
| 261 | OP_SYSSEEK = 244, |
| 262 | OP_SYSREAD = 245, |
| 263 | OP_SYSWRITE = 246, |
| 264 | OP_EOF = 247, |
| 265 | OP_TELL = 248, |
| 266 | OP_SEEK = 249, |
| 267 | OP_TRUNCATE = 250, |
| 268 | OP_FCNTL = 251, |
| 269 | OP_IOCTL = 252, |
| 270 | OP_FLOCK = 253, |
| 271 | OP_SEND = 254, |
| 272 | OP_RECV = 255, |
| 273 | OP_SOCKET = 256, |
| 274 | OP_SOCKPAIR = 257, |
| 275 | OP_BIND = 258, |
| 276 | OP_CONNECT = 259, |
| 277 | OP_LISTEN = 260, |
| 278 | OP_ACCEPT = 261, |
| 279 | OP_SHUTDOWN = 262, |
| 280 | OP_GSOCKOPT = 263, |
| 281 | OP_SSOCKOPT = 264, |
| 282 | OP_GETSOCKNAME = 265, |
| 283 | OP_GETPEERNAME = 266, |
| 284 | OP_LSTAT = 267, |
| 285 | OP_STAT = 268, |
| 286 | OP_FTRREAD = 269, |
| 287 | OP_FTRWRITE = 270, |
| 288 | OP_FTREXEC = 271, |
| 289 | OP_FTEREAD = 272, |
| 290 | OP_FTEWRITE = 273, |
| 291 | OP_FTEEXEC = 274, |
| 292 | OP_FTIS = 275, |
| 293 | OP_FTSIZE = 276, |
| 294 | OP_FTMTIME = 277, |
| 295 | OP_FTATIME = 278, |
| 296 | OP_FTCTIME = 279, |
| 297 | OP_FTROWNED = 280, |
| 298 | OP_FTEOWNED = 281, |
| 299 | OP_FTZERO = 282, |
| 300 | OP_FTSOCK = 283, |
| 301 | OP_FTCHR = 284, |
| 302 | OP_FTBLK = 285, |
| 303 | OP_FTFILE = 286, |
| 304 | OP_FTDIR = 287, |
| 305 | OP_FTPIPE = 288, |
| 306 | OP_FTSUID = 289, |
| 307 | OP_FTSGID = 290, |
| 308 | OP_FTSVTX = 291, |
| 309 | OP_FTLINK = 292, |
| 310 | OP_FTTTY = 293, |
| 311 | OP_FTTEXT = 294, |
| 312 | OP_FTBINARY = 295, |
| 313 | OP_CHDIR = 296, |
| 314 | OP_CHOWN = 297, |
| 315 | OP_CHROOT = 298, |
| 316 | OP_UNLINK = 299, |
| 317 | OP_CHMOD = 300, |
| 318 | OP_UTIME = 301, |
| 319 | OP_RENAME = 302, |
| 320 | OP_LINK = 303, |
| 321 | OP_SYMLINK = 304, |
| 322 | OP_READLINK = 305, |
| 323 | OP_MKDIR = 306, |
| 324 | OP_RMDIR = 307, |
| 325 | OP_OPEN_DIR = 308, |
| 326 | OP_READDIR = 309, |
| 327 | OP_TELLDIR = 310, |
| 328 | OP_SEEKDIR = 311, |
| 329 | OP_REWINDDIR = 312, |
| 330 | OP_CLOSEDIR = 313, |
| 331 | OP_FORK = 314, |
| 332 | OP_WAIT = 315, |
| 333 | OP_WAITPID = 316, |
| 334 | OP_SYSTEM = 317, |
| 335 | OP_EXEC = 318, |
| 336 | OP_KILL = 319, |
| 337 | OP_GETPPID = 320, |
| 338 | OP_GETPGRP = 321, |
| 339 | OP_SETPGRP = 322, |
| 340 | OP_GETPRIORITY = 323, |
| 341 | OP_SETPRIORITY = 324, |
| 342 | OP_TIME = 325, |
| 343 | OP_TMS = 326, |
| 344 | OP_LOCALTIME = 327, |
| 345 | OP_GMTIME = 328, |
| 346 | OP_ALARM = 329, |
| 347 | OP_SLEEP = 330, |
| 348 | OP_SHMGET = 331, |
| 349 | OP_SHMCTL = 332, |
| 350 | OP_SHMREAD = 333, |
| 351 | OP_SHMWRITE = 334, |
| 352 | OP_MSGGET = 335, |
| 353 | OP_MSGCTL = 336, |
| 354 | OP_MSGSND = 337, |
| 355 | OP_MSGRCV = 338, |
| 356 | OP_SEMOP = 339, |
| 357 | OP_SEMGET = 340, |
| 358 | OP_SEMCTL = 341, |
| 359 | OP_REQUIRE = 342, |
| 360 | OP_DOFILE = 343, |
| 361 | OP_HINTSEVAL = 344, |
| 362 | OP_ENTEREVAL = 345, |
| 363 | OP_LEAVEEVAL = 346, |
| 364 | OP_ENTERTRY = 347, |
| 365 | OP_LEAVETRY = 348, |
| 366 | OP_GHBYNAME = 349, |
| 367 | OP_GHBYADDR = 350, |
| 368 | OP_GHOSTENT = 351, |
| 369 | OP_GNBYNAME = 352, |
| 370 | OP_GNBYADDR = 353, |
| 371 | OP_GNETENT = 354, |
| 372 | OP_GPBYNAME = 355, |
| 373 | OP_GPBYNUMBER = 356, |
| 374 | OP_GPROTOENT = 357, |
| 375 | OP_GSBYNAME = 358, |
| 376 | OP_GSBYPORT = 359, |
| 377 | OP_GSERVENT = 360, |
| 378 | OP_SHOSTENT = 361, |
| 379 | OP_SNETENT = 362, |
| 380 | OP_SPROTOENT = 363, |
| 381 | OP_SSERVENT = 364, |
| 382 | OP_EHOSTENT = 365, |
| 383 | OP_ENETENT = 366, |
| 384 | OP_EPROTOENT = 367, |
| 385 | OP_ESERVENT = 368, |
| 386 | OP_GPWNAM = 369, |
| 387 | OP_GPWUID = 370, |
| 388 | OP_GPWENT = 371, |
| 389 | OP_SPWENT = 372, |
| 390 | OP_EPWENT = 373, |
| 391 | OP_GGRNAM = 374, |
| 392 | OP_GGRGID = 375, |
| 393 | OP_GGRENT = 376, |
| 394 | OP_SGRENT = 377, |
| 395 | OP_EGRENT = 378, |
| 396 | OP_GETLOGIN = 379, |
| 397 | OP_SYSCALL = 380, |
| 398 | OP_LOCK = 381, |
| 399 | OP_ONCE = 382, |
| 400 | OP_CUSTOM = 383, |
| 401 | OP_COREARGS = 384, |
| 402 | OP_AVHVSWITCH = 385, |
| 403 | OP_RUNCV = 386, |
| 404 | OP_FC = 387, |
| 405 | OP_PADCV = 388, |
| 406 | OP_INTROCV = 389, |
| 407 | OP_CLONECV = 390, |
| 408 | OP_PADRANGE = 391, |
| 409 | OP_REFASSIGN = 392, |
| 410 | OP_LVREF = 393, |
| 411 | OP_LVREFSLICE = 394, |
| 412 | OP_LVAVREF = 395, |
| 413 | OP_ANONCONST = 396, |
| 414 | OP_max |
| 415 | } opcode; |
| 416 | |
| 417 | #define MAXO 397 |
| 418 | #define OP_FREED MAXO |
| 419 | |
| 420 | /* the OP_IS_* macros are optimized to a simple range check because |
| 421 | all the member OPs are contiguous in regen/opcodes table. |
| 422 | opcode.pl verifies the range contiguity, or generates an OR-equals |
| 423 | expression */ |
| 424 | |
| 425 | #define OP_IS_SOCKET(op) \ |
| 426 | ((op) >= OP_SEND && (op) <= OP_GETPEERNAME) |
| 427 | |
| 428 | #define OP_IS_FILETEST(op) \ |
| 429 | ((op) >= OP_FTRREAD && (op) <= OP_FTBINARY) |
| 430 | |
| 431 | #define OP_IS_FILETEST_ACCESS(op) \ |
| 432 | ((op) >= OP_FTRREAD && (op) <= OP_FTEEXEC) |
| 433 | |
| 434 | #define OP_IS_NUMCOMPARE(op) \ |
| 435 | ((op) >= OP_LT && (op) <= OP_I_NCMP) |
| 436 | |
| 437 | #define OP_IS_DIRHOP(op) \ |
| 438 | ((op) >= OP_READDIR && (op) <= OP_CLOSEDIR) |
| 439 | |
| 440 | #define OP_IS_INFIX_BIT(op) \ |
| 441 | ((op) >= OP_BIT_AND && (op) <= OP_SBIT_OR) |
| 442 | |
| 443 | /* ex: set ro: */ |