Commit | Line | Data |
---|---|---|
37442d52 RGS |
1 | /* -*- buffer-read-only: t -*- |
2 | * | |
d6376244 JH |
3 | * opnames.h |
4 | * | |
78102347 NC |
5 | * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, |
6 | * 2008 by Larry Wall and others | |
d6376244 JH |
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 | * | |
d6376244 | 11 | * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! |
78102347 NC |
12 | * This file is built by regen/opcode.pl from its data. |
13 | * Any changes made here will be lost! | |
d6376244 | 14 | */ |
abdd5c84 GS |
15 | |
16 | typedef enum opcode { | |
e71197e2 JC |
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, | |
5012eebe DM |
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, | |
e839e6ed DM |
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, | |
7896dde7 Z |
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, | |
813e85a0 | 414 | OP_ISA = 397, |
02b85d3d Z |
415 | OP_CMPCHAIN_AND = 398, |
416 | OP_CMPCHAIN_DUP = 399, | |
abdd5c84 GS |
417 | OP_max |
418 | } opcode; | |
419 | ||
02b85d3d | 420 | #define MAXO 400 |
6e64f32b | 421 | #define OP_FREED MAXO |
a85d93d9 | 422 | |
332c2eac JC |
423 | /* the OP_IS_* macros are optimized to a simple range check because |
424 | all the member OPs are contiguous in regen/opcodes table. | |
425 | opcode.pl verifies the range contiguity, or generates an OR-equals | |
426 | expression */ | |
a85d93d9 | 427 | |
e71197e2 JC |
428 | #define OP_IS_SOCKET(op) \ |
429 | ((op) >= OP_SEND && (op) <= OP_GETPEERNAME) | |
a85d93d9 JH |
430 | |
431 | #define OP_IS_FILETEST(op) \ | |
e71197e2 | 432 | ((op) >= OP_FTRREAD && (op) <= OP_FTBINARY) |
a85d93d9 | 433 | |
6ecf81d6 JC |
434 | #define OP_IS_FILETEST_ACCESS(op) \ |
435 | ((op) >= OP_FTRREAD && (op) <= OP_FTEEXEC) | |
436 | ||
2b420b63 JC |
437 | #define OP_IS_NUMCOMPARE(op) \ |
438 | ((op) >= OP_LT && (op) <= OP_I_NCMP) | |
439 | ||
332c2eac JC |
440 | #define OP_IS_DIRHOP(op) \ |
441 | ((op) >= OP_READDIR && (op) <= OP_CLOSEDIR) | |
442 | ||
a9f19d0f FC |
443 | #define OP_IS_INFIX_BIT(op) \ |
444 | ((op) >= OP_BIT_AND && (op) <= OP_SBIT_OR) | |
445 | ||
37442d52 | 446 | /* ex: set ro: */ |