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