xref: /onnv-gate/usr/src/cmd/perl/5.8.4/distrib/ext/ByteLoader/byterun.h (revision 0:68f95e015346)
1 /*
2  *      Copyright (c) 1996-1999 Malcolm Beattie
3  *
4  *      You may distribute under the terms of either the GNU General Public
5  *      License or the Artistic License, as specified in the README file.
6  *
7  */
8 /*
9  * This file is autogenerated from bytecode.pl. Changes made here will be lost.
10  */
11 struct byteloader_fdata {
12     SV	*datasv;
13     int next_out;
14     int	idx;
15 };
16 
17 struct byteloader_state {
18     struct byteloader_fdata	*bs_fdata;
19     SV				*bs_sv;
20     void			**bs_obj_list;
21     int				bs_obj_list_fill;
22     int				bs_ix;
23     XPV				bs_pv;
24     int				bs_iv_overflows;
25 };
26 
27 int bl_getc(struct byteloader_fdata *);
28 int bl_read(struct byteloader_fdata *, char *, size_t, size_t);
29 extern int byterun(pTHX_ struct byteloader_state *);
30 
31 enum {
32     INSN_RET,			/* 0 */
33     INSN_LDSV,			/* 1 */
34     INSN_LDOP,			/* 2 */
35     INSN_STSV,			/* 3 */
36     INSN_STOP,			/* 4 */
37     INSN_STPV,			/* 5 */
38     INSN_LDSPECSV,			/* 6 */
39     INSN_LDSPECSVX,			/* 7 */
40     INSN_NEWSV,			/* 8 */
41     INSN_NEWSVX,			/* 9 */
42     INSN_NOP,			/* 10 */
43     INSN_NEWOP,			/* 11 */
44     INSN_NEWOPX,			/* 12 */
45     INSN_NEWOPN,			/* 13 */
46     INSN_NEWPV,			/* 14 */
47     INSN_PV_CUR,			/* 15 */
48     INSN_PV_FREE,			/* 16 */
49     INSN_SV_UPGRADE,			/* 17 */
50     INSN_SV_REFCNT,			/* 18 */
51     INSN_SV_REFCNT_ADD,			/* 19 */
52     INSN_SV_FLAGS,			/* 20 */
53     INSN_XRV,			/* 21 */
54     INSN_XPV,			/* 22 */
55     INSN_XPV_CUR,			/* 23 */
56     INSN_XPV_LEN,			/* 24 */
57     INSN_XIV,			/* 25 */
58     INSN_XNV,			/* 26 */
59     INSN_XLV_TARGOFF,			/* 27 */
60     INSN_XLV_TARGLEN,			/* 28 */
61     INSN_XLV_TARG,			/* 29 */
62     INSN_XLV_TYPE,			/* 30 */
63     INSN_XBM_USEFUL,			/* 31 */
64     INSN_XBM_PREVIOUS,			/* 32 */
65     INSN_XBM_RARE,			/* 33 */
66     INSN_XFM_LINES,			/* 34 */
67     INSN_COMMENT,			/* 35 */
68     INSN_XIO_LINES,			/* 36 */
69     INSN_XIO_PAGE,			/* 37 */
70     INSN_XIO_PAGE_LEN,			/* 38 */
71     INSN_XIO_LINES_LEFT,			/* 39 */
72     INSN_XIO_TOP_NAME,			/* 40 */
73     INSN_XIO_TOP_GV,			/* 41 */
74     INSN_XIO_FMT_NAME,			/* 42 */
75     INSN_XIO_FMT_GV,			/* 43 */
76     INSN_XIO_BOTTOM_NAME,			/* 44 */
77     INSN_XIO_BOTTOM_GV,			/* 45 */
78     INSN_XIO_SUBPROCESS,			/* 46 */
79     INSN_XIO_TYPE,			/* 47 */
80     INSN_XIO_FLAGS,			/* 48 */
81     INSN_XCV_XSUBANY,			/* 49 */
82     INSN_XCV_STASH,			/* 50 */
83     INSN_XCV_START,			/* 51 */
84     INSN_XCV_ROOT,			/* 52 */
85     INSN_XCV_GV,			/* 53 */
86     INSN_XCV_FILE,			/* 54 */
87     INSN_XCV_DEPTH,			/* 55 */
88     INSN_XCV_PADLIST,			/* 56 */
89     INSN_XCV_OUTSIDE,			/* 57 */
90     INSN_XCV_OUTSIDE_SEQ,			/* 58 */
91     INSN_XCV_FLAGS,			/* 59 */
92     INSN_AV_EXTEND,			/* 60 */
93     INSN_AV_PUSHX,			/* 61 */
94     INSN_AV_PUSH,			/* 62 */
95     INSN_XAV_FILL,			/* 63 */
96     INSN_XAV_MAX,			/* 64 */
97     INSN_XAV_FLAGS,			/* 65 */
98     INSN_XHV_RITER,			/* 66 */
99     INSN_XHV_NAME,			/* 67 */
100     INSN_XHV_PMROOT,			/* 68 */
101     INSN_HV_STORE,			/* 69 */
102     INSN_SV_MAGIC,			/* 70 */
103     INSN_MG_OBJ,			/* 71 */
104     INSN_MG_PRIVATE,			/* 72 */
105     INSN_MG_FLAGS,			/* 73 */
106     INSN_MG_NAME,			/* 74 */
107     INSN_MG_NAMEX,			/* 75 */
108     INSN_XMG_STASH,			/* 76 */
109     INSN_GV_FETCHPV,			/* 77 */
110     INSN_GV_FETCHPVX,			/* 78 */
111     INSN_GV_STASHPV,			/* 79 */
112     INSN_GV_STASHPVX,			/* 80 */
113     INSN_GP_SV,			/* 81 */
114     INSN_GP_REFCNT,			/* 82 */
115     INSN_GP_REFCNT_ADD,			/* 83 */
116     INSN_GP_AV,			/* 84 */
117     INSN_GP_HV,			/* 85 */
118     INSN_GP_CV,			/* 86 */
119     INSN_GP_FILE,			/* 87 */
120     INSN_GP_IO,			/* 88 */
121     INSN_GP_FORM,			/* 89 */
122     INSN_GP_CVGEN,			/* 90 */
123     INSN_GP_LINE,			/* 91 */
124     INSN_GP_SHARE,			/* 92 */
125     INSN_XGV_FLAGS,			/* 93 */
126     INSN_OP_NEXT,			/* 94 */
127     INSN_OP_SIBLING,			/* 95 */
128     INSN_OP_PPADDR,			/* 96 */
129     INSN_OP_TARG,			/* 97 */
130     INSN_OP_TYPE,			/* 98 */
131     INSN_OP_SEQ,			/* 99 */
132     INSN_OP_FLAGS,			/* 100 */
133     INSN_OP_PRIVATE,			/* 101 */
134     INSN_OP_FIRST,			/* 102 */
135     INSN_OP_LAST,			/* 103 */
136     INSN_OP_OTHER,			/* 104 */
137     INSN_OP_PMREPLROOT,			/* 105 */
138     INSN_OP_PMREPLSTART,			/* 106 */
139     INSN_OP_PMNEXT,			/* 107 */
140     INSN_OP_PMSTASHPV,			/* 108 */
141     INSN_OP_PMREPLROOTPO,			/* 109 */
142     INSN_OP_PMSTASH,			/* 110 */
143     INSN_OP_PMREPLROOTGV,			/* 111 */
144     INSN_PREGCOMP,			/* 112 */
145     INSN_OP_PMFLAGS,			/* 113 */
146     INSN_OP_PMPERMFLAGS,			/* 114 */
147     INSN_OP_PMDYNFLAGS,			/* 115 */
148     INSN_OP_SV,			/* 116 */
149     INSN_OP_PADIX,			/* 117 */
150     INSN_OP_PV,			/* 118 */
151     INSN_OP_PV_TR,			/* 119 */
152     INSN_OP_REDOOP,			/* 120 */
153     INSN_OP_NEXTOP,			/* 121 */
154     INSN_OP_LASTOP,			/* 122 */
155     INSN_COP_LABEL,			/* 123 */
156     INSN_COP_STASHPV,			/* 124 */
157     INSN_COP_FILE,			/* 125 */
158     INSN_COP_STASH,			/* 126 */
159     INSN_COP_FILEGV,			/* 127 */
160     INSN_COP_SEQ,			/* 128 */
161     INSN_COP_ARYBASE,			/* 129 */
162     INSN_COP_LINE,			/* 130 */
163     INSN_COP_IO,			/* 131 */
164     INSN_COP_WARNINGS,			/* 132 */
165     INSN_MAIN_START,			/* 133 */
166     INSN_MAIN_ROOT,			/* 134 */
167     INSN_MAIN_CV,			/* 135 */
168     INSN_CURPAD,			/* 136 */
169     INSN_PUSH_BEGIN,			/* 137 */
170     INSN_PUSH_INIT,			/* 138 */
171     INSN_PUSH_END,			/* 139 */
172     INSN_CURSTASH,			/* 140 */
173     INSN_DEFSTASH,			/* 141 */
174     INSN_DATA,			/* 142 */
175     INSN_INCAV,			/* 143 */
176     INSN_LOAD_GLOB,			/* 144 */
177     INSN_REGEX_PADAV,			/* 145 */
178     INSN_DOWARN,			/* 146 */
179     INSN_COMPPAD_NAME,			/* 147 */
180     INSN_XGV_STASH,			/* 148 */
181     INSN_SIGNAL,			/* 149 */
182     INSN_FORMFEED,			/* 150 */
183     MAX_INSN = 150
184 };
185 
186 enum {
187     OPt_OP,		/* 0 */
188     OPt_UNOP,		/* 1 */
189     OPt_BINOP,		/* 2 */
190     OPt_LOGOP,		/* 3 */
191     OPt_LISTOP,		/* 4 */
192     OPt_PMOP,		/* 5 */
193     OPt_SVOP,		/* 6 */
194     OPt_PADOP,		/* 7 */
195     OPt_PVOP,		/* 8 */
196     OPt_LOOP,		/* 9 */
197     OPt_COP		/* 10 */
198 };
199 
200