This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl 5.0 alpha 5
[perl5.git] / opcode.h
1 typedef enum {
2         OP_NULL,        /* 0 */
3         OP_STUB,        /* 1 */
4         OP_SCALAR,      /* 2 */
5         OP_PUSHMARK,    /* 3 */
6         OP_WANTARRAY,   /* 4 */
7         OP_CONST,       /* 5 */
8         OP_INTERP,      /* 6 */
9         OP_GVSV,        /* 7 */
10         OP_GV,          /* 8 */
11         OP_PADSV,       /* 9 */
12         OP_PADAV,       /* 10 */
13         OP_PADHV,       /* 11 */
14         OP_PADANY,      /* 12 */
15         OP_PUSHRE,      /* 13 */
16         OP_RV2GV,       /* 14 */
17         OP_SV2LEN,      /* 15 */
18         OP_RV2SV,       /* 16 */
19         OP_AV2ARYLEN,   /* 17 */
20         OP_RV2CV,       /* 18 */
21         OP_REFGEN,      /* 19 */
22         OP_REF,         /* 20 */
23         OP_BLESS,       /* 21 */
24         OP_BACKTICK,    /* 22 */
25         OP_GLOB,        /* 23 */
26         OP_READLINE,    /* 24 */
27         OP_RCATLINE,    /* 25 */
28         OP_REGCMAYBE,   /* 26 */
29         OP_REGCOMP,     /* 27 */
30         OP_MATCH,       /* 28 */
31         OP_SUBST,       /* 29 */
32         OP_SUBSTCONT,   /* 30 */
33         OP_TRANS,       /* 31 */
34         OP_SASSIGN,     /* 32 */
35         OP_AASSIGN,     /* 33 */
36         OP_SCHOP,       /* 34 */
37         OP_CHOP,        /* 35 */
38         OP_DEFINED,     /* 36 */
39         OP_UNDEF,       /* 37 */
40         OP_STUDY,       /* 38 */
41         OP_PREINC,      /* 39 */
42         OP_PREDEC,      /* 40 */
43         OP_POSTINC,     /* 41 */
44         OP_POSTDEC,     /* 42 */
45         OP_POW,         /* 43 */
46         OP_MULTIPLY,    /* 44 */
47         OP_DIVIDE,      /* 45 */
48         OP_MODULO,      /* 46 */
49         OP_REPEAT,      /* 47 */
50         OP_ADD,         /* 48 */
51         OP_INTADD,      /* 49 */
52         OP_SUBTRACT,    /* 50 */
53         OP_CONCAT,      /* 51 */
54         OP_LEFT_SHIFT,  /* 52 */
55         OP_RIGHT_SHIFT, /* 53 */
56         OP_LT,          /* 54 */
57         OP_GT,          /* 55 */
58         OP_LE,          /* 56 */
59         OP_GE,          /* 57 */
60         OP_EQ,          /* 58 */
61         OP_NE,          /* 59 */
62         OP_NCMP,        /* 60 */
63         OP_SLT,         /* 61 */
64         OP_SGT,         /* 62 */
65         OP_SLE,         /* 63 */
66         OP_SGE,         /* 64 */
67         OP_SEQ,         /* 65 */
68         OP_SNE,         /* 66 */
69         OP_SCMP,        /* 67 */
70         OP_BIT_AND,     /* 68 */
71         OP_XOR,         /* 69 */
72         OP_BIT_OR,      /* 70 */
73         OP_NEGATE,      /* 71 */
74         OP_NOT,         /* 72 */
75         OP_COMPLEMENT,  /* 73 */
76         OP_ATAN2,       /* 74 */
77         OP_SIN,         /* 75 */
78         OP_COS,         /* 76 */
79         OP_RAND,        /* 77 */
80         OP_SRAND,       /* 78 */
81         OP_EXP,         /* 79 */
82         OP_LOG,         /* 80 */
83         OP_SQRT,        /* 81 */
84         OP_INT,         /* 82 */
85         OP_HEX,         /* 83 */
86         OP_OCT,         /* 84 */
87         OP_ABS,         /* 85 */
88         OP_LENGTH,      /* 86 */
89         OP_SUBSTR,      /* 87 */
90         OP_VEC,         /* 88 */
91         OP_INDEX,       /* 89 */
92         OP_RINDEX,      /* 90 */
93         OP_SPRINTF,     /* 91 */
94         OP_FORMLINE,    /* 92 */
95         OP_ORD,         /* 93 */
96         OP_CHR,         /* 94 */
97         OP_CRYPT,       /* 95 */
98         OP_UCFIRST,     /* 96 */
99         OP_LCFIRST,     /* 97 */
100         OP_UC,          /* 98 */
101         OP_LC,          /* 99 */
102         OP_RV2AV,       /* 100 */
103         OP_AELEMFAST,   /* 101 */
104         OP_AELEM,       /* 102 */
105         OP_ASLICE,      /* 103 */
106         OP_EACH,        /* 104 */
107         OP_VALUES,      /* 105 */
108         OP_KEYS,        /* 106 */
109         OP_DELETE,      /* 107 */
110         OP_RV2HV,       /* 108 */
111         OP_HELEM,       /* 109 */
112         OP_HSLICE,      /* 110 */
113         OP_UNPACK,      /* 111 */
114         OP_PACK,        /* 112 */
115         OP_SPLIT,       /* 113 */
116         OP_JOIN,        /* 114 */
117         OP_LIST,        /* 115 */
118         OP_LSLICE,      /* 116 */
119         OP_ANONLIST,    /* 117 */
120         OP_ANONHASH,    /* 118 */
121         OP_SPLICE,      /* 119 */
122         OP_PUSH,        /* 120 */
123         OP_POP,         /* 121 */
124         OP_SHIFT,       /* 122 */
125         OP_UNSHIFT,     /* 123 */
126         OP_SORT,        /* 124 */
127         OP_REVERSE,     /* 125 */
128         OP_GREPSTART,   /* 126 */
129         OP_GREPWHILE,   /* 127 */
130         OP_RANGE,       /* 128 */
131         OP_FLIP,        /* 129 */
132         OP_FLOP,        /* 130 */
133         OP_AND,         /* 131 */
134         OP_OR,          /* 132 */
135         OP_COND_EXPR,   /* 133 */
136         OP_ANDASSIGN,   /* 134 */
137         OP_ORASSIGN,    /* 135 */
138         OP_METHOD,      /* 136 */
139         OP_ENTERSUBR,   /* 137 */
140         OP_LEAVESUBR,   /* 138 */
141         OP_CALLER,      /* 139 */
142         OP_WARN,        /* 140 */
143         OP_DIE,         /* 141 */
144         OP_RESET,       /* 142 */
145         OP_LINESEQ,     /* 143 */
146         OP_NEXTSTATE,   /* 144 */
147         OP_DBSTATE,     /* 145 */
148         OP_UNSTACK,     /* 146 */
149         OP_ENTER,       /* 147 */
150         OP_LEAVE,       /* 148 */
151         OP_SCOPE,       /* 149 */
152         OP_ENTERITER,   /* 150 */
153         OP_ITER,        /* 151 */
154         OP_ENTERLOOP,   /* 152 */
155         OP_LEAVELOOP,   /* 153 */
156         OP_RETURN,      /* 154 */
157         OP_LAST,        /* 155 */
158         OP_NEXT,        /* 156 */
159         OP_REDO,        /* 157 */
160         OP_DUMP,        /* 158 */
161         OP_GOTO,        /* 159 */
162         OP_EXIT,        /* 160 */
163         OP_NSWITCH,     /* 161 */
164         OP_CSWITCH,     /* 162 */
165         OP_OPEN,        /* 163 */
166         OP_CLOSE,       /* 164 */
167         OP_PIPE_OP,     /* 165 */
168         OP_FILENO,      /* 166 */
169         OP_UMASK,       /* 167 */
170         OP_BINMODE,     /* 168 */
171         OP_TIE,         /* 169 */
172         OP_UNTIE,       /* 170 */
173         OP_DBMOPEN,     /* 171 */
174         OP_DBMCLOSE,    /* 172 */
175         OP_SSELECT,     /* 173 */
176         OP_SELECT,      /* 174 */
177         OP_GETC,        /* 175 */
178         OP_READ,        /* 176 */
179         OP_ENTERWRITE,  /* 177 */
180         OP_LEAVEWRITE,  /* 178 */
181         OP_PRTF,        /* 179 */
182         OP_PRINT,       /* 180 */
183         OP_SYSREAD,     /* 181 */
184         OP_SYSWRITE,    /* 182 */
185         OP_SEND,        /* 183 */
186         OP_RECV,        /* 184 */
187         OP_EOF,         /* 185 */
188         OP_TELL,        /* 186 */
189         OP_SEEK,        /* 187 */
190         OP_TRUNCATE,    /* 188 */
191         OP_FCNTL,       /* 189 */
192         OP_IOCTL,       /* 190 */
193         OP_FLOCK,       /* 191 */
194         OP_SOCKET,      /* 192 */
195         OP_SOCKPAIR,    /* 193 */
196         OP_BIND,        /* 194 */
197         OP_CONNECT,     /* 195 */
198         OP_LISTEN,      /* 196 */
199         OP_ACCEPT,      /* 197 */
200         OP_SHUTDOWN,    /* 198 */
201         OP_GSOCKOPT,    /* 199 */
202         OP_SSOCKOPT,    /* 200 */
203         OP_GETSOCKNAME, /* 201 */
204         OP_GETPEERNAME, /* 202 */
205         OP_LSTAT,       /* 203 */
206         OP_STAT,        /* 204 */
207         OP_FTRREAD,     /* 205 */
208         OP_FTRWRITE,    /* 206 */
209         OP_FTREXEC,     /* 207 */
210         OP_FTEREAD,     /* 208 */
211         OP_FTEWRITE,    /* 209 */
212         OP_FTEEXEC,     /* 210 */
213         OP_FTIS,        /* 211 */
214         OP_FTEOWNED,    /* 212 */
215         OP_FTROWNED,    /* 213 */
216         OP_FTZERO,      /* 214 */
217         OP_FTSIZE,      /* 215 */
218         OP_FTMTIME,     /* 216 */
219         OP_FTATIME,     /* 217 */
220         OP_FTCTIME,     /* 218 */
221         OP_FTSOCK,      /* 219 */
222         OP_FTCHR,       /* 220 */
223         OP_FTBLK,       /* 221 */
224         OP_FTFILE,      /* 222 */
225         OP_FTDIR,       /* 223 */
226         OP_FTPIPE,      /* 224 */
227         OP_FTLINK,      /* 225 */
228         OP_FTSUID,      /* 226 */
229         OP_FTSGID,      /* 227 */
230         OP_FTSVTX,      /* 228 */
231         OP_FTTTY,       /* 229 */
232         OP_FTTEXT,      /* 230 */
233         OP_FTBINARY,    /* 231 */
234         OP_CHDIR,       /* 232 */
235         OP_CHOWN,       /* 233 */
236         OP_CHROOT,      /* 234 */
237         OP_UNLINK,      /* 235 */
238         OP_CHMOD,       /* 236 */
239         OP_UTIME,       /* 237 */
240         OP_RENAME,      /* 238 */
241         OP_LINK,        /* 239 */
242         OP_SYMLINK,     /* 240 */
243         OP_READLINK,    /* 241 */
244         OP_MKDIR,       /* 242 */
245         OP_RMDIR,       /* 243 */
246         OP_OPEN_DIR,    /* 244 */
247         OP_READDIR,     /* 245 */
248         OP_TELLDIR,     /* 246 */
249         OP_SEEKDIR,     /* 247 */
250         OP_REWINDDIR,   /* 248 */
251         OP_CLOSEDIR,    /* 249 */
252         OP_FORK,        /* 250 */
253         OP_WAIT,        /* 251 */
254         OP_WAITPID,     /* 252 */
255         OP_SYSTEM,      /* 253 */
256         OP_EXEC,        /* 254 */
257         OP_KILL,        /* 255 */
258         OP_GETPPID,     /* 256 */
259         OP_GETPGRP,     /* 257 */
260         OP_SETPGRP,     /* 258 */
261         OP_GETPRIORITY, /* 259 */
262         OP_SETPRIORITY, /* 260 */
263         OP_TIME,        /* 261 */
264         OP_TMS,         /* 262 */
265         OP_LOCALTIME,   /* 263 */
266         OP_GMTIME,      /* 264 */
267         OP_ALARM,       /* 265 */
268         OP_SLEEP,       /* 266 */
269         OP_SHMGET,      /* 267 */
270         OP_SHMCTL,      /* 268 */
271         OP_SHMREAD,     /* 269 */
272         OP_SHMWRITE,    /* 270 */
273         OP_MSGGET,      /* 271 */
274         OP_MSGCTL,      /* 272 */
275         OP_MSGSND,      /* 273 */
276         OP_MSGRCV,      /* 274 */
277         OP_SEMGET,      /* 275 */
278         OP_SEMCTL,      /* 276 */
279         OP_SEMOP,       /* 277 */
280         OP_REQUIRE,     /* 278 */
281         OP_DOFILE,      /* 279 */
282         OP_ENTEREVAL,   /* 280 */
283         OP_LEAVEEVAL,   /* 281 */
284         OP_EVALONCE,    /* 282 */
285         OP_ENTERTRY,    /* 283 */
286         OP_LEAVETRY,    /* 284 */
287         OP_GHBYNAME,    /* 285 */
288         OP_GHBYADDR,    /* 286 */
289         OP_GHOSTENT,    /* 287 */
290         OP_GNBYNAME,    /* 288 */
291         OP_GNBYADDR,    /* 289 */
292         OP_GNETENT,     /* 290 */
293         OP_GPBYNAME,    /* 291 */
294         OP_GPBYNUMBER,  /* 292 */
295         OP_GPROTOENT,   /* 293 */
296         OP_GSBYNAME,    /* 294 */
297         OP_GSBYPORT,    /* 295 */
298         OP_GSERVENT,    /* 296 */
299         OP_SHOSTENT,    /* 297 */
300         OP_SNETENT,     /* 298 */
301         OP_SPROTOENT,   /* 299 */
302         OP_SSERVENT,    /* 300 */
303         OP_EHOSTENT,    /* 301 */
304         OP_ENETENT,     /* 302 */
305         OP_EPROTOENT,   /* 303 */
306         OP_ESERVENT,    /* 304 */
307         OP_GPWNAM,      /* 305 */
308         OP_GPWUID,      /* 306 */
309         OP_GPWENT,      /* 307 */
310         OP_SPWENT,      /* 308 */
311         OP_EPWENT,      /* 309 */
312         OP_GGRNAM,      /* 310 */
313         OP_GGRGID,      /* 311 */
314         OP_GGRENT,      /* 312 */
315         OP_SGRENT,      /* 313 */
316         OP_EGRENT,      /* 314 */
317         OP_GETLOGIN,    /* 315 */
318         OP_SYSCALL,     /* 316 */
319 } opcode;
320
321 #define MAXO 317
322
323 #ifndef DOINIT
324 extern char *op_name[];
325 #else
326 char *op_name[] = {
327         "null operation",
328         "stub",
329         "scalar",
330         "pushmark",
331         "wantarray",
332         "constant item",
333         "interpreted string",
334         "scalar variable",
335         "glob value",
336         "private variable",
337         "private array",
338         "private hash",
339         "private something",
340         "push regexp",
341         "ref-to-glob cast",
342         "scalar value length",
343         "ref-to-scalar cast",
344         "array length",
345         "subroutine reference",
346         "backslash reference",
347         "reference-type operator",
348         "bless",
349         "backticks",
350         "glob",
351         "<HANDLE>",
352         "append I/O operator",
353         "regexp comp once",
354         "regexp compilation",
355         "pattern match",
356         "substitution",
357         "substitution cont",
358         "character translation",
359         "scalar assignment",
360         "list assignment",
361         "scalar chop",
362         "chop",
363         "defined operator",
364         "undef operator",
365         "study",
366         "preincrement",
367         "predecrement",
368         "postincrement",
369         "postdecrement",
370         "exponentiation",
371         "multiplication",
372         "division",
373         "modulus",
374         "repeat",
375         "addition",
376         "integer addition",
377         "subtraction",
378         "concatenation",
379         "left bitshift",
380         "right bitshift",
381         "numeric lt",
382         "numeric gt",
383         "numeric le",
384         "numeric ge",
385         "numeric eq",
386         "numeric ne",
387         "spaceship",
388         "string lt",
389         "string gt",
390         "string le",
391         "string ge",
392         "string eq",
393         "string ne",
394         "string comparison",
395         "bit and",
396         "xor",
397         "bit or",
398         "negate",
399         "not",
400         "1's complement",
401         "atan2",
402         "sin",
403         "cos",
404         "rand",
405         "srand",
406         "exp",
407         "log",
408         "sqrt",
409         "int",
410         "hex",
411         "oct",
412         "abs",
413         "length",
414         "substr",
415         "vec",
416         "index",
417         "rindex",
418         "sprintf",
419         "formline",
420         "ord",
421         "chr",
422         "crypt",
423         "upper case first",
424         "lower case first",
425         "upper case",
426         "lower case",
427         "array deref",
428         "known array element",
429         "array element",
430         "array slice",
431         "each",
432         "values",
433         "keys",
434         "delete",
435         "associative array deref",
436         "associative array elem",
437         "associative array slice",
438         "unpack",
439         "pack",
440         "split",
441         "join",
442         "list",
443         "list slice",
444         "anonymous list",
445         "anonymous hash",
446         "splice",
447         "push",
448         "pop",
449         "shift",
450         "unshift",
451         "sort",
452         "reverse",
453         "grep",
454         "grep iterator",
455         "flipflop",
456         "range (or flip)",
457         "range (or flop)",
458         "logical and",
459         "logical or",
460         "conditional expression",
461         "logical and assignment",
462         "logical or assignment",
463         "method lookup",
464         "subroutine entry",
465         "subroutine exit",
466         "caller",
467         "warn",
468         "die",
469         "reset",
470         "line sequence",
471         "next statement",
472         "debug next statement",
473         "unstack",
474         "block entry",
475         "block exit",
476         "block",
477         "foreach loop entry",
478         "foreach loop iterator",
479         "loop entry",
480         "loop exit",
481         "return",
482         "last",
483         "next",
484         "redo",
485         "dump",
486         "goto",
487         "exit",
488         "numeric switch",
489         "character switch",
490         "open",
491         "close",
492         "pipe",
493         "fileno",
494         "umask",
495         "binmode",
496         "tie",
497         "untie",
498         "dbmopen",
499         "dbmclose",
500         "select system call",
501         "select",
502         "getc",
503         "read",
504         "write",
505         "write exit",
506         "printf",
507         "print",
508         "sysread",
509         "syswrite",
510         "send",
511         "recv",
512         "eof",
513         "tell",
514         "seek",
515         "truncate",
516         "fcntl",
517         "ioctl",
518         "flock",
519         "socket",
520         "socketpair",
521         "bind",
522         "connect",
523         "listen",
524         "accept",
525         "shutdown",
526         "getsockopt",
527         "setsockopt",
528         "getsockname",
529         "getpeername",
530         "lstat",
531         "stat",
532         "-R",
533         "-W",
534         "-X",
535         "-r",
536         "-w",
537         "-x",
538         "-e",
539         "-O",
540         "-o",
541         "-z",
542         "-s",
543         "-M",
544         "-A",
545         "-C",
546         "-S",
547         "-c",
548         "-b",
549         "-f",
550         "-d",
551         "-p",
552         "-l",
553         "-u",
554         "-g",
555         "-k",
556         "-t",
557         "-T",
558         "-B",
559         "chdir",
560         "chown",
561         "chroot",
562         "unlink",
563         "chmod",
564         "utime",
565         "rename",
566         "link",
567         "symlink",
568         "readlink",
569         "mkdir",
570         "rmdir",
571         "opendir",
572         "readdir",
573         "telldir",
574         "seekdir",
575         "rewinddir",
576         "closedir",
577         "fork",
578         "wait",
579         "waitpid",
580         "system",
581         "exec",
582         "kill",
583         "getppid",
584         "getpgrp",
585         "setpgrp",
586         "getpriority",
587         "setpriority",
588         "time",
589         "times",
590         "localtime",
591         "gmtime",
592         "alarm",
593         "sleep",
594         "shmget",
595         "shmctl",
596         "shmread",
597         "shmwrite",
598         "msgget",
599         "msgctl",
600         "msgsnd",
601         "msgrcv",
602         "semget",
603         "semctl",
604         "semop",
605         "require",
606         "do 'file'",
607         "eval string",
608         "eval exit",
609         "eval constant string",
610         "eval block",
611         "eval block exit",
612         "gethostbyname",
613         "gethostbyaddr",
614         "gethostent",
615         "getnetbyname",
616         "getnetbyaddr",
617         "getnetent",
618         "getprotobyname",
619         "getprotobynumber",
620         "getprotoent",
621         "getservbyname",
622         "getservbyport",
623         "getservent",
624         "sethostent",
625         "setnetent",
626         "setprotoent",
627         "setservent",
628         "endhostent",
629         "endnetent",
630         "endprotoent",
631         "endservent",
632         "getpwnam",
633         "getpwuid",
634         "getpwent",
635         "setpwent",
636         "endpwent",
637         "getgrnam",
638         "getgrgid",
639         "getgrent",
640         "setgrent",
641         "endgrent",
642         "getlogin",
643         "syscall",
644 };
645 #endif
646
647 OP *    ck_aelem        P((OP* op));
648 OP *    ck_chop         P((OP* op));
649 OP *    ck_concat       P((OP* op));
650 OP *    ck_eof          P((OP* op));
651 OP *    ck_eval         P((OP* op));
652 OP *    ck_exec         P((OP* op));
653 OP *    ck_formline     P((OP* op));
654 OP *    ck_ftst         P((OP* op));
655 OP *    ck_fun          P((OP* op));
656 OP *    ck_glob         P((OP* op));
657 OP *    ck_grep         P((OP* op));
658 OP *    ck_index        P((OP* op));
659 OP *    ck_lengthconst  P((OP* op));
660 OP *    ck_lfun         P((OP* op));
661 OP *    ck_listiob      P((OP* op));
662 OP *    ck_match        P((OP* op));
663 OP *    ck_null         P((OP* op));
664 OP *    ck_repeat       P((OP* op));
665 OP *    ck_rvconst      P((OP* op));
666 OP *    ck_select       P((OP* op));
667 OP *    ck_shift        P((OP* op));
668 OP *    ck_sort         P((OP* op));
669 OP *    ck_split        P((OP* op));
670 OP *    ck_subr         P((OP* op));
671 OP *    ck_trunc        P((OP* op));
672
673 OP *    pp_null         P((void));
674 OP *    pp_stub         P((void));
675 OP *    pp_scalar       P((void));
676 OP *    pp_pushmark     P((void));
677 OP *    pp_wantarray    P((void));
678 OP *    pp_const        P((void));
679 OP *    pp_interp       P((void));
680 OP *    pp_gvsv         P((void));
681 OP *    pp_gv           P((void));
682 OP *    pp_padsv        P((void));
683 OP *    pp_padav        P((void));
684 OP *    pp_padhv        P((void));
685 OP *    pp_padany       P((void));
686 OP *    pp_pushre       P((void));
687 OP *    pp_rv2gv        P((void));
688 OP *    pp_sv2len       P((void));
689 OP *    pp_rv2sv        P((void));
690 OP *    pp_av2arylen    P((void));
691 OP *    pp_rv2cv        P((void));
692 OP *    pp_refgen       P((void));
693 OP *    pp_ref          P((void));
694 OP *    pp_bless        P((void));
695 OP *    pp_backtick     P((void));
696 OP *    pp_glob         P((void));
697 OP *    pp_readline     P((void));
698 OP *    pp_rcatline     P((void));
699 OP *    pp_regcmaybe    P((void));
700 OP *    pp_regcomp      P((void));
701 OP *    pp_match        P((void));
702 OP *    pp_subst        P((void));
703 OP *    pp_substcont    P((void));
704 OP *    pp_trans        P((void));
705 OP *    pp_sassign      P((void));
706 OP *    pp_aassign      P((void));
707 OP *    pp_schop        P((void));
708 OP *    pp_chop         P((void));
709 OP *    pp_defined      P((void));
710 OP *    pp_undef        P((void));
711 OP *    pp_study        P((void));
712 OP *    pp_preinc       P((void));
713 OP *    pp_predec       P((void));
714 OP *    pp_postinc      P((void));
715 OP *    pp_postdec      P((void));
716 OP *    pp_pow          P((void));
717 OP *    pp_multiply     P((void));
718 OP *    pp_divide       P((void));
719 OP *    pp_modulo       P((void));
720 OP *    pp_repeat       P((void));
721 OP *    pp_add          P((void));
722 OP *    pp_intadd       P((void));
723 OP *    pp_subtract     P((void));
724 OP *    pp_concat       P((void));
725 OP *    pp_left_shift   P((void));
726 OP *    pp_right_shift  P((void));
727 OP *    pp_lt           P((void));
728 OP *    pp_gt           P((void));
729 OP *    pp_le           P((void));
730 OP *    pp_ge           P((void));
731 OP *    pp_eq           P((void));
732 OP *    pp_ne           P((void));
733 OP *    pp_ncmp         P((void));
734 OP *    pp_slt          P((void));
735 OP *    pp_sgt          P((void));
736 OP *    pp_sle          P((void));
737 OP *    pp_sge          P((void));
738 OP *    pp_seq          P((void));
739 OP *    pp_sne          P((void));
740 OP *    pp_scmp         P((void));
741 OP *    pp_bit_and      P((void));
742 OP *    pp_xor          P((void));
743 OP *    pp_bit_or       P((void));
744 OP *    pp_negate       P((void));
745 OP *    pp_not          P((void));
746 OP *    pp_complement   P((void));
747 OP *    pp_atan2        P((void));
748 OP *    pp_sin          P((void));
749 OP *    pp_cos          P((void));
750 OP *    pp_rand         P((void));
751 OP *    pp_srand        P((void));
752 OP *    pp_exp          P((void));
753 OP *    pp_log          P((void));
754 OP *    pp_sqrt         P((void));
755 OP *    pp_int          P((void));
756 OP *    pp_hex          P((void));
757 OP *    pp_oct          P((void));
758 OP *    pp_abs          P((void));
759 OP *    pp_length       P((void));
760 OP *    pp_substr       P((void));
761 OP *    pp_vec          P((void));
762 OP *    pp_index        P((void));
763 OP *    pp_rindex       P((void));
764 OP *    pp_sprintf      P((void));
765 OP *    pp_formline     P((void));
766 OP *    pp_ord          P((void));
767 OP *    pp_chr          P((void));
768 OP *    pp_crypt        P((void));
769 OP *    pp_ucfirst      P((void));
770 OP *    pp_lcfirst      P((void));
771 OP *    pp_uc           P((void));
772 OP *    pp_lc           P((void));
773 OP *    pp_rv2av        P((void));
774 OP *    pp_aelemfast    P((void));
775 OP *    pp_aelem        P((void));
776 OP *    pp_aslice       P((void));
777 OP *    pp_each         P((void));
778 OP *    pp_values       P((void));
779 OP *    pp_keys         P((void));
780 OP *    pp_delete       P((void));
781 OP *    pp_rv2hv        P((void));
782 OP *    pp_helem        P((void));
783 OP *    pp_hslice       P((void));
784 OP *    pp_unpack       P((void));
785 OP *    pp_pack         P((void));
786 OP *    pp_split        P((void));
787 OP *    pp_join         P((void));
788 OP *    pp_list         P((void));
789 OP *    pp_lslice       P((void));
790 OP *    pp_anonlist     P((void));
791 OP *    pp_anonhash     P((void));
792 OP *    pp_splice       P((void));
793 OP *    pp_push         P((void));
794 OP *    pp_pop          P((void));
795 OP *    pp_shift        P((void));
796 OP *    pp_unshift      P((void));
797 OP *    pp_sort         P((void));
798 OP *    pp_reverse      P((void));
799 OP *    pp_grepstart    P((void));
800 OP *    pp_grepwhile    P((void));
801 OP *    pp_range        P((void));
802 OP *    pp_flip         P((void));
803 OP *    pp_flop         P((void));
804 OP *    pp_and          P((void));
805 OP *    pp_or           P((void));
806 OP *    pp_cond_expr    P((void));
807 OP *    pp_andassign    P((void));
808 OP *    pp_orassign     P((void));
809 OP *    pp_method       P((void));
810 OP *    pp_entersubr    P((void));
811 OP *    pp_leavesubr    P((void));
812 OP *    pp_caller       P((void));
813 OP *    pp_warn         P((void));
814 OP *    pp_die          P((void));
815 OP *    pp_reset        P((void));
816 OP *    pp_lineseq      P((void));
817 OP *    pp_nextstate    P((void));
818 OP *    pp_dbstate      P((void));
819 OP *    pp_unstack      P((void));
820 OP *    pp_enter        P((void));
821 OP *    pp_leave        P((void));
822 OP *    pp_scope        P((void));
823 OP *    pp_enteriter    P((void));
824 OP *    pp_iter         P((void));
825 OP *    pp_enterloop    P((void));
826 OP *    pp_leaveloop    P((void));
827 OP *    pp_return       P((void));
828 OP *    pp_last         P((void));
829 OP *    pp_next         P((void));
830 OP *    pp_redo         P((void));
831 OP *    pp_dump         P((void));
832 OP *    pp_goto         P((void));
833 OP *    pp_exit         P((void));
834 OP *    pp_nswitch      P((void));
835 OP *    pp_cswitch      P((void));
836 OP *    pp_open         P((void));
837 OP *    pp_close        P((void));
838 OP *    pp_pipe_op      P((void));
839 OP *    pp_fileno       P((void));
840 OP *    pp_umask        P((void));
841 OP *    pp_binmode      P((void));
842 OP *    pp_tie          P((void));
843 OP *    pp_untie        P((void));
844 OP *    pp_dbmopen      P((void));
845 OP *    pp_dbmclose     P((void));
846 OP *    pp_sselect      P((void));
847 OP *    pp_select       P((void));
848 OP *    pp_getc         P((void));
849 OP *    pp_read         P((void));
850 OP *    pp_enterwrite   P((void));
851 OP *    pp_leavewrite   P((void));
852 OP *    pp_prtf         P((void));
853 OP *    pp_print        P((void));
854 OP *    pp_sysread      P((void));
855 OP *    pp_syswrite     P((void));
856 OP *    pp_send         P((void));
857 OP *    pp_recv         P((void));
858 OP *    pp_eof          P((void));
859 OP *    pp_tell         P((void));
860 OP *    pp_seek         P((void));
861 OP *    pp_truncate     P((void));
862 OP *    pp_fcntl        P((void));
863 OP *    pp_ioctl        P((void));
864 OP *    pp_flock        P((void));
865 OP *    pp_socket       P((void));
866 OP *    pp_sockpair     P((void));
867 OP *    pp_bind         P((void));
868 OP *    pp_connect      P((void));
869 OP *    pp_listen       P((void));
870 OP *    pp_accept       P((void));
871 OP *    pp_shutdown     P((void));
872 OP *    pp_gsockopt     P((void));
873 OP *    pp_ssockopt     P((void));
874 OP *    pp_getsockname  P((void));
875 OP *    pp_getpeername  P((void));
876 OP *    pp_lstat        P((void));
877 OP *    pp_stat         P((void));
878 OP *    pp_ftrread      P((void));
879 OP *    pp_ftrwrite     P((void));
880 OP *    pp_ftrexec      P((void));
881 OP *    pp_fteread      P((void));
882 OP *    pp_ftewrite     P((void));
883 OP *    pp_fteexec      P((void));
884 OP *    pp_ftis         P((void));
885 OP *    pp_fteowned     P((void));
886 OP *    pp_ftrowned     P((void));
887 OP *    pp_ftzero       P((void));
888 OP *    pp_ftsize       P((void));
889 OP *    pp_ftmtime      P((void));
890 OP *    pp_ftatime      P((void));
891 OP *    pp_ftctime      P((void));
892 OP *    pp_ftsock       P((void));
893 OP *    pp_ftchr        P((void));
894 OP *    pp_ftblk        P((void));
895 OP *    pp_ftfile       P((void));
896 OP *    pp_ftdir        P((void));
897 OP *    pp_ftpipe       P((void));
898 OP *    pp_ftlink       P((void));
899 OP *    pp_ftsuid       P((void));
900 OP *    pp_ftsgid       P((void));
901 OP *    pp_ftsvtx       P((void));
902 OP *    pp_fttty        P((void));
903 OP *    pp_fttext       P((void));
904 OP *    pp_ftbinary     P((void));
905 OP *    pp_chdir        P((void));
906 OP *    pp_chown        P((void));
907 OP *    pp_chroot       P((void));
908 OP *    pp_unlink       P((void));
909 OP *    pp_chmod        P((void));
910 OP *    pp_utime        P((void));
911 OP *    pp_rename       P((void));
912 OP *    pp_link         P((void));
913 OP *    pp_symlink      P((void));
914 OP *    pp_readlink     P((void));
915 OP *    pp_mkdir        P((void));
916 OP *    pp_rmdir        P((void));
917 OP *    pp_open_dir     P((void));
918 OP *    pp_readdir      P((void));
919 OP *    pp_telldir      P((void));
920 OP *    pp_seekdir      P((void));
921 OP *    pp_rewinddir    P((void));
922 OP *    pp_closedir     P((void));
923 OP *    pp_fork         P((void));
924 OP *    pp_wait         P((void));
925 OP *    pp_waitpid      P((void));
926 OP *    pp_system       P((void));
927 OP *    pp_exec         P((void));
928 OP *    pp_kill         P((void));
929 OP *    pp_getppid      P((void));
930 OP *    pp_getpgrp      P((void));
931 OP *    pp_setpgrp      P((void));
932 OP *    pp_getpriority  P((void));
933 OP *    pp_setpriority  P((void));
934 OP *    pp_time         P((void));
935 OP *    pp_tms          P((void));
936 OP *    pp_localtime    P((void));
937 OP *    pp_gmtime       P((void));
938 OP *    pp_alarm        P((void));
939 OP *    pp_sleep        P((void));
940 OP *    pp_shmget       P((void));
941 OP *    pp_shmctl       P((void));
942 OP *    pp_shmread      P((void));
943 OP *    pp_shmwrite     P((void));
944 OP *    pp_msgget       P((void));
945 OP *    pp_msgctl       P((void));
946 OP *    pp_msgsnd       P((void));
947 OP *    pp_msgrcv       P((void));
948 OP *    pp_semget       P((void));
949 OP *    pp_semctl       P((void));
950 OP *    pp_semop        P((void));
951 OP *    pp_require      P((void));
952 OP *    pp_dofile       P((void));
953 OP *    pp_entereval    P((void));
954 OP *    pp_leaveeval    P((void));
955 OP *    pp_evalonce     P((void));
956 OP *    pp_entertry     P((void));
957 OP *    pp_leavetry     P((void));
958 OP *    pp_ghbyname     P((void));
959 OP *    pp_ghbyaddr     P((void));
960 OP *    pp_ghostent     P((void));
961 OP *    pp_gnbyname     P((void));
962 OP *    pp_gnbyaddr     P((void));
963 OP *    pp_gnetent      P((void));
964 OP *    pp_gpbyname     P((void));
965 OP *    pp_gpbynumber   P((void));
966 OP *    pp_gprotoent    P((void));
967 OP *    pp_gsbyname     P((void));
968 OP *    pp_gsbyport     P((void));
969 OP *    pp_gservent     P((void));
970 OP *    pp_shostent     P((void));
971 OP *    pp_snetent      P((void));
972 OP *    pp_sprotoent    P((void));
973 OP *    pp_sservent     P((void));
974 OP *    pp_ehostent     P((void));
975 OP *    pp_enetent      P((void));
976 OP *    pp_eprotoent    P((void));
977 OP *    pp_eservent     P((void));
978 OP *    pp_gpwnam       P((void));
979 OP *    pp_gpwuid       P((void));
980 OP *    pp_gpwent       P((void));
981 OP *    pp_spwent       P((void));
982 OP *    pp_epwent       P((void));
983 OP *    pp_ggrnam       P((void));
984 OP *    pp_ggrgid       P((void));
985 OP *    pp_ggrent       P((void));
986 OP *    pp_sgrent       P((void));
987 OP *    pp_egrent       P((void));
988 OP *    pp_getlogin     P((void));
989 OP *    pp_syscall      P((void));
990
991 #ifndef DOINIT
992 extern OP * (*ppaddr[])();
993 #else
994 OP * (*ppaddr[])() = {
995         pp_null,
996         pp_stub,
997         pp_scalar,
998         pp_pushmark,
999         pp_wantarray,
1000         pp_const,
1001         pp_interp,
1002         pp_gvsv,
1003         pp_gv,
1004         pp_padsv,
1005         pp_padav,
1006         pp_padhv,
1007         pp_padany,
1008         pp_pushre,
1009         pp_rv2gv,
1010         pp_sv2len,
1011         pp_rv2sv,
1012         pp_av2arylen,
1013         pp_rv2cv,
1014         pp_refgen,
1015         pp_ref,
1016         pp_bless,
1017         pp_backtick,
1018         pp_glob,
1019         pp_readline,
1020         pp_rcatline,
1021         pp_regcmaybe,
1022         pp_regcomp,
1023         pp_match,
1024         pp_subst,
1025         pp_substcont,
1026         pp_trans,
1027         pp_sassign,
1028         pp_aassign,
1029         pp_schop,
1030         pp_chop,
1031         pp_defined,
1032         pp_undef,
1033         pp_study,
1034         pp_preinc,
1035         pp_predec,
1036         pp_postinc,
1037         pp_postdec,
1038         pp_pow,
1039         pp_multiply,
1040         pp_divide,
1041         pp_modulo,
1042         pp_repeat,
1043         pp_add,
1044         pp_intadd,
1045         pp_subtract,
1046         pp_concat,
1047         pp_left_shift,
1048         pp_right_shift,
1049         pp_lt,
1050         pp_gt,
1051         pp_le,
1052         pp_ge,
1053         pp_eq,
1054         pp_ne,
1055         pp_ncmp,
1056         pp_slt,
1057         pp_sgt,
1058         pp_sle,
1059         pp_sge,
1060         pp_seq,
1061         pp_sne,
1062         pp_scmp,
1063         pp_bit_and,
1064         pp_xor,
1065         pp_bit_or,
1066         pp_negate,
1067         pp_not,
1068         pp_complement,
1069         pp_atan2,
1070         pp_sin,
1071         pp_cos,
1072         pp_rand,
1073         pp_srand,
1074         pp_exp,
1075         pp_log,
1076         pp_sqrt,
1077         pp_int,
1078         pp_hex,
1079         pp_oct,
1080         pp_abs,
1081         pp_length,
1082         pp_substr,
1083         pp_vec,
1084         pp_index,
1085         pp_rindex,
1086         pp_sprintf,
1087         pp_formline,
1088         pp_ord,
1089         pp_chr,
1090         pp_crypt,
1091         pp_ucfirst,
1092         pp_lcfirst,
1093         pp_uc,
1094         pp_lc,
1095         pp_rv2av,
1096         pp_aelemfast,
1097         pp_aelem,
1098         pp_aslice,
1099         pp_each,
1100         pp_values,
1101         pp_keys,
1102         pp_delete,
1103         pp_rv2hv,
1104         pp_helem,
1105         pp_hslice,
1106         pp_unpack,
1107         pp_pack,
1108         pp_split,
1109         pp_join,
1110         pp_list,
1111         pp_lslice,
1112         pp_anonlist,
1113         pp_anonhash,
1114         pp_splice,
1115         pp_push,
1116         pp_pop,
1117         pp_shift,
1118         pp_unshift,
1119         pp_sort,
1120         pp_reverse,
1121         pp_grepstart,
1122         pp_grepwhile,
1123         pp_range,
1124         pp_flip,
1125         pp_flop,
1126         pp_and,
1127         pp_or,
1128         pp_cond_expr,
1129         pp_andassign,
1130         pp_orassign,
1131         pp_method,
1132         pp_entersubr,
1133         pp_leavesubr,
1134         pp_caller,
1135         pp_warn,
1136         pp_die,
1137         pp_reset,
1138         pp_lineseq,
1139         pp_nextstate,
1140         pp_dbstate,
1141         pp_unstack,
1142         pp_enter,
1143         pp_leave,
1144         pp_scope,
1145         pp_enteriter,
1146         pp_iter,
1147         pp_enterloop,
1148         pp_leaveloop,
1149         pp_return,
1150         pp_last,
1151         pp_next,
1152         pp_redo,
1153         pp_dump,
1154         pp_goto,
1155         pp_exit,
1156         pp_nswitch,
1157         pp_cswitch,
1158         pp_open,
1159         pp_close,
1160         pp_pipe_op,
1161         pp_fileno,
1162         pp_umask,
1163         pp_binmode,
1164         pp_tie,
1165         pp_untie,
1166         pp_dbmopen,
1167         pp_dbmclose,
1168         pp_sselect,
1169         pp_select,
1170         pp_getc,
1171         pp_read,
1172         pp_enterwrite,
1173         pp_leavewrite,
1174         pp_prtf,
1175         pp_print,
1176         pp_sysread,
1177         pp_syswrite,
1178         pp_send,
1179         pp_recv,
1180         pp_eof,
1181         pp_tell,
1182         pp_seek,
1183         pp_truncate,
1184         pp_fcntl,
1185         pp_ioctl,
1186         pp_flock,
1187         pp_socket,
1188         pp_sockpair,
1189         pp_bind,
1190         pp_connect,
1191         pp_listen,
1192         pp_accept,
1193         pp_shutdown,
1194         pp_gsockopt,
1195         pp_ssockopt,
1196         pp_getsockname,
1197         pp_getpeername,
1198         pp_lstat,
1199         pp_stat,
1200         pp_ftrread,
1201         pp_ftrwrite,
1202         pp_ftrexec,
1203         pp_fteread,
1204         pp_ftewrite,
1205         pp_fteexec,
1206         pp_ftis,
1207         pp_fteowned,
1208         pp_ftrowned,
1209         pp_ftzero,
1210         pp_ftsize,
1211         pp_ftmtime,
1212         pp_ftatime,
1213         pp_ftctime,
1214         pp_ftsock,
1215         pp_ftchr,
1216         pp_ftblk,
1217         pp_ftfile,
1218         pp_ftdir,
1219         pp_ftpipe,
1220         pp_ftlink,
1221         pp_ftsuid,
1222         pp_ftsgid,
1223         pp_ftsvtx,
1224         pp_fttty,
1225         pp_fttext,
1226         pp_ftbinary,
1227         pp_chdir,
1228         pp_chown,
1229         pp_chroot,
1230         pp_unlink,
1231         pp_chmod,
1232         pp_utime,
1233         pp_rename,
1234         pp_link,
1235         pp_symlink,
1236         pp_readlink,
1237         pp_mkdir,
1238         pp_rmdir,
1239         pp_open_dir,
1240         pp_readdir,
1241         pp_telldir,
1242         pp_seekdir,
1243         pp_rewinddir,
1244         pp_closedir,
1245         pp_fork,
1246         pp_wait,
1247         pp_waitpid,
1248         pp_system,
1249         pp_exec,
1250         pp_kill,
1251         pp_getppid,
1252         pp_getpgrp,
1253         pp_setpgrp,
1254         pp_getpriority,
1255         pp_setpriority,
1256         pp_time,
1257         pp_tms,
1258         pp_localtime,
1259         pp_gmtime,
1260         pp_alarm,
1261         pp_sleep,
1262         pp_shmget,
1263         pp_shmctl,
1264         pp_shmread,
1265         pp_shmwrite,
1266         pp_msgget,
1267         pp_msgctl,
1268         pp_msgsnd,
1269         pp_msgrcv,
1270         pp_semget,
1271         pp_semctl,
1272         pp_semop,
1273         pp_require,
1274         pp_dofile,
1275         pp_entereval,
1276         pp_leaveeval,
1277         pp_evalonce,
1278         pp_entertry,
1279         pp_leavetry,
1280         pp_ghbyname,
1281         pp_ghbyaddr,
1282         pp_ghostent,
1283         pp_gnbyname,
1284         pp_gnbyaddr,
1285         pp_gnetent,
1286         pp_gpbyname,
1287         pp_gpbynumber,
1288         pp_gprotoent,
1289         pp_gsbyname,
1290         pp_gsbyport,
1291         pp_gservent,
1292         pp_shostent,
1293         pp_snetent,
1294         pp_sprotoent,
1295         pp_sservent,
1296         pp_ehostent,
1297         pp_enetent,
1298         pp_eprotoent,
1299         pp_eservent,
1300         pp_gpwnam,
1301         pp_gpwuid,
1302         pp_gpwent,
1303         pp_spwent,
1304         pp_epwent,
1305         pp_ggrnam,
1306         pp_ggrgid,
1307         pp_ggrent,
1308         pp_sgrent,
1309         pp_egrent,
1310         pp_getlogin,
1311         pp_syscall,
1312 };
1313 #endif
1314
1315 #ifndef DOINIT
1316 extern OP * (*check[])();
1317 #else
1318 OP * (*check[])() = {
1319         ck_null,        /* null */
1320         ck_null,        /* stub */
1321         ck_fun,         /* scalar */
1322         ck_null,        /* pushmark */
1323         ck_null,        /* wantarray */
1324         ck_null,        /* const */
1325         ck_null,        /* interp */
1326         ck_null,        /* gvsv */
1327         ck_null,        /* gv */
1328         ck_null,        /* padsv */
1329         ck_null,        /* padav */
1330         ck_null,        /* padhv */
1331         ck_null,        /* padany */
1332         ck_null,        /* pushre */
1333         ck_rvconst,     /* rv2gv */
1334         ck_null,        /* sv2len */
1335         ck_rvconst,     /* rv2sv */
1336         ck_null,        /* av2arylen */
1337         ck_rvconst,     /* rv2cv */
1338         ck_null,        /* refgen */
1339         ck_fun,         /* ref */
1340         ck_fun,         /* bless */
1341         ck_null,        /* backtick */
1342         ck_glob,        /* glob */
1343         ck_null,        /* readline */
1344         ck_null,        /* rcatline */
1345         ck_fun,         /* regcmaybe */
1346         ck_null,        /* regcomp */
1347         ck_match,       /* match */
1348         ck_null,        /* subst */
1349         ck_null,        /* substcont */
1350         ck_null,        /* trans */
1351         ck_null,        /* sassign */
1352         ck_null,        /* aassign */
1353         ck_null,        /* schop */
1354         ck_chop,        /* chop */
1355         ck_lfun,        /* defined */
1356         ck_lfun,        /* undef */
1357         ck_fun,         /* study */
1358         ck_lfun,        /* preinc */
1359         ck_lfun,        /* predec */
1360         ck_lfun,        /* postinc */
1361         ck_lfun,        /* postdec */
1362         ck_null,        /* pow */
1363         ck_null,        /* multiply */
1364         ck_null,        /* divide */
1365         ck_null,        /* modulo */
1366         ck_repeat,      /* repeat */
1367         ck_null,        /* add */
1368         ck_null,        /* intadd */
1369         ck_null,        /* subtract */
1370         ck_concat,      /* concat */
1371         ck_null,        /* left_shift */
1372         ck_null,        /* right_shift */
1373         ck_null,        /* lt */
1374         ck_null,        /* gt */
1375         ck_null,        /* le */
1376         ck_null,        /* ge */
1377         ck_null,        /* eq */
1378         ck_null,        /* ne */
1379         ck_null,        /* ncmp */
1380         ck_null,        /* slt */
1381         ck_null,        /* sgt */
1382         ck_null,        /* sle */
1383         ck_null,        /* sge */
1384         ck_null,        /* seq */
1385         ck_null,        /* sne */
1386         ck_null,        /* scmp */
1387         ck_null,        /* bit_and */
1388         ck_null,        /* xor */
1389         ck_null,        /* bit_or */
1390         ck_null,        /* negate */
1391         ck_null,        /* not */
1392         ck_null,        /* complement */
1393         ck_fun,         /* atan2 */
1394         ck_fun,         /* sin */
1395         ck_fun,         /* cos */
1396         ck_fun,         /* rand */
1397         ck_fun,         /* srand */
1398         ck_fun,         /* exp */
1399         ck_fun,         /* log */
1400         ck_fun,         /* sqrt */
1401         ck_fun,         /* int */
1402         ck_fun,         /* hex */
1403         ck_fun,         /* oct */
1404         ck_fun,         /* abs */
1405         ck_lengthconst, /* length */
1406         ck_fun,         /* substr */
1407         ck_fun,         /* vec */
1408         ck_index,       /* index */
1409         ck_index,       /* rindex */
1410         ck_fun,         /* sprintf */
1411         ck_formline,    /* formline */
1412         ck_fun,         /* ord */
1413         ck_fun,         /* chr */
1414         ck_fun,         /* crypt */
1415         ck_fun,         /* ucfirst */
1416         ck_fun,         /* lcfirst */
1417         ck_fun,         /* uc */
1418         ck_fun,         /* lc */
1419         ck_rvconst,     /* rv2av */
1420         ck_null,        /* aelemfast */
1421         ck_aelem,       /* aelem */
1422         ck_null,        /* aslice */
1423         ck_fun,         /* each */
1424         ck_fun,         /* values */
1425         ck_fun,         /* keys */
1426         ck_null,        /* delete */
1427         ck_rvconst,     /* rv2hv */
1428         ck_null,        /* helem */
1429         ck_null,        /* hslice */
1430         ck_fun,         /* unpack */
1431         ck_fun,         /* pack */
1432         ck_split,       /* split */
1433         ck_fun,         /* join */
1434         ck_null,        /* list */
1435         ck_null,        /* lslice */
1436         ck_null,        /* anonlist */
1437         ck_null,        /* anonhash */
1438         ck_fun,         /* splice */
1439         ck_fun,         /* push */
1440         ck_shift,       /* pop */
1441         ck_shift,       /* shift */
1442         ck_fun,         /* unshift */
1443         ck_sort,        /* sort */
1444         ck_fun,         /* reverse */
1445         ck_grep,        /* grepstart */
1446         ck_null,        /* grepwhile */
1447         ck_null,        /* range */
1448         ck_null,        /* flip */
1449         ck_null,        /* flop */
1450         ck_null,        /* and */
1451         ck_null,        /* or */
1452         ck_null,        /* cond_expr */
1453         ck_null,        /* andassign */
1454         ck_null,        /* orassign */
1455         ck_null,        /* method */
1456         ck_subr,        /* entersubr */
1457         ck_null,        /* leavesubr */
1458         ck_fun,         /* caller */
1459         ck_fun,         /* warn */
1460         ck_fun,         /* die */
1461         ck_fun,         /* reset */
1462         ck_null,        /* lineseq */
1463         ck_null,        /* nextstate */
1464         ck_null,        /* dbstate */
1465         ck_null,        /* unstack */
1466         ck_null,        /* enter */
1467         ck_null,        /* leave */
1468         ck_null,        /* scope */
1469         ck_null,        /* enteriter */
1470         ck_null,        /* iter */
1471         ck_null,        /* enterloop */
1472         ck_null,        /* leaveloop */
1473         ck_fun,         /* return */
1474         ck_null,        /* last */
1475         ck_null,        /* next */
1476         ck_null,        /* redo */
1477         ck_null,        /* dump */
1478         ck_null,        /* goto */
1479         ck_fun,         /* exit */
1480         ck_null,        /* nswitch */
1481         ck_null,        /* cswitch */
1482         ck_fun,         /* open */
1483         ck_fun,         /* close */
1484         ck_fun,         /* pipe_op */
1485         ck_fun,         /* fileno */
1486         ck_fun,         /* umask */
1487         ck_fun,         /* binmode */
1488         ck_fun,         /* tie */
1489         ck_fun,         /* untie */
1490         ck_fun,         /* dbmopen */
1491         ck_fun,         /* dbmclose */
1492         ck_select,      /* sselect */
1493         ck_select,      /* select */
1494         ck_eof,         /* getc */
1495         ck_fun,         /* read */
1496         ck_fun,         /* enterwrite */
1497         ck_null,        /* leavewrite */
1498         ck_listiob,     /* prtf */
1499         ck_listiob,     /* print */
1500         ck_fun,         /* sysread */
1501         ck_fun,         /* syswrite */
1502         ck_fun,         /* send */
1503         ck_fun,         /* recv */
1504         ck_eof,         /* eof */
1505         ck_fun,         /* tell */
1506         ck_fun,         /* seek */
1507         ck_trunc,       /* truncate */
1508         ck_fun,         /* fcntl */
1509         ck_fun,         /* ioctl */
1510         ck_fun,         /* flock */
1511         ck_fun,         /* socket */
1512         ck_fun,         /* sockpair */
1513         ck_fun,         /* bind */
1514         ck_fun,         /* connect */
1515         ck_fun,         /* listen */
1516         ck_fun,         /* accept */
1517         ck_fun,         /* shutdown */
1518         ck_fun,         /* gsockopt */
1519         ck_fun,         /* ssockopt */
1520         ck_fun,         /* getsockname */
1521         ck_fun,         /* getpeername */
1522         ck_ftst,        /* lstat */
1523         ck_ftst,        /* stat */
1524         ck_ftst,        /* ftrread */
1525         ck_ftst,        /* ftrwrite */
1526         ck_ftst,        /* ftrexec */
1527         ck_ftst,        /* fteread */
1528         ck_ftst,        /* ftewrite */
1529         ck_ftst,        /* fteexec */
1530         ck_ftst,        /* ftis */
1531         ck_ftst,        /* fteowned */
1532         ck_ftst,        /* ftrowned */
1533         ck_ftst,        /* ftzero */
1534         ck_ftst,        /* ftsize */
1535         ck_ftst,        /* ftmtime */
1536         ck_ftst,        /* ftatime */
1537         ck_ftst,        /* ftctime */
1538         ck_ftst,        /* ftsock */
1539         ck_ftst,        /* ftchr */
1540         ck_ftst,        /* ftblk */
1541         ck_ftst,        /* ftfile */
1542         ck_ftst,        /* ftdir */
1543         ck_ftst,        /* ftpipe */
1544         ck_ftst,        /* ftlink */
1545         ck_ftst,        /* ftsuid */
1546         ck_ftst,        /* ftsgid */
1547         ck_ftst,        /* ftsvtx */
1548         ck_ftst,        /* fttty */
1549         ck_ftst,        /* fttext */
1550         ck_ftst,        /* ftbinary */
1551         ck_fun,         /* chdir */
1552         ck_fun,         /* chown */
1553         ck_fun,         /* chroot */
1554         ck_fun,         /* unlink */
1555         ck_fun,         /* chmod */
1556         ck_fun,         /* utime */
1557         ck_fun,         /* rename */
1558         ck_fun,         /* link */
1559         ck_fun,         /* symlink */
1560         ck_fun,         /* readlink */
1561         ck_fun,         /* mkdir */
1562         ck_fun,         /* rmdir */
1563         ck_fun,         /* open_dir */
1564         ck_fun,         /* readdir */
1565         ck_fun,         /* telldir */
1566         ck_fun,         /* seekdir */
1567         ck_fun,         /* rewinddir */
1568         ck_fun,         /* closedir */
1569         ck_null,        /* fork */
1570         ck_null,        /* wait */
1571         ck_fun,         /* waitpid */
1572         ck_exec,        /* system */
1573         ck_exec,        /* exec */
1574         ck_fun,         /* kill */
1575         ck_null,        /* getppid */
1576         ck_fun,         /* getpgrp */
1577         ck_fun,         /* setpgrp */
1578         ck_fun,         /* getpriority */
1579         ck_fun,         /* setpriority */
1580         ck_null,        /* time */
1581         ck_null,        /* tms */
1582         ck_fun,         /* localtime */
1583         ck_fun,         /* gmtime */
1584         ck_fun,         /* alarm */
1585         ck_fun,         /* sleep */
1586         ck_fun,         /* shmget */
1587         ck_fun,         /* shmctl */
1588         ck_fun,         /* shmread */
1589         ck_fun,         /* shmwrite */
1590         ck_fun,         /* msgget */
1591         ck_fun,         /* msgctl */
1592         ck_fun,         /* msgsnd */
1593         ck_fun,         /* msgrcv */
1594         ck_fun,         /* semget */
1595         ck_fun,         /* semctl */
1596         ck_fun,         /* semop */
1597         ck_fun,         /* require */
1598         ck_fun,         /* dofile */
1599         ck_eval,        /* entereval */
1600         ck_null,        /* leaveeval */
1601         ck_null,        /* evalonce */
1602         ck_null,        /* entertry */
1603         ck_null,        /* leavetry */
1604         ck_fun,         /* ghbyname */
1605         ck_fun,         /* ghbyaddr */
1606         ck_null,        /* ghostent */
1607         ck_fun,         /* gnbyname */
1608         ck_fun,         /* gnbyaddr */
1609         ck_null,        /* gnetent */
1610         ck_fun,         /* gpbyname */
1611         ck_fun,         /* gpbynumber */
1612         ck_null,        /* gprotoent */
1613         ck_fun,         /* gsbyname */
1614         ck_fun,         /* gsbyport */
1615         ck_null,        /* gservent */
1616         ck_fun,         /* shostent */
1617         ck_fun,         /* snetent */
1618         ck_fun,         /* sprotoent */
1619         ck_fun,         /* sservent */
1620         ck_null,        /* ehostent */
1621         ck_null,        /* enetent */
1622         ck_null,        /* eprotoent */
1623         ck_null,        /* eservent */
1624         ck_fun,         /* gpwnam */
1625         ck_fun,         /* gpwuid */
1626         ck_null,        /* gpwent */
1627         ck_null,        /* spwent */
1628         ck_null,        /* epwent */
1629         ck_fun,         /* ggrnam */
1630         ck_fun,         /* ggrgid */
1631         ck_null,        /* ggrent */
1632         ck_null,        /* sgrent */
1633         ck_null,        /* egrent */
1634         ck_null,        /* getlogin */
1635         ck_fun,         /* syscall */
1636 };
1637 #endif
1638
1639 #ifndef DOINIT
1640 EXT U32 opargs[];
1641 #else
1642 U32 opargs[] = {
1643         0x00000000,     /* null */
1644         0x00000000,     /* stub */
1645         0x00000104,     /* scalar */
1646         0x00000004,     /* pushmark */
1647         0x00000014,     /* wantarray */
1648         0x00000004,     /* const */
1649         0x00000000,     /* interp */
1650         0x00000044,     /* gvsv */
1651         0x00000044,     /* gv */
1652         0x00000000,     /* padsv */
1653         0x00000000,     /* padav */
1654         0x00000000,     /* padhv */
1655         0x00000000,     /* padany */
1656         0x00000000,     /* pushre */
1657         0x00000044,     /* rv2gv */
1658         0x0000001c,     /* sv2len */
1659         0x00000044,     /* rv2sv */
1660         0x00000014,     /* av2arylen */
1661         0x00000040,     /* rv2cv */
1662         0x0000020e,     /* refgen */
1663         0x0000090c,     /* ref */
1664         0x00009104,     /* bless */
1665         0x00000008,     /* backtick */
1666         0x00000008,     /* glob */
1667         0x00000008,     /* readline */
1668         0x00000008,     /* rcatline */
1669         0x00000104,     /* regcmaybe */
1670         0x00000104,     /* regcomp */
1671         0x00000040,     /* match */
1672         0x00000154,     /* subst */
1673         0x00000054,     /* substcont */
1674         0x00000114,     /* trans */
1675         0x00000004,     /* sassign */
1676         0x00002208,     /* aassign */
1677         0x00000008,     /* schop */
1678         0x00000209,     /* chop */
1679         0x00000914,     /* defined */
1680         0x00000904,     /* undef */
1681         0x0000090c,     /* study */
1682         0x00000104,     /* preinc */
1683         0x00000104,     /* predec */
1684         0x0000010c,     /* postinc */
1685         0x0000010c,     /* postdec */
1686         0x0000110e,     /* pow */
1687         0x0000110e,     /* multiply */
1688         0x0000110e,     /* divide */
1689         0x0000111e,     /* modulo */
1690         0x00001209,     /* repeat */
1691         0x0000112e,     /* add */
1692         0x0000111e,     /* intadd */
1693         0x0000110e,     /* subtract */
1694         0x0000110e,     /* concat */
1695         0x0000111e,     /* left_shift */
1696         0x0000111e,     /* right_shift */
1697         0x00001116,     /* lt */
1698         0x00001116,     /* gt */
1699         0x00001116,     /* le */
1700         0x00001116,     /* ge */
1701         0x00001116,     /* eq */
1702         0x00001116,     /* ne */
1703         0x0000111e,     /* ncmp */
1704         0x00001116,     /* slt */
1705         0x00001116,     /* sgt */
1706         0x00001116,     /* sle */
1707         0x00001116,     /* sge */
1708         0x00001116,     /* seq */
1709         0x00001116,     /* sne */
1710         0x0000111e,     /* scmp */
1711         0x0000110e,     /* bit_and */
1712         0x0000110e,     /* xor */
1713         0x0000110e,     /* bit_or */
1714         0x0000010e,     /* negate */
1715         0x00000116,     /* not */
1716         0x0000010e,     /* complement */
1717         0x0000110e,     /* atan2 */
1718         0x0000090e,     /* sin */
1719         0x0000090e,     /* cos */
1720         0x0000090c,     /* rand */
1721         0x00000904,     /* srand */
1722         0x0000090e,     /* exp */
1723         0x0000090e,     /* log */
1724         0x0000090e,     /* sqrt */
1725         0x0000090e,     /* int */
1726         0x0000091c,     /* hex */
1727         0x0000091c,     /* oct */
1728         0x0000090e,     /* abs */
1729         0x0000011c,     /* length */
1730         0x0009110c,     /* substr */
1731         0x0001111c,     /* vec */
1732         0x0009111c,     /* index */
1733         0x0009111c,     /* rindex */
1734         0x0000210d,     /* sprintf */
1735         0x00002105,     /* formline */
1736         0x0000091e,     /* ord */
1737         0x0000090e,     /* chr */
1738         0x0000110e,     /* crypt */
1739         0x0000010a,     /* ucfirst */
1740         0x0000010a,     /* lcfirst */
1741         0x0000010a,     /* uc */
1742         0x0000010a,     /* lc */
1743         0x00000048,     /* rv2av */
1744         0x00001304,     /* aelemfast */
1745         0x00001304,     /* aelem */
1746         0x00002301,     /* aslice */
1747         0x00000408,     /* each */
1748         0x00000408,     /* values */
1749         0x00000408,     /* keys */
1750         0x00001404,     /* delete */
1751         0x00000048,     /* rv2hv */
1752         0x00001404,     /* helem */
1753         0x00002401,     /* hslice */
1754         0x00001100,     /* unpack */
1755         0x0000210d,     /* pack */
1756         0x00011108,     /* split */
1757         0x0000210d,     /* join */
1758         0x00000201,     /* list */
1759         0x00022400,     /* lslice */
1760         0x00000201,     /* anonlist */
1761         0x00000201,     /* anonhash */
1762         0x00291301,     /* splice */
1763         0x0000231d,     /* push */
1764         0x00000304,     /* pop */
1765         0x00000304,     /* shift */
1766         0x0000231d,     /* unshift */
1767         0x00002d01,     /* sort */
1768         0x00000209,     /* reverse */
1769         0x00002541,     /* grepstart */
1770         0x00000048,     /* grepwhile */
1771         0x00001100,     /* range */
1772         0x00001100,     /* flip */
1773         0x00000000,     /* flop */
1774         0x00000000,     /* and */
1775         0x00000000,     /* or */
1776         0x00000000,     /* cond_expr */
1777         0x00000004,     /* andassign */
1778         0x00000004,     /* orassign */
1779         0x00000040,     /* method */
1780         0x00000241,     /* entersubr */
1781         0x00000000,     /* leavesubr */
1782         0x00000908,     /* caller */
1783         0x0000021d,     /* warn */
1784         0x0000025d,     /* die */
1785         0x00000914,     /* reset */
1786         0x00000000,     /* lineseq */
1787         0x00000004,     /* nextstate */
1788         0x00000004,     /* dbstate */
1789         0x00000004,     /* unstack */
1790         0x00000000,     /* enter */
1791         0x00000000,     /* leave */
1792         0x00000000,     /* scope */
1793         0x00000040,     /* enteriter */
1794         0x00000000,     /* iter */
1795         0x00000040,     /* enterloop */
1796         0x00000004,     /* leaveloop */
1797         0x00000241,     /* return */
1798         0x00000044,     /* last */
1799         0x00000044,     /* next */
1800         0x00000044,     /* redo */
1801         0x00000044,     /* dump */
1802         0x00000044,     /* goto */
1803         0x00000944,     /* exit */
1804         0x00000040,     /* nswitch */
1805         0x00000040,     /* cswitch */
1806         0x0000961c,     /* open */
1807         0x00000e14,     /* close */
1808         0x00006614,     /* pipe_op */
1809         0x0000061c,     /* fileno */
1810         0x0000091c,     /* umask */
1811         0x00000604,     /* binmode */
1812         0x00021755,     /* tie */
1813         0x00000714,     /* untie */
1814         0x00011414,     /* dbmopen */
1815         0x00000414,     /* dbmclose */
1816         0x00111108,     /* sselect */
1817         0x00000e0c,     /* select */
1818         0x00000e0c,     /* getc */
1819         0x0091761d,     /* read */
1820         0x00000e54,     /* enterwrite */
1821         0x00000000,     /* leavewrite */
1822         0x00002e15,     /* prtf */
1823         0x00002e15,     /* print */
1824         0x0091761d,     /* sysread */
1825         0x0091161d,     /* syswrite */
1826         0x0091161d,     /* send */
1827         0x0011761d,     /* recv */
1828         0x00000e14,     /* eof */
1829         0x00000e0c,     /* tell */
1830         0x00011604,     /* seek */
1831         0x00001114,     /* truncate */
1832         0x0001160c,     /* fcntl */
1833         0x0001160c,     /* ioctl */
1834         0x0000161c,     /* flock */
1835         0x00111614,     /* socket */
1836         0x01116614,     /* sockpair */
1837         0x00001614,     /* bind */
1838         0x00001614,     /* connect */
1839         0x00001614,     /* listen */
1840         0x0000661c,     /* accept */
1841         0x0000161c,     /* shutdown */
1842         0x00011614,     /* gsockopt */
1843         0x00111614,     /* ssockopt */
1844         0x00000614,     /* getsockname */
1845         0x00000614,     /* getpeername */
1846         0x00000600,     /* lstat */
1847         0x00000600,     /* stat */
1848         0x00000614,     /* ftrread */
1849         0x00000614,     /* ftrwrite */
1850         0x00000614,     /* ftrexec */
1851         0x00000614,     /* fteread */
1852         0x00000614,     /* ftewrite */
1853         0x00000614,     /* fteexec */
1854         0x00000614,     /* ftis */
1855         0x00000614,     /* fteowned */
1856         0x00000614,     /* ftrowned */
1857         0x00000614,     /* ftzero */
1858         0x0000061c,     /* ftsize */
1859         0x0000060c,     /* ftmtime */
1860         0x0000060c,     /* ftatime */
1861         0x0000060c,     /* ftctime */
1862         0x00000614,     /* ftsock */
1863         0x00000614,     /* ftchr */
1864         0x00000614,     /* ftblk */
1865         0x00000614,     /* ftfile */
1866         0x00000614,     /* ftdir */
1867         0x00000614,     /* ftpipe */
1868         0x00000614,     /* ftlink */
1869         0x00000614,     /* ftsuid */
1870         0x00000614,     /* ftsgid */
1871         0x00000614,     /* ftsvtx */
1872         0x00000614,     /* fttty */
1873         0x00000614,     /* fttext */
1874         0x00000614,     /* ftbinary */
1875         0x0000091c,     /* chdir */
1876         0x0000021d,     /* chown */
1877         0x0000091c,     /* chroot */
1878         0x0000021d,     /* unlink */
1879         0x0000021d,     /* chmod */
1880         0x0000021d,     /* utime */
1881         0x0000111c,     /* rename */
1882         0x0000111c,     /* link */
1883         0x0000111c,     /* symlink */
1884         0x0000090c,     /* readlink */
1885         0x0000111c,     /* mkdir */
1886         0x0000091c,     /* rmdir */
1887         0x00001614,     /* open_dir */
1888         0x00000600,     /* readdir */
1889         0x0000060c,     /* telldir */
1890         0x00001604,     /* seekdir */
1891         0x00000604,     /* rewinddir */
1892         0x00000614,     /* closedir */
1893         0x0000001c,     /* fork */
1894         0x0000001c,     /* wait */
1895         0x0000111c,     /* waitpid */
1896         0x0000291d,     /* system */
1897         0x0000295d,     /* exec */
1898         0x0000025d,     /* kill */
1899         0x0000001c,     /* getppid */
1900         0x0000091c,     /* getpgrp */
1901         0x0000111c,     /* setpgrp */
1902         0x0000111c,     /* getpriority */
1903         0x0001111c,     /* setpriority */
1904         0x0000001c,     /* time */
1905         0x00000000,     /* tms */
1906         0x00000908,     /* localtime */
1907         0x00000908,     /* gmtime */
1908         0x0000091c,     /* alarm */
1909         0x0000091c,     /* sleep */
1910         0x0001111d,     /* shmget */
1911         0x0001111d,     /* shmctl */
1912         0x0011111d,     /* shmread */
1913         0x0011111c,     /* shmwrite */
1914         0x0000111d,     /* msgget */
1915         0x0001111d,     /* msgctl */
1916         0x0001111d,     /* msgsnd */
1917         0x0111111d,     /* msgrcv */
1918         0x0001111d,     /* semget */
1919         0x0011111d,     /* semctl */
1920         0x0001111d,     /* semop */
1921         0x00000940,     /* require */
1922         0x00000140,     /* dofile */
1923         0x00000140,     /* entereval */
1924         0x00000100,     /* leaveeval */
1925         0x00000140,     /* evalonce */
1926         0x00000000,     /* entertry */
1927         0x00000000,     /* leavetry */
1928         0x00000100,     /* ghbyname */
1929         0x00001100,     /* ghbyaddr */
1930         0x00000000,     /* ghostent */
1931         0x00000100,     /* gnbyname */
1932         0x00001100,     /* gnbyaddr */
1933         0x00000000,     /* gnetent */
1934         0x00000100,     /* gpbyname */
1935         0x00000100,     /* gpbynumber */
1936         0x00000000,     /* gprotoent */
1937         0x00001100,     /* gsbyname */
1938         0x00001100,     /* gsbyport */
1939         0x00000000,     /* gservent */
1940         0x00000114,     /* shostent */
1941         0x00000114,     /* snetent */
1942         0x00000114,     /* sprotoent */
1943         0x00000114,     /* sservent */
1944         0x00000014,     /* ehostent */
1945         0x00000014,     /* enetent */
1946         0x00000014,     /* eprotoent */
1947         0x00000014,     /* eservent */
1948         0x00000100,     /* gpwnam */
1949         0x00000100,     /* gpwuid */
1950         0x00000000,     /* gpwent */
1951         0x0000001c,     /* spwent */
1952         0x0000001c,     /* epwent */
1953         0x00000100,     /* ggrnam */
1954         0x00000100,     /* ggrgid */
1955         0x00000000,     /* ggrent */
1956         0x0000001c,     /* sgrent */
1957         0x0000001c,     /* egrent */
1958         0x0000000c,     /* getlogin */
1959         0x0000211c,     /* syscall */
1960 };
1961 #endif