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