Mercurial > repo
comparison 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 |
comparison
equal
deleted
inserted
replaced
8044:711c038a7dce | 8045:a16537d2fe07 |
---|---|
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_PUSHRE = 13, | |
31 OP_RV2GV = 14, | |
32 OP_RV2SV = 15, | |
33 OP_AV2ARYLEN = 16, | |
34 OP_RV2CV = 17, | |
35 OP_ANONCODE = 18, | |
36 OP_PROTOTYPE = 19, | |
37 OP_REFGEN = 20, | |
38 OP_SREFGEN = 21, | |
39 OP_REF = 22, | |
40 OP_BLESS = 23, | |
41 OP_BACKTICK = 24, | |
42 OP_GLOB = 25, | |
43 OP_READLINE = 26, | |
44 OP_RCATLINE = 27, | |
45 OP_REGCMAYBE = 28, | |
46 OP_REGCRESET = 29, | |
47 OP_REGCOMP = 30, | |
48 OP_MATCH = 31, | |
49 OP_QR = 32, | |
50 OP_SUBST = 33, | |
51 OP_SUBSTCONT = 34, | |
52 OP_TRANS = 35, | |
53 OP_TRANSR = 36, | |
54 OP_SASSIGN = 37, | |
55 OP_AASSIGN = 38, | |
56 OP_CHOP = 39, | |
57 OP_SCHOP = 40, | |
58 OP_CHOMP = 41, | |
59 OP_SCHOMP = 42, | |
60 OP_DEFINED = 43, | |
61 OP_UNDEF = 44, | |
62 OP_STUDY = 45, | |
63 OP_POS = 46, | |
64 OP_PREINC = 47, | |
65 OP_I_PREINC = 48, | |
66 OP_PREDEC = 49, | |
67 OP_I_PREDEC = 50, | |
68 OP_POSTINC = 51, | |
69 OP_I_POSTINC = 52, | |
70 OP_POSTDEC = 53, | |
71 OP_I_POSTDEC = 54, | |
72 OP_POW = 55, | |
73 OP_MULTIPLY = 56, | |
74 OP_I_MULTIPLY = 57, | |
75 OP_DIVIDE = 58, | |
76 OP_I_DIVIDE = 59, | |
77 OP_MODULO = 60, | |
78 OP_I_MODULO = 61, | |
79 OP_REPEAT = 62, | |
80 OP_ADD = 63, | |
81 OP_I_ADD = 64, | |
82 OP_SUBTRACT = 65, | |
83 OP_I_SUBTRACT = 66, | |
84 OP_CONCAT = 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_AKEYS = 142, | |
160 OP_AVALUES = 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_METHOD = 184, | |
202 OP_ENTERSUB = 185, | |
203 OP_LEAVESUB = 186, | |
204 OP_LEAVESUBLV = 187, | |
205 OP_CALLER = 188, | |
206 OP_WARN = 189, | |
207 OP_DIE = 190, | |
208 OP_RESET = 191, | |
209 OP_LINESEQ = 192, | |
210 OP_NEXTSTATE = 193, | |
211 OP_DBSTATE = 194, | |
212 OP_UNSTACK = 195, | |
213 OP_ENTER = 196, | |
214 OP_LEAVE = 197, | |
215 OP_SCOPE = 198, | |
216 OP_ENTERITER = 199, | |
217 OP_ITER = 200, | |
218 OP_ENTERLOOP = 201, | |
219 OP_LEAVELOOP = 202, | |
220 OP_RETURN = 203, | |
221 OP_LAST = 204, | |
222 OP_NEXT = 205, | |
223 OP_REDO = 206, | |
224 OP_DUMP = 207, | |
225 OP_GOTO = 208, | |
226 OP_EXIT = 209, | |
227 OP_METHOD_NAMED = 210, | |
228 OP_METHOD_SUPER = 211, | |
229 OP_METHOD_REDIR = 212, | |
230 OP_METHOD_REDIR_SUPER = 213, | |
231 OP_ENTERGIVEN = 214, | |
232 OP_LEAVEGIVEN = 215, | |
233 OP_ENTERWHEN = 216, | |
234 OP_LEAVEWHEN = 217, | |
235 OP_BREAK = 218, | |
236 OP_CONTINUE = 219, | |
237 OP_OPEN = 220, | |
238 OP_CLOSE = 221, | |
239 OP_PIPE_OP = 222, | |
240 OP_FILENO = 223, | |
241 OP_UMASK = 224, | |
242 OP_BINMODE = 225, | |
243 OP_TIE = 226, | |
244 OP_UNTIE = 227, | |
245 OP_TIED = 228, | |
246 OP_DBMOPEN = 229, | |
247 OP_DBMCLOSE = 230, | |
248 OP_SSELECT = 231, | |
249 OP_SELECT = 232, | |
250 OP_GETC = 233, | |
251 OP_READ = 234, | |
252 OP_ENTERWRITE = 235, | |
253 OP_LEAVEWRITE = 236, | |
254 OP_PRTF = 237, | |
255 OP_PRINT = 238, | |
256 OP_SAY = 239, | |
257 OP_SYSOPEN = 240, | |
258 OP_SYSSEEK = 241, | |
259 OP_SYSREAD = 242, | |
260 OP_SYSWRITE = 243, | |
261 OP_EOF = 244, | |
262 OP_TELL = 245, | |
263 OP_SEEK = 246, | |
264 OP_TRUNCATE = 247, | |
265 OP_FCNTL = 248, | |
266 OP_IOCTL = 249, | |
267 OP_FLOCK = 250, | |
268 OP_SEND = 251, | |
269 OP_RECV = 252, | |
270 OP_SOCKET = 253, | |
271 OP_SOCKPAIR = 254, | |
272 OP_BIND = 255, | |
273 OP_CONNECT = 256, | |
274 OP_LISTEN = 257, | |
275 OP_ACCEPT = 258, | |
276 OP_SHUTDOWN = 259, | |
277 OP_GSOCKOPT = 260, | |
278 OP_SSOCKOPT = 261, | |
279 OP_GETSOCKNAME = 262, | |
280 OP_GETPEERNAME = 263, | |
281 OP_LSTAT = 264, | |
282 OP_STAT = 265, | |
283 OP_FTRREAD = 266, | |
284 OP_FTRWRITE = 267, | |
285 OP_FTREXEC = 268, | |
286 OP_FTEREAD = 269, | |
287 OP_FTEWRITE = 270, | |
288 OP_FTEEXEC = 271, | |
289 OP_FTIS = 272, | |
290 OP_FTSIZE = 273, | |
291 OP_FTMTIME = 274, | |
292 OP_FTATIME = 275, | |
293 OP_FTCTIME = 276, | |
294 OP_FTROWNED = 277, | |
295 OP_FTEOWNED = 278, | |
296 OP_FTZERO = 279, | |
297 OP_FTSOCK = 280, | |
298 OP_FTCHR = 281, | |
299 OP_FTBLK = 282, | |
300 OP_FTFILE = 283, | |
301 OP_FTDIR = 284, | |
302 OP_FTPIPE = 285, | |
303 OP_FTSUID = 286, | |
304 OP_FTSGID = 287, | |
305 OP_FTSVTX = 288, | |
306 OP_FTLINK = 289, | |
307 OP_FTTTY = 290, | |
308 OP_FTTEXT = 291, | |
309 OP_FTBINARY = 292, | |
310 OP_CHDIR = 293, | |
311 OP_CHOWN = 294, | |
312 OP_CHROOT = 295, | |
313 OP_UNLINK = 296, | |
314 OP_CHMOD = 297, | |
315 OP_UTIME = 298, | |
316 OP_RENAME = 299, | |
317 OP_LINK = 300, | |
318 OP_SYMLINK = 301, | |
319 OP_READLINK = 302, | |
320 OP_MKDIR = 303, | |
321 OP_RMDIR = 304, | |
322 OP_OPEN_DIR = 305, | |
323 OP_READDIR = 306, | |
324 OP_TELLDIR = 307, | |
325 OP_SEEKDIR = 308, | |
326 OP_REWINDDIR = 309, | |
327 OP_CLOSEDIR = 310, | |
328 OP_FORK = 311, | |
329 OP_WAIT = 312, | |
330 OP_WAITPID = 313, | |
331 OP_SYSTEM = 314, | |
332 OP_EXEC = 315, | |
333 OP_KILL = 316, | |
334 OP_GETPPID = 317, | |
335 OP_GETPGRP = 318, | |
336 OP_SETPGRP = 319, | |
337 OP_GETPRIORITY = 320, | |
338 OP_SETPRIORITY = 321, | |
339 OP_TIME = 322, | |
340 OP_TMS = 323, | |
341 OP_LOCALTIME = 324, | |
342 OP_GMTIME = 325, | |
343 OP_ALARM = 326, | |
344 OP_SLEEP = 327, | |
345 OP_SHMGET = 328, | |
346 OP_SHMCTL = 329, | |
347 OP_SHMREAD = 330, | |
348 OP_SHMWRITE = 331, | |
349 OP_MSGGET = 332, | |
350 OP_MSGCTL = 333, | |
351 OP_MSGSND = 334, | |
352 OP_MSGRCV = 335, | |
353 OP_SEMOP = 336, | |
354 OP_SEMGET = 337, | |
355 OP_SEMCTL = 338, | |
356 OP_REQUIRE = 339, | |
357 OP_DOFILE = 340, | |
358 OP_HINTSEVAL = 341, | |
359 OP_ENTEREVAL = 342, | |
360 OP_LEAVEEVAL = 343, | |
361 OP_ENTERTRY = 344, | |
362 OP_LEAVETRY = 345, | |
363 OP_GHBYNAME = 346, | |
364 OP_GHBYADDR = 347, | |
365 OP_GHOSTENT = 348, | |
366 OP_GNBYNAME = 349, | |
367 OP_GNBYADDR = 350, | |
368 OP_GNETENT = 351, | |
369 OP_GPBYNAME = 352, | |
370 OP_GPBYNUMBER = 353, | |
371 OP_GPROTOENT = 354, | |
372 OP_GSBYNAME = 355, | |
373 OP_GSBYPORT = 356, | |
374 OP_GSERVENT = 357, | |
375 OP_SHOSTENT = 358, | |
376 OP_SNETENT = 359, | |
377 OP_SPROTOENT = 360, | |
378 OP_SSERVENT = 361, | |
379 OP_EHOSTENT = 362, | |
380 OP_ENETENT = 363, | |
381 OP_EPROTOENT = 364, | |
382 OP_ESERVENT = 365, | |
383 OP_GPWNAM = 366, | |
384 OP_GPWUID = 367, | |
385 OP_GPWENT = 368, | |
386 OP_SPWENT = 369, | |
387 OP_EPWENT = 370, | |
388 OP_GGRNAM = 371, | |
389 OP_GGRGID = 372, | |
390 OP_GGRENT = 373, | |
391 OP_SGRENT = 374, | |
392 OP_EGRENT = 375, | |
393 OP_GETLOGIN = 376, | |
394 OP_SYSCALL = 377, | |
395 OP_LOCK = 378, | |
396 OP_ONCE = 379, | |
397 OP_CUSTOM = 380, | |
398 OP_REACH = 381, | |
399 OP_RKEYS = 382, | |
400 OP_RVALUES = 383, | |
401 OP_COREARGS = 384, | |
402 OP_RUNCV = 385, | |
403 OP_FC = 386, | |
404 OP_PADCV = 387, | |
405 OP_INTROCV = 388, | |
406 OP_CLONECV = 389, | |
407 OP_PADRANGE = 390, | |
408 OP_REFASSIGN = 391, | |
409 OP_LVREF = 392, | |
410 OP_LVREFSLICE = 393, | |
411 OP_LVAVREF = 394, | |
412 OP_ANONCONST = 395, | |
413 OP_max | |
414 } opcode; | |
415 | |
416 #define MAXO 396 | |
417 #define OP_FREED MAXO | |
418 | |
419 /* the OP_IS_* macros are optimized to a simple range check because | |
420 all the member OPs are contiguous in regen/opcodes table. | |
421 opcode.pl verifies the range contiguity, or generates an OR-equals | |
422 expression */ | |
423 | |
424 #define OP_IS_SOCKET(op) \ | |
425 ((op) >= OP_SEND && (op) <= OP_GETPEERNAME) | |
426 | |
427 #define OP_IS_FILETEST(op) \ | |
428 ((op) >= OP_FTRREAD && (op) <= OP_FTBINARY) | |
429 | |
430 #define OP_IS_FILETEST_ACCESS(op) \ | |
431 ((op) >= OP_FTRREAD && (op) <= OP_FTEEXEC) | |
432 | |
433 #define OP_IS_NUMCOMPARE(op) \ | |
434 ((op) >= OP_LT && (op) <= OP_I_NCMP) | |
435 | |
436 #define OP_IS_DIRHOP(op) \ | |
437 ((op) >= OP_READDIR && (op) <= OP_CLOSEDIR) | |
438 | |
439 #define OP_IS_INFIX_BIT(op) \ | |
440 ((op) >= OP_BIT_AND && (op) <= OP_SBIT_OR) | |
441 | |
442 /* ex: set ro: */ |