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