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