Commit | Line | Data |
---|---|---|
f3574cc6 DM |
1 | # -*- buffer-read-only: t -*- |
2 | # | |
3 | # lib/B/Op_private.pm | |
4 | # | |
5 | # Copyright (C) 2014 by Larry Wall and others | |
6 | # | |
7 | # You may distribute under the terms of either the GNU General Public | |
8 | # License or the Artistic License, as specified in the README file. | |
9 | # | |
10 | # !!!!!!! DO NOT EDIT THIS FILE !!!!!!! | |
00fdc80f FC |
11 | # This file is built by regen/opcode.pl from data in |
12 | # regen/op_private and pod embedded in regen/opcode.pl. | |
f3574cc6 DM |
13 | # Any changes made here will be lost! |
14 | ||
15 | =head1 NAME | |
16 | ||
17 | B::Op_private - OP op_private flag definitions | |
18 | ||
19 | =head1 SYNOPSIS | |
20 | ||
21 | use B::Op_private; | |
22 | ||
23 | # flag details for bit 7 of OP_AELEM's op_private: | |
24 | my $name = $B::Op_private::bits{aelem}{7}; # OPpLVAL_INTRO | |
25 | my $value = $B::Op_private::defines{$name}; # 128 | |
26 | my $label = $B::Op_private::labels{$name}; # LVINTRO | |
27 | ||
28 | # the bit field at bits 5..6 of OP_AELEM's op_private: | |
29 | my $bf = $B::Op_private::bits{aelem}{6}; | |
30 | my $mask = $bf->{bitmask}; # etc | |
31 | ||
32 | =head1 DESCRIPTION | |
33 | ||
dc1230de | 34 | This module provides four global hashes: |
f3574cc6 DM |
35 | |
36 | %B::Op_private::bits | |
37 | %B::Op_private::defines | |
38 | %B::Op_private::labels | |
dc1230de | 39 | %B::Op_private::ops_using |
f3574cc6 DM |
40 | |
41 | which contain information about the per-op meanings of the bits in the | |
42 | op_private field. | |
43 | ||
44 | =head2 C<%bits> | |
45 | ||
46 | This is indexed by op name and then bit number (0..7). For single bit flags, | |
47 | it returns the name of the define (if any) for that bit: | |
48 | ||
49 | $B::Op_private::bits{aelem}{7} eq 'OPpLVAL_INTRO'; | |
50 | ||
51 | For bit fields, it returns a hash ref containing details about the field. | |
52 | The same reference will be returned for all bit positions that make | |
53 | up the bit field; so for example these both return the same hash ref: | |
54 | ||
55 | $bitfield = $B::Op_private::bits{aelem}{5}; | |
56 | $bitfield = $B::Op_private::bits{aelem}{6}; | |
57 | ||
58 | The general format of this hash ref is | |
59 | ||
60 | { | |
61 | # The bit range and mask; these are always present. | |
62 | bitmin => 5, | |
63 | bitmax => 6, | |
64 | bitmask => 0x60, | |
65 | ||
66 | # (The remaining keys are optional) | |
67 | ||
68 | # The names of any defines that were requested: | |
69 | mask_def => 'OPpFOO_MASK', | |
70 | baseshift_def => 'OPpFOO_SHIFT', | |
71 | bitcount_def => 'OPpFOO_BITS', | |
72 | ||
73 | # If present, Concise etc will display the value with a 'FOO=' | |
cdb679b6 FC |
74 | # prefix. If it equals '-', then Concise will treat the bit |
75 | # field as raw bits and not try to interpret it. | |
f3574cc6 DM |
76 | label => 'FOO', |
77 | ||
2febb45a FC |
78 | # If present, specifies the names of some defines and the |
79 | # display labels that are used to assign meaning to particu- | |
80 | # lar integer values within the bit field; e.g. 3 is dis- | |
81 | # played as 'C'. | |
f3574cc6 DM |
82 | enum => [ qw( |
83 | 1 OPpFOO_A A | |
84 | 2 OPpFOO_B B | |
85 | 3 OPpFOO_C C | |
86 | )], | |
87 | ||
88 | }; | |
89 | ||
90 | ||
91 | =head2 C<%defines> | |
92 | ||
93 | This gives the value of every C<OPp> define, e.g. | |
94 | ||
95 | $B::Op_private::defines{OPpLVAL_INTRO} == 128; | |
96 | ||
97 | =head2 C<%labels> | |
98 | ||
99 | This gives the short display label for each define, as used by C<B::Concise> | |
100 | and C<perl -Dx>, e.g. | |
101 | ||
102 | $B::Op_private::labels{OPpLVAL_INTRO} eq 'LVINTRO'; | |
103 | ||
104 | If the label equals '-', then Concise will treat the bit as a raw bit and | |
105 | not try to display it symbolically. | |
106 | ||
dc1230de FC |
107 | =head2 C<%ops_using> |
108 | ||
109 | For each define, this gives a reference to an array of op names that use | |
110 | the flag. | |
111 | ||
112 | @ops_using_lvintro = @{ $B::Op_private::ops_using{OPp_LVAL_INTRO} }; | |
113 | ||
f3574cc6 DM |
114 | =cut |
115 | ||
116 | package B::Op_private; | |
117 | ||
118 | our %bits; | |
119 | ||
99275276 | 120 | |
3ae50794 | 121 | our $VERSION = "5.025011"; |
99275276 | 122 | |
f3574cc6 | 123 | $bits{$_}{3} = 'OPpENTERSUB_AMPER' for qw(entersub rv2cv); |
9e209402 | 124 | $bits{$_}{6} = 'OPpENTERSUB_DB' for qw(entersub rv2cv); |
f3574cc6 DM |
125 | $bits{$_}{2} = 'OPpENTERSUB_HASTARG' for qw(entersub rv2cv); |
126 | $bits{$_}{6} = 'OPpFLIP_LINENUM' for qw(flip flop); | |
127 | $bits{$_}{1} = 'OPpFT_ACCESS' for qw(fteexec fteread ftewrite ftrexec ftrread ftrwrite); | |
128 | $bits{$_}{4} = 'OPpFT_AFTER_t' for qw(ftatime ftbinary ftblk ftchr ftctime ftdir fteexec fteowned fteread ftewrite ftfile ftis ftlink ftmtime ftpipe ftrexec ftrowned ftrread ftrwrite ftsgid ftsize ftsock ftsuid ftsvtx fttext fttty ftzero); | |
129 | $bits{$_}{2} = 'OPpFT_STACKED' for qw(ftatime ftbinary ftblk ftchr ftctime ftdir fteexec fteowned fteread ftewrite ftfile ftis ftlink ftmtime ftpipe ftrexec ftrowned ftrread ftrwrite ftsgid ftsize ftsock ftsuid ftsvtx fttext fttty ftzero); | |
130 | $bits{$_}{3} = 'OPpFT_STACKING' for qw(ftatime ftbinary ftblk ftchr ftctime ftdir fteexec fteowned fteread ftewrite ftfile ftis ftlink ftmtime ftpipe ftrexec ftrowned ftrread ftrwrite ftsgid ftsize ftsock ftsuid ftsvtx fttext fttty ftzero); | |
fedf30e1 | 131 | $bits{$_}{1} = 'OPpHINT_STRICT_REFS' for qw(entersub multideref rv2av rv2cv rv2gv rv2hv rv2sv); |
f3574cc6 | 132 | $bits{$_}{5} = 'OPpHUSH_VMSISH' for qw(dbstate nextstate); |
93661e56 | 133 | $bits{$_}{1} = 'OPpITER_REVERSED' for qw(enteriter iter); |
f3574cc6 | 134 | $bits{$_}{7} = 'OPpLVALUE' for qw(leave leaveloop); |
fedf30e1 | 135 | $bits{$_}{6} = 'OPpLVAL_DEFER' for qw(aelem helem multideref); |
692044df | 136 | $bits{$_}{7} = 'OPpLVAL_INTRO' for qw(aelem aslice cond_expr delete enteriter entersub gvsv helem hslice list lvavref lvref lvrefslice multideref padav padhv padrange padsv pushmark refassign rv2av rv2gv rv2hv rv2sv split); |
6102323a | 137 | $bits{$_}{2} = 'OPpLVREF_ELEM' for qw(lvref refassign); |
5a36b2c0 | 138 | $bits{$_}{3} = 'OPpLVREF_ITER' for qw(lvref refassign); |
cd642408 | 139 | $bits{$_}{3} = 'OPpMAYBE_LVSUB' for qw(aassign aelem akeys aslice av2arylen avhvswitch helem hslice keys kvaslice kvhslice multideref padav padhv pos rv2av rv2gv rv2hv substr vec); |
9e209402 | 140 | $bits{$_}{4} = 'OPpMAYBE_TRUEBOOL' for qw(padhv rv2hv); |
f3574cc6 DM |
141 | $bits{$_}{7} = 'OPpOFFBYONE' for qw(caller runcv wantarray); |
142 | $bits{$_}{5} = 'OPpOPEN_IN_CRLF' for qw(backtick open); | |
143 | $bits{$_}{4} = 'OPpOPEN_IN_RAW' for qw(backtick open); | |
144 | $bits{$_}{7} = 'OPpOPEN_OUT_CRLF' for qw(backtick open); | |
145 | $bits{$_}{6} = 'OPpOPEN_OUT_RAW' for qw(backtick open); | |
9e209402 FC |
146 | $bits{$_}{6} = 'OPpOUR_INTRO' for qw(enteriter gvsv rv2av rv2hv rv2sv split); |
147 | $bits{$_}{6} = 'OPpPAD_STATE' for qw(lvavref lvref padav padhv padsv pushmark refassign); | |
f3574cc6 DM |
148 | $bits{$_}{7} = 'OPpPV_IS_UTF8' for qw(dump goto last next redo); |
149 | $bits{$_}{6} = 'OPpREFCOUNTED' for qw(leave leaveeval leavesub leavesublv leavewrite); | |
f3574cc6 | 150 | $bits{$_}{2} = 'OPpSLICEWARNING' for qw(aslice hslice padav padhv rv2av rv2hv); |
f7563eba | 151 | $bits{$_}{4} = 'OPpTARGET_MY' for qw(abs add atan2 chdir chmod chomp chown chr chroot concat cos crypt divide exec exp flock getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_subtract index int kill left_shift length link log mkdir modulo multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push rand rename right_shift rindex rmdir schomp scomplement setpgrp setpriority sin sleep sqrt srand stringify subtract symlink system time unlink unshift utime wait waitpid); |
f3574cc6 DM |
152 | $bits{$_}{5} = 'OPpTRANS_COMPLEMENT' for qw(trans transr); |
153 | $bits{$_}{7} = 'OPpTRANS_DELETE' for qw(trans transr); | |
154 | $bits{$_}{0} = 'OPpTRANS_FROM_UTF' for qw(trans transr); | |
155 | $bits{$_}{6} = 'OPpTRANS_GROWS' for qw(trans transr); | |
156 | $bits{$_}{2} = 'OPpTRANS_IDENTICAL' for qw(trans transr); | |
157 | $bits{$_}{3} = 'OPpTRANS_SQUASH' for qw(trans transr); | |
158 | $bits{$_}{1} = 'OPpTRANS_TO_UTF' for qw(trans transr); | |
159 | $bits{$_}{5} = 'OPpTRUEBOOL' for qw(padhv rv2hv); | |
160 | ||
161 | my @bf = ( | |
162 | { | |
163 | label => '-', | |
164 | mask_def => 'OPpARG1_MASK', | |
165 | bitmin => 0, | |
166 | bitmax => 0, | |
167 | bitmask => 1, | |
168 | }, | |
169 | { | |
170 | label => '-', | |
171 | mask_def => 'OPpARG2_MASK', | |
172 | bitmin => 0, | |
173 | bitmax => 1, | |
174 | bitmask => 3, | |
175 | }, | |
176 | { | |
e1e26374 DM |
177 | label => 'offset', |
178 | mask_def => 'OPpAVHVSWITCH_MASK', | |
73665bc4 FC |
179 | bitmin => 0, |
180 | bitmax => 1, | |
181 | bitmask => 3, | |
182 | }, | |
183 | { | |
f3574cc6 DM |
184 | label => '-', |
185 | mask_def => 'OPpARG3_MASK', | |
186 | bitmin => 0, | |
187 | bitmax => 2, | |
188 | bitmask => 7, | |
189 | }, | |
190 | { | |
191 | label => '-', | |
192 | mask_def => 'OPpARG4_MASK', | |
193 | bitmin => 0, | |
194 | bitmax => 3, | |
195 | bitmask => 15, | |
196 | }, | |
197 | { | |
e9fb18e4 | 198 | label => 'range', |
f3574cc6 DM |
199 | mask_def => 'OPpPADRANGE_COUNTMASK', |
200 | bitcount_def => 'OPpPADRANGE_COUNTSHIFT', | |
201 | bitmin => 0, | |
202 | bitmax => 6, | |
203 | bitmask => 127, | |
204 | }, | |
205 | { | |
e9fb18e4 | 206 | label => 'key', |
f3574cc6 DM |
207 | bitmin => 0, |
208 | bitmax => 7, | |
209 | bitmask => 255, | |
210 | }, | |
211 | { | |
4fa06845 DM |
212 | mask_def => 'OPpARGELEM_MASK', |
213 | bitmin => 1, | |
214 | bitmax => 2, | |
215 | bitmask => 6, | |
216 | enum => [ | |
217 | 0, 'OPpARGELEM_SV', 'SV', | |
218 | 1, 'OPpARGELEM_AV', 'AV', | |
219 | 2, 'OPpARGELEM_HV', 'HV', | |
220 | ], | |
221 | }, | |
222 | { | |
f3574cc6 | 223 | mask_def => 'OPpDEREF', |
9e209402 FC |
224 | bitmin => 4, |
225 | bitmax => 5, | |
226 | bitmask => 48, | |
f3574cc6 DM |
227 | enum => [ |
228 | 1, 'OPpDEREF_AV', 'DREFAV', | |
229 | 2, 'OPpDEREF_HV', 'DREFHV', | |
230 | 3, 'OPpDEREF_SV', 'DREFSV', | |
231 | ], | |
232 | }, | |
7aa5b458 FC |
233 | { |
234 | mask_def => 'OPpLVREF_TYPE', | |
9e209402 FC |
235 | bitmin => 4, |
236 | bitmax => 5, | |
237 | bitmask => 48, | |
7aa5b458 FC |
238 | enum => [ |
239 | 0, 'OPpLVREF_SV', 'SV', | |
240 | 1, 'OPpLVREF_AV', 'AV', | |
241 | 2, 'OPpLVREF_HV', 'HV', | |
242 | 3, 'OPpLVREF_CV', 'CV', | |
243 | ], | |
244 | }, | |
f3574cc6 DM |
245 | ); |
246 | ||
a5f48505 | 247 | @{$bits{aassign}}{6,5,4,1,0} = ('OPpASSIGN_COMMON_SCALAR', 'OPpASSIGN_COMMON_RC1', 'OPpASSIGN_COMMON_AGG', $bf[1], $bf[1]); |
f3574cc6 | 248 | $bits{abs}{0} = $bf[0]; |
73665bc4 | 249 | @{$bits{accept}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
250 | @{$bits{add}}{1,0} = ($bf[1], $bf[1]); |
251 | $bits{aeach}{0} = $bf[0]; | |
4fa06845 | 252 | @{$bits{aelem}}{5,4,1,0} = ($bf[8], $bf[8], $bf[1], $bf[1]); |
73665bc4 FC |
253 | @{$bits{aelemfast}}{7,6,5,4,3,2,1,0} = ($bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6]); |
254 | @{$bits{aelemfast_lex}}{7,6,5,4,3,2,1,0} = ($bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6]); | |
f3574cc6 DM |
255 | $bits{akeys}{0} = $bf[0]; |
256 | $bits{alarm}{0} = $bf[0]; | |
257 | $bits{and}{0} = $bf[0]; | |
258 | $bits{andassign}{0} = $bf[0]; | |
b77472f9 | 259 | $bits{anonconst}{0} = $bf[0]; |
73665bc4 FC |
260 | @{$bits{anonhash}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
261 | @{$bits{anonlist}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
4fa06845 DM |
262 | $bits{argcheck}{0} = $bf[0]; |
263 | $bits{argdefelem}{0} = $bf[0]; | |
264 | @{$bits{argelem}}{2,1,0} = ($bf[7], $bf[7], $bf[0]); | |
73665bc4 | 265 | @{$bits{atan2}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
266 | $bits{av2arylen}{0} = $bf[0]; |
267 | $bits{avalues}{0} = $bf[0]; | |
73665bc4 | 268 | @{$bits{avhvswitch}}{1,0} = ($bf[2], $bf[2]); |
f3574cc6 | 269 | $bits{backtick}{0} = $bf[0]; |
73665bc4 FC |
270 | @{$bits{bind}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
271 | @{$bits{binmode}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
f3574cc6 DM |
272 | @{$bits{bit_and}}{1,0} = ($bf[1], $bf[1]); |
273 | @{$bits{bit_or}}{1,0} = ($bf[1], $bf[1]); | |
274 | @{$bits{bit_xor}}{1,0} = ($bf[1], $bf[1]); | |
73665bc4 FC |
275 | @{$bits{bless}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
276 | @{$bits{caller}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
277 | @{$bits{chdir}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
278 | @{$bits{chmod}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
f3574cc6 DM |
279 | $bits{chomp}{0} = $bf[0]; |
280 | $bits{chop}{0} = $bf[0]; | |
73665bc4 | 281 | @{$bits{chown}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
282 | $bits{chr}{0} = $bf[0]; |
283 | $bits{chroot}{0} = $bf[0]; | |
73665bc4 | 284 | @{$bits{close}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
285 | $bits{closedir}{0} = $bf[0]; |
286 | $bits{complement}{0} = $bf[0]; | |
287 | @{$bits{concat}}{1,0} = ($bf[1], $bf[1]); | |
288 | $bits{cond_expr}{0} = $bf[0]; | |
73665bc4 | 289 | @{$bits{connect}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
290 | @{$bits{const}}{6,4,3,2,1} = ('OPpCONST_BARE', 'OPpCONST_ENTERED', 'OPpCONST_STRICT', 'OPpCONST_SHORTCIRCUIT', 'OPpCONST_NOVER'); |
291 | @{$bits{coreargs}}{7,6,1,0} = ('OPpCOREARGS_PUSHMARK', 'OPpCOREARGS_SCALARMOD', 'OPpCOREARGS_DEREF2', 'OPpCOREARGS_DEREF1'); | |
292 | $bits{cos}{0} = $bf[0]; | |
73665bc4 | 293 | @{$bits{crypt}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 | 294 | $bits{dbmclose}{0} = $bf[0]; |
73665bc4 | 295 | @{$bits{dbmopen}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
296 | $bits{defined}{0} = $bf[0]; |
297 | @{$bits{delete}}{6,0} = ('OPpSLICE', $bf[0]); | |
73665bc4 | 298 | @{$bits{die}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
299 | @{$bits{divide}}{1,0} = ($bf[1], $bf[1]); |
300 | $bits{dofile}{0} = $bf[0]; | |
301 | $bits{dor}{0} = $bf[0]; | |
302 | $bits{dorassign}{0} = $bf[0]; | |
303 | $bits{dump}{0} = $bf[0]; | |
304 | $bits{each}{0} = $bf[0]; | |
305 | @{$bits{entereval}}{5,4,3,2,1,0} = ('OPpEVAL_RE_REPARSING', 'OPpEVAL_COPHH', 'OPpEVAL_BYTES', 'OPpEVAL_UNICODE', 'OPpEVAL_HAS_HH', $bf[0]); | |
306 | $bits{entergiven}{0} = $bf[0]; | |
307 | $bits{enteriter}{3} = 'OPpITER_DEF'; | |
4fa06845 | 308 | @{$bits{entersub}}{5,4,0} = ($bf[8], $bf[8], 'OPpENTERSUB_INARGS'); |
f3574cc6 DM |
309 | $bits{entertry}{0} = $bf[0]; |
310 | $bits{enterwhen}{0} = $bf[0]; | |
73665bc4 FC |
311 | @{$bits{enterwrite}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
312 | @{$bits{eof}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
f3574cc6 | 313 | @{$bits{eq}}{1,0} = ($bf[1], $bf[1]); |
73665bc4 | 314 | @{$bits{exec}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 | 315 | @{$bits{exists}}{6,0} = ('OPpEXISTS_SUB', $bf[0]); |
73665bc4 | 316 | @{$bits{exit}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
317 | $bits{exp}{0} = $bf[0]; |
318 | $bits{fc}{0} = $bf[0]; | |
73665bc4 FC |
319 | @{$bits{fcntl}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
320 | @{$bits{fileno}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
f3574cc6 | 321 | $bits{flip}{0} = $bf[0]; |
73665bc4 | 322 | @{$bits{flock}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 | 323 | $bits{flop}{0} = $bf[0]; |
73665bc4 | 324 | @{$bits{formline}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
325 | $bits{ftatime}{0} = $bf[0]; |
326 | $bits{ftbinary}{0} = $bf[0]; | |
327 | $bits{ftblk}{0} = $bf[0]; | |
328 | $bits{ftchr}{0} = $bf[0]; | |
329 | $bits{ftctime}{0} = $bf[0]; | |
330 | $bits{ftdir}{0} = $bf[0]; | |
331 | $bits{fteexec}{0} = $bf[0]; | |
332 | $bits{fteowned}{0} = $bf[0]; | |
333 | $bits{fteread}{0} = $bf[0]; | |
334 | $bits{ftewrite}{0} = $bf[0]; | |
335 | $bits{ftfile}{0} = $bf[0]; | |
336 | $bits{ftis}{0} = $bf[0]; | |
337 | $bits{ftlink}{0} = $bf[0]; | |
338 | $bits{ftmtime}{0} = $bf[0]; | |
339 | $bits{ftpipe}{0} = $bf[0]; | |
340 | $bits{ftrexec}{0} = $bf[0]; | |
341 | $bits{ftrowned}{0} = $bf[0]; | |
342 | $bits{ftrread}{0} = $bf[0]; | |
343 | $bits{ftrwrite}{0} = $bf[0]; | |
344 | $bits{ftsgid}{0} = $bf[0]; | |
345 | $bits{ftsize}{0} = $bf[0]; | |
346 | $bits{ftsock}{0} = $bf[0]; | |
347 | $bits{ftsuid}{0} = $bf[0]; | |
348 | $bits{ftsvtx}{0} = $bf[0]; | |
349 | $bits{fttext}{0} = $bf[0]; | |
350 | $bits{fttty}{0} = $bf[0]; | |
351 | $bits{ftzero}{0} = $bf[0]; | |
352 | @{$bits{ge}}{1,0} = ($bf[1], $bf[1]); | |
353 | @{$bits{gelem}}{1,0} = ($bf[1], $bf[1]); | |
73665bc4 | 354 | @{$bits{getc}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 | 355 | $bits{getpeername}{0} = $bf[0]; |
73665bc4 FC |
356 | @{$bits{getpgrp}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
357 | @{$bits{getpriority}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
f3574cc6 DM |
358 | $bits{getsockname}{0} = $bf[0]; |
359 | $bits{ggrgid}{0} = $bf[0]; | |
360 | $bits{ggrnam}{0} = $bf[0]; | |
73665bc4 | 361 | @{$bits{ghbyaddr}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 | 362 | $bits{ghbyname}{0} = $bf[0]; |
73665bc4 FC |
363 | @{$bits{glob}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
364 | @{$bits{gmtime}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
365 | @{$bits{gnbyaddr}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
f3574cc6 DM |
366 | $bits{gnbyname}{0} = $bf[0]; |
367 | $bits{goto}{0} = $bf[0]; | |
368 | $bits{gpbyname}{0} = $bf[0]; | |
73665bc4 | 369 | @{$bits{gpbynumber}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
370 | $bits{gpwnam}{0} = $bf[0]; |
371 | $bits{gpwuid}{0} = $bf[0]; | |
fb0c7c3c | 372 | $bits{grepstart}{0} = $bf[0]; |
f3574cc6 | 373 | $bits{grepwhile}{0} = $bf[0]; |
73665bc4 FC |
374 | @{$bits{gsbyname}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
375 | @{$bits{gsbyport}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
376 | @{$bits{gsockopt}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
f3574cc6 DM |
377 | @{$bits{gt}}{1,0} = ($bf[1], $bf[1]); |
378 | $bits{gv}{5} = 'OPpEARLY_CV'; | |
4fa06845 | 379 | @{$bits{helem}}{5,4,1,0} = ($bf[8], $bf[8], $bf[1], $bf[1]); |
f3574cc6 DM |
380 | $bits{hex}{0} = $bf[0]; |
381 | @{$bits{i_add}}{1,0} = ($bf[1], $bf[1]); | |
382 | @{$bits{i_divide}}{1,0} = ($bf[1], $bf[1]); | |
383 | @{$bits{i_eq}}{1,0} = ($bf[1], $bf[1]); | |
384 | @{$bits{i_ge}}{1,0} = ($bf[1], $bf[1]); | |
385 | @{$bits{i_gt}}{1,0} = ($bf[1], $bf[1]); | |
386 | @{$bits{i_le}}{1,0} = ($bf[1], $bf[1]); | |
387 | @{$bits{i_lt}}{1,0} = ($bf[1], $bf[1]); | |
388 | @{$bits{i_modulo}}{1,0} = ($bf[1], $bf[1]); | |
389 | @{$bits{i_multiply}}{1,0} = ($bf[1], $bf[1]); | |
390 | @{$bits{i_ncmp}}{1,0} = ($bf[1], $bf[1]); | |
391 | @{$bits{i_ne}}{1,0} = ($bf[1], $bf[1]); | |
392 | $bits{i_negate}{0} = $bf[0]; | |
393 | $bits{i_postdec}{0} = $bf[0]; | |
394 | $bits{i_postinc}{0} = $bf[0]; | |
395 | $bits{i_predec}{0} = $bf[0]; | |
396 | $bits{i_preinc}{0} = $bf[0]; | |
397 | @{$bits{i_subtract}}{1,0} = ($bf[1], $bf[1]); | |
73665bc4 | 398 | @{$bits{index}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 | 399 | $bits{int}{0} = $bf[0]; |
73665bc4 FC |
400 | @{$bits{ioctl}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
401 | @{$bits{join}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
f3574cc6 | 402 | $bits{keys}{0} = $bf[0]; |
73665bc4 | 403 | @{$bits{kill}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
404 | $bits{last}{0} = $bf[0]; |
405 | $bits{lc}{0} = $bf[0]; | |
406 | $bits{lcfirst}{0} = $bf[0]; | |
407 | @{$bits{le}}{1,0} = ($bf[1], $bf[1]); | |
408 | $bits{leaveeval}{0} = $bf[0]; | |
409 | $bits{leavegiven}{0} = $bf[0]; | |
410 | @{$bits{leaveloop}}{1,0} = ($bf[1], $bf[1]); | |
411 | $bits{leavesub}{0} = $bf[0]; | |
412 | $bits{leavesublv}{0} = $bf[0]; | |
413 | $bits{leavewhen}{0} = $bf[0]; | |
414 | $bits{leavewrite}{0} = $bf[0]; | |
415 | @{$bits{left_shift}}{1,0} = ($bf[1], $bf[1]); | |
416 | $bits{length}{0} = $bf[0]; | |
73665bc4 | 417 | @{$bits{link}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 | 418 | $bits{list}{6} = 'OPpLIST_GUESSED'; |
73665bc4 | 419 | @{$bits{listen}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
420 | $bits{localtime}{0} = $bf[0]; |
421 | $bits{lock}{0} = $bf[0]; | |
422 | $bits{log}{0} = $bf[0]; | |
423 | @{$bits{lslice}}{1,0} = ($bf[1], $bf[1]); | |
424 | $bits{lstat}{0} = $bf[0]; | |
425 | @{$bits{lt}}{1,0} = ($bf[1], $bf[1]); | |
2882b3ff | 426 | $bits{lvavref}{0} = $bf[0]; |
4fa06845 | 427 | @{$bits{lvref}}{5,4,0} = ($bf[9], $bf[9], $bf[0]); |
fb0c7c3c | 428 | $bits{mapstart}{0} = $bf[0]; |
f3574cc6 DM |
429 | $bits{mapwhile}{0} = $bf[0]; |
430 | $bits{method}{0} = $bf[0]; | |
b46e009d | 431 | $bits{method_named}{0} = $bf[0]; |
810bd8b7 | 432 | $bits{method_redir}{0} = $bf[0]; |
433 | $bits{method_redir_super}{0} = $bf[0]; | |
7d6c333c | 434 | $bits{method_super}{0} = $bf[0]; |
73665bc4 | 435 | @{$bits{mkdir}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 | 436 | @{$bits{modulo}}{1,0} = ($bf[1], $bf[1]); |
73665bc4 FC |
437 | @{$bits{msgctl}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
438 | @{$bits{msgget}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
439 | @{$bits{msgrcv}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
440 | @{$bits{msgsnd}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
fedf30e1 | 441 | @{$bits{multideref}}{5,4,0} = ('OPpMULTIDEREF_DELETE', 'OPpMULTIDEREF_EXISTS', $bf[0]); |
f3574cc6 | 442 | @{$bits{multiply}}{1,0} = ($bf[1], $bf[1]); |
5d01050a FC |
443 | @{$bits{nbit_and}}{1,0} = ($bf[1], $bf[1]); |
444 | @{$bits{nbit_or}}{1,0} = ($bf[1], $bf[1]); | |
445 | @{$bits{nbit_xor}}{1,0} = ($bf[1], $bf[1]); | |
f3574cc6 | 446 | @{$bits{ncmp}}{1,0} = ($bf[1], $bf[1]); |
5d01050a | 447 | $bits{ncomplement}{0} = $bf[0]; |
f3574cc6 DM |
448 | @{$bits{ne}}{1,0} = ($bf[1], $bf[1]); |
449 | $bits{negate}{0} = $bf[0]; | |
450 | $bits{next}{0} = $bf[0]; | |
451 | $bits{not}{0} = $bf[0]; | |
452 | $bits{oct}{0} = $bf[0]; | |
453 | $bits{once}{0} = $bf[0]; | |
73665bc4 FC |
454 | @{$bits{open}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
455 | @{$bits{open_dir}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
f3574cc6 DM |
456 | $bits{or}{0} = $bf[0]; |
457 | $bits{orassign}{0} = $bf[0]; | |
458 | $bits{ord}{0} = $bf[0]; | |
73665bc4 FC |
459 | @{$bits{pack}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
460 | @{$bits{padrange}}{6,5,4,3,2,1,0} = ($bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5]); | |
4fa06845 | 461 | @{$bits{padsv}}{5,4} = ($bf[8], $bf[8]); |
73665bc4 | 462 | @{$bits{pipe_op}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
463 | $bits{pop}{0} = $bf[0]; |
464 | $bits{pos}{0} = $bf[0]; | |
465 | $bits{postdec}{0} = $bf[0]; | |
466 | $bits{postinc}{0} = $bf[0]; | |
467 | @{$bits{pow}}{1,0} = ($bf[1], $bf[1]); | |
468 | $bits{predec}{0} = $bf[0]; | |
469 | $bits{preinc}{0} = $bf[0]; | |
470 | $bits{prototype}{0} = $bf[0]; | |
73665bc4 | 471 | @{$bits{push}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 | 472 | $bits{quotemeta}{0} = $bf[0]; |
73665bc4 | 473 | @{$bits{rand}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 | 474 | $bits{range}{0} = $bf[0]; |
73665bc4 | 475 | @{$bits{read}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
476 | $bits{readdir}{0} = $bf[0]; |
477 | $bits{readline}{0} = $bf[0]; | |
478 | $bits{readlink}{0} = $bf[0]; | |
73665bc4 | 479 | @{$bits{recv}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
480 | $bits{redo}{0} = $bf[0]; |
481 | $bits{ref}{0} = $bf[0]; | |
4fa06845 | 482 | @{$bits{refassign}}{5,4,1,0} = ($bf[9], $bf[9], $bf[1], $bf[1]); |
f3574cc6 DM |
483 | $bits{refgen}{0} = $bf[0]; |
484 | $bits{regcmaybe}{0} = $bf[0]; | |
485 | $bits{regcomp}{0} = $bf[0]; | |
486 | $bits{regcreset}{0} = $bf[0]; | |
73665bc4 | 487 | @{$bits{rename}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
488 | @{$bits{repeat}}{6,1,0} = ('OPpREPEAT_DOLIST', $bf[1], $bf[1]); |
489 | $bits{require}{0} = $bf[0]; | |
73665bc4 | 490 | @{$bits{reset}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
491 | @{$bits{reverse}}{3,0} = ('OPpREVERSE_INPLACE', $bf[0]); |
492 | $bits{rewinddir}{0} = $bf[0]; | |
493 | @{$bits{right_shift}}{1,0} = ($bf[1], $bf[1]); | |
73665bc4 | 494 | @{$bits{rindex}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
495 | $bits{rmdir}{0} = $bf[0]; |
496 | $bits{rv2av}{0} = $bf[0]; | |
9e209402 | 497 | @{$bits{rv2cv}}{7,5,0} = ('OPpENTERSUB_NOPAREN', 'OPpMAY_RETURN_CONSTANT', $bf[0]); |
4fa06845 | 498 | @{$bits{rv2gv}}{6,5,4,2,0} = ('OPpALLOW_FAKE', $bf[8], $bf[8], 'OPpDONT_INIT_GV', $bf[0]); |
f3574cc6 | 499 | $bits{rv2hv}{0} = $bf[0]; |
4fa06845 | 500 | @{$bits{rv2sv}}{5,4,0} = ($bf[8], $bf[8], $bf[0]); |
f3574cc6 | 501 | @{$bits{sassign}}{7,6,1,0} = ('OPpASSIGN_CV_TO_GV', 'OPpASSIGN_BACKWARDS', $bf[1], $bf[1]); |
5d01050a FC |
502 | @{$bits{sbit_and}}{1,0} = ($bf[1], $bf[1]); |
503 | @{$bits{sbit_or}}{1,0} = ($bf[1], $bf[1]); | |
504 | @{$bits{sbit_xor}}{1,0} = ($bf[1], $bf[1]); | |
f3574cc6 DM |
505 | $bits{scalar}{0} = $bf[0]; |
506 | $bits{schomp}{0} = $bf[0]; | |
507 | $bits{schop}{0} = $bf[0]; | |
508 | @{$bits{scmp}}{1,0} = ($bf[1], $bf[1]); | |
5d01050a | 509 | $bits{scomplement}{0} = $bf[0]; |
73665bc4 FC |
510 | @{$bits{seek}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
511 | @{$bits{seekdir}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
512 | @{$bits{select}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
513 | @{$bits{semctl}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
514 | @{$bits{semget}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
515 | @{$bits{semop}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
516 | @{$bits{send}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
f3574cc6 | 517 | @{$bits{seq}}{1,0} = ($bf[1], $bf[1]); |
73665bc4 FC |
518 | @{$bits{setpgrp}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
519 | @{$bits{setpriority}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
f3574cc6 DM |
520 | @{$bits{sge}}{1,0} = ($bf[1], $bf[1]); |
521 | @{$bits{sgt}}{1,0} = ($bf[1], $bf[1]); | |
522 | $bits{shift}{0} = $bf[0]; | |
73665bc4 FC |
523 | @{$bits{shmctl}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
524 | @{$bits{shmget}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
525 | @{$bits{shmread}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
526 | @{$bits{shmwrite}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
f3574cc6 | 527 | $bits{shostent}{0} = $bf[0]; |
73665bc4 | 528 | @{$bits{shutdown}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
529 | $bits{sin}{0} = $bf[0]; |
530 | @{$bits{sle}}{1,0} = ($bf[1], $bf[1]); | |
73665bc4 | 531 | @{$bits{sleep}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
532 | @{$bits{slt}}{1,0} = ($bf[1], $bf[1]); |
533 | @{$bits{smartmatch}}{1,0} = ($bf[1], $bf[1]); | |
534 | @{$bits{sne}}{1,0} = ($bf[1], $bf[1]); | |
535 | $bits{snetent}{0} = $bf[0]; | |
73665bc4 FC |
536 | @{$bits{socket}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
537 | @{$bits{sockpair}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
f3574cc6 | 538 | @{$bits{sort}}{6,5,4,3,2,1,0} = ('OPpSORT_STABLE', 'OPpSORT_QSORT', 'OPpSORT_DESCEND', 'OPpSORT_INPLACE', 'OPpSORT_REVERSE', 'OPpSORT_INTEGER', 'OPpSORT_NUMERIC'); |
73665bc4 | 539 | @{$bits{splice}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
692044df | 540 | @{$bits{split}}{4,3,2} = ('OPpSPLIT_ASSIGN', 'OPpSPLIT_LEX', 'OPpSPLIT_IMPLIM'); |
73665bc4 | 541 | @{$bits{sprintf}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
542 | $bits{sprotoent}{0} = $bf[0]; |
543 | $bits{sqrt}{0} = $bf[0]; | |
73665bc4 | 544 | @{$bits{srand}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 | 545 | $bits{srefgen}{0} = $bf[0]; |
73665bc4 | 546 | @{$bits{sselect}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 | 547 | $bits{sservent}{0} = $bf[0]; |
73665bc4 | 548 | @{$bits{ssockopt}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 | 549 | $bits{stat}{0} = $bf[0]; |
73665bc4 | 550 | @{$bits{stringify}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
551 | $bits{study}{0} = $bf[0]; |
552 | $bits{substcont}{0} = $bf[0]; | |
73665bc4 | 553 | @{$bits{substr}}{4,2,1,0} = ('OPpSUBSTR_REPL_FIRST', $bf[3], $bf[3], $bf[3]); |
f3574cc6 | 554 | @{$bits{subtract}}{1,0} = ($bf[1], $bf[1]); |
73665bc4 FC |
555 | @{$bits{symlink}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
556 | @{$bits{syscall}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
557 | @{$bits{sysopen}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
558 | @{$bits{sysread}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
559 | @{$bits{sysseek}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
560 | @{$bits{system}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
561 | @{$bits{syswrite}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
562 | @{$bits{tell}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
f3574cc6 | 563 | $bits{telldir}{0} = $bf[0]; |
73665bc4 | 564 | @{$bits{tie}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 | 565 | $bits{tied}{0} = $bf[0]; |
73665bc4 | 566 | @{$bits{truncate}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
567 | $bits{uc}{0} = $bf[0]; |
568 | $bits{ucfirst}{0} = $bf[0]; | |
73665bc4 | 569 | @{$bits{umask}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 | 570 | $bits{undef}{0} = $bf[0]; |
73665bc4 FC |
571 | @{$bits{unlink}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
572 | @{$bits{unpack}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
573 | @{$bits{unshift}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
f3574cc6 | 574 | $bits{untie}{0} = $bf[0]; |
73665bc4 | 575 | @{$bits{utime}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
f3574cc6 DM |
576 | $bits{values}{0} = $bf[0]; |
577 | @{$bits{vec}}{1,0} = ($bf[1], $bf[1]); | |
73665bc4 FC |
578 | @{$bits{waitpid}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); |
579 | @{$bits{warn}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]); | |
f3574cc6 DM |
580 | @{$bits{xor}}{1,0} = ($bf[1], $bf[1]); |
581 | ||
582 | ||
583 | our %defines = ( | |
9e209402 | 584 | OPpALLOW_FAKE => 64, |
f3574cc6 DM |
585 | OPpARG1_MASK => 1, |
586 | OPpARG2_MASK => 3, | |
587 | OPpARG3_MASK => 7, | |
588 | OPpARG4_MASK => 15, | |
4fa06845 DM |
589 | OPpARGELEM_AV => 2, |
590 | OPpARGELEM_HV => 4, | |
591 | OPpARGELEM_MASK => 6, | |
592 | OPpARGELEM_SV => 0, | |
f3574cc6 | 593 | OPpASSIGN_BACKWARDS => 64, |
a5f48505 DM |
594 | OPpASSIGN_COMMON_AGG => 16, |
595 | OPpASSIGN_COMMON_RC1 => 32, | |
596 | OPpASSIGN_COMMON_SCALAR => 64, | |
f3574cc6 | 597 | OPpASSIGN_CV_TO_GV => 128, |
e1e26374 | 598 | OPpAVHVSWITCH_MASK => 3, |
f3574cc6 DM |
599 | OPpCONST_BARE => 64, |
600 | OPpCONST_ENTERED => 16, | |
601 | OPpCONST_NOVER => 2, | |
602 | OPpCONST_SHORTCIRCUIT => 4, | |
603 | OPpCONST_STRICT => 8, | |
604 | OPpCOREARGS_DEREF1 => 1, | |
605 | OPpCOREARGS_DEREF2 => 2, | |
606 | OPpCOREARGS_PUSHMARK => 128, | |
607 | OPpCOREARGS_SCALARMOD => 64, | |
9e209402 FC |
608 | OPpDEREF => 48, |
609 | OPpDEREF_AV => 16, | |
610 | OPpDEREF_HV => 32, | |
611 | OPpDEREF_SV => 48, | |
f3574cc6 DM |
612 | OPpDONT_INIT_GV => 4, |
613 | OPpEARLY_CV => 32, | |
614 | OPpENTERSUB_AMPER => 8, | |
9e209402 | 615 | OPpENTERSUB_DB => 64, |
f3574cc6 DM |
616 | OPpENTERSUB_HASTARG => 4, |
617 | OPpENTERSUB_INARGS => 1, | |
618 | OPpENTERSUB_NOPAREN => 128, | |
619 | OPpEVAL_BYTES => 8, | |
620 | OPpEVAL_COPHH => 16, | |
621 | OPpEVAL_HAS_HH => 2, | |
622 | OPpEVAL_RE_REPARSING => 32, | |
623 | OPpEVAL_UNICODE => 4, | |
624 | OPpEXISTS_SUB => 64, | |
625 | OPpFLIP_LINENUM => 64, | |
626 | OPpFT_ACCESS => 2, | |
627 | OPpFT_AFTER_t => 16, | |
628 | OPpFT_STACKED => 4, | |
629 | OPpFT_STACKING => 8, | |
f3574cc6 DM |
630 | OPpHINT_STRICT_REFS => 2, |
631 | OPpHUSH_VMSISH => 32, | |
632 | OPpITER_DEF => 8, | |
93661e56 | 633 | OPpITER_REVERSED => 2, |
f3574cc6 DM |
634 | OPpLIST_GUESSED => 64, |
635 | OPpLVALUE => 128, | |
9e209402 | 636 | OPpLVAL_DEFER => 64, |
f3574cc6 | 637 | OPpLVAL_INTRO => 128, |
9e209402 FC |
638 | OPpLVREF_AV => 16, |
639 | OPpLVREF_CV => 48, | |
6102323a | 640 | OPpLVREF_ELEM => 4, |
9e209402 | 641 | OPpLVREF_HV => 32, |
5a36b2c0 | 642 | OPpLVREF_ITER => 8, |
c2380ea1 | 643 | OPpLVREF_SV => 0, |
9e209402 | 644 | OPpLVREF_TYPE => 48, |
f3574cc6 | 645 | OPpMAYBE_LVSUB => 8, |
9e209402 FC |
646 | OPpMAYBE_TRUEBOOL => 16, |
647 | OPpMAY_RETURN_CONSTANT => 32, | |
fedf30e1 DM |
648 | OPpMULTIDEREF_DELETE => 32, |
649 | OPpMULTIDEREF_EXISTS => 16, | |
f3574cc6 DM |
650 | OPpOFFBYONE => 128, |
651 | OPpOPEN_IN_CRLF => 32, | |
652 | OPpOPEN_IN_RAW => 16, | |
653 | OPpOPEN_OUT_CRLF => 128, | |
654 | OPpOPEN_OUT_RAW => 64, | |
9e209402 | 655 | OPpOUR_INTRO => 64, |
f3574cc6 DM |
656 | OPpPADRANGE_COUNTMASK => 127, |
657 | OPpPADRANGE_COUNTSHIFT => 7, | |
9e209402 | 658 | OPpPAD_STATE => 64, |
f3574cc6 DM |
659 | OPpPV_IS_UTF8 => 128, |
660 | OPpREFCOUNTED => 64, | |
661 | OPpREPEAT_DOLIST => 64, | |
662 | OPpREVERSE_INPLACE => 8, | |
f3574cc6 DM |
663 | OPpSLICE => 64, |
664 | OPpSLICEWARNING => 4, | |
665 | OPpSORT_DESCEND => 16, | |
666 | OPpSORT_INPLACE => 8, | |
667 | OPpSORT_INTEGER => 2, | |
668 | OPpSORT_NUMERIC => 1, | |
669 | OPpSORT_QSORT => 32, | |
670 | OPpSORT_REVERSE => 4, | |
671 | OPpSORT_STABLE => 64, | |
5012eebe | 672 | OPpSPLIT_ASSIGN => 16, |
692044df | 673 | OPpSPLIT_IMPLIM => 4, |
5012eebe | 674 | OPpSPLIT_LEX => 8, |
f3574cc6 DM |
675 | OPpSUBSTR_REPL_FIRST => 16, |
676 | OPpTARGET_MY => 16, | |
677 | OPpTRANS_COMPLEMENT => 32, | |
678 | OPpTRANS_DELETE => 128, | |
679 | OPpTRANS_FROM_UTF => 1, | |
680 | OPpTRANS_GROWS => 64, | |
681 | OPpTRANS_IDENTICAL => 4, | |
682 | OPpTRANS_SQUASH => 8, | |
683 | OPpTRANS_TO_UTF => 2, | |
684 | OPpTRUEBOOL => 32, | |
685 | ); | |
686 | ||
687 | our %labels = ( | |
688 | OPpALLOW_FAKE => 'FAKE', | |
4fa06845 DM |
689 | OPpARGELEM_AV => 'AV', |
690 | OPpARGELEM_HV => 'HV', | |
691 | OPpARGELEM_SV => 'SV', | |
f3574cc6 | 692 | OPpASSIGN_BACKWARDS => 'BKWARD', |
a5f48505 DM |
693 | OPpASSIGN_COMMON_AGG => 'COM_AGG', |
694 | OPpASSIGN_COMMON_RC1 => 'COM_RC1', | |
695 | OPpASSIGN_COMMON_SCALAR => 'COM_SCALAR', | |
f3574cc6 DM |
696 | OPpASSIGN_CV_TO_GV => 'CV2GV', |
697 | OPpCONST_BARE => 'BARE', | |
698 | OPpCONST_ENTERED => 'ENTERED', | |
699 | OPpCONST_NOVER => 'NOVER', | |
700 | OPpCONST_SHORTCIRCUIT => 'SHORT', | |
701 | OPpCONST_STRICT => 'STRICT', | |
702 | OPpCOREARGS_DEREF1 => 'DEREF1', | |
703 | OPpCOREARGS_DEREF2 => 'DEREF2', | |
704 | OPpCOREARGS_PUSHMARK => 'MARK', | |
705 | OPpCOREARGS_SCALARMOD => '$MOD', | |
706 | OPpDEREF_AV => 'DREFAV', | |
707 | OPpDEREF_HV => 'DREFHV', | |
708 | OPpDEREF_SV => 'DREFSV', | |
709 | OPpDONT_INIT_GV => 'NOINIT', | |
710 | OPpEARLY_CV => 'EARLYCV', | |
711 | OPpENTERSUB_AMPER => 'AMPER', | |
712 | OPpENTERSUB_DB => 'DBG', | |
713 | OPpENTERSUB_HASTARG => 'TARG', | |
714 | OPpENTERSUB_INARGS => 'INARGS', | |
715 | OPpENTERSUB_NOPAREN => 'NO()', | |
716 | OPpEVAL_BYTES => 'BYTES', | |
717 | OPpEVAL_COPHH => 'COPHH', | |
718 | OPpEVAL_HAS_HH => 'HAS_HH', | |
c486bd5c | 719 | OPpEVAL_RE_REPARSING => 'REPARSE', |
f3574cc6 DM |
720 | OPpEVAL_UNICODE => 'UNI', |
721 | OPpEXISTS_SUB => 'SUB', | |
722 | OPpFLIP_LINENUM => 'LINENUM', | |
723 | OPpFT_ACCESS => 'FTACCESS', | |
724 | OPpFT_AFTER_t => 'FTAFTERt', | |
725 | OPpFT_STACKED => 'FTSTACKED', | |
726 | OPpFT_STACKING => 'FTSTACKING', | |
c486bd5c | 727 | OPpHINT_STRICT_REFS => 'STRICT', |
f3574cc6 | 728 | OPpHUSH_VMSISH => 'HUSH', |
c486bd5c | 729 | OPpITER_DEF => 'DEF', |
f3574cc6 DM |
730 | OPpITER_REVERSED => 'REVERSED', |
731 | OPpLIST_GUESSED => 'GUESSED', | |
732 | OPpLVALUE => 'LV', | |
733 | OPpLVAL_DEFER => 'LVDEFER', | |
734 | OPpLVAL_INTRO => 'LVINTRO', | |
c2380ea1 FC |
735 | OPpLVREF_AV => 'AV', |
736 | OPpLVREF_CV => 'CV', | |
6102323a | 737 | OPpLVREF_ELEM => 'ELEM', |
c2380ea1 | 738 | OPpLVREF_HV => 'HV', |
5a36b2c0 | 739 | OPpLVREF_ITER => 'ITER', |
c2380ea1 | 740 | OPpLVREF_SV => 'SV', |
f3574cc6 DM |
741 | OPpMAYBE_LVSUB => 'LVSUB', |
742 | OPpMAYBE_TRUEBOOL => 'BOOL?', | |
743 | OPpMAY_RETURN_CONSTANT => 'CONST', | |
fedf30e1 DM |
744 | OPpMULTIDEREF_DELETE => 'DELETE', |
745 | OPpMULTIDEREF_EXISTS => 'EXISTS', | |
f3574cc6 DM |
746 | OPpOFFBYONE => '+1', |
747 | OPpOPEN_IN_CRLF => 'INCR', | |
748 | OPpOPEN_IN_RAW => 'INBIN', | |
749 | OPpOPEN_OUT_CRLF => 'OUTCR', | |
750 | OPpOPEN_OUT_RAW => 'OUTBIN', | |
751 | OPpOUR_INTRO => 'OURINTR', | |
752 | OPpPAD_STATE => 'STATE', | |
753 | OPpPV_IS_UTF8 => 'UTF', | |
754 | OPpREFCOUNTED => 'REFC', | |
755 | OPpREPEAT_DOLIST => 'DOLIST', | |
756 | OPpREVERSE_INPLACE => 'INPLACE', | |
f3574cc6 DM |
757 | OPpSLICE => 'SLICE', |
758 | OPpSLICEWARNING => 'SLICEWARN', | |
759 | OPpSORT_DESCEND => 'DESC', | |
760 | OPpSORT_INPLACE => 'INPLACE', | |
761 | OPpSORT_INTEGER => 'INT', | |
762 | OPpSORT_NUMERIC => 'NUM', | |
763 | OPpSORT_QSORT => 'QSORT', | |
764 | OPpSORT_REVERSE => 'REV', | |
765 | OPpSORT_STABLE => 'STABLE', | |
5012eebe | 766 | OPpSPLIT_ASSIGN => 'ASSIGN', |
f3574cc6 | 767 | OPpSPLIT_IMPLIM => 'IMPLIM', |
5012eebe | 768 | OPpSPLIT_LEX => 'LEX', |
f3574cc6 DM |
769 | OPpSUBSTR_REPL_FIRST => 'REPL1ST', |
770 | OPpTARGET_MY => 'TARGMY', | |
771 | OPpTRANS_COMPLEMENT => 'COMPL', | |
772 | OPpTRANS_DELETE => 'DEL', | |
773 | OPpTRANS_FROM_UTF => '<UTF', | |
774 | OPpTRANS_GROWS => 'GROWS', | |
775 | OPpTRANS_IDENTICAL => 'IDENT', | |
776 | OPpTRANS_SQUASH => 'SQUASH', | |
777 | OPpTRANS_TO_UTF => '>UTF', | |
778 | OPpTRUEBOOL => 'BOOL', | |
779 | ); | |
780 | ||
dc1230de FC |
781 | |
782 | our %ops_using = ( | |
783 | OPpALLOW_FAKE => [qw(rv2gv)], | |
784 | OPpASSIGN_BACKWARDS => [qw(sassign)], | |
a5f48505 | 785 | OPpASSIGN_COMMON_AGG => [qw(aassign)], |
dc1230de FC |
786 | OPpCONST_BARE => [qw(const)], |
787 | OPpCOREARGS_DEREF1 => [qw(coreargs)], | |
788 | OPpEARLY_CV => [qw(gv)], | |
789 | OPpENTERSUB_AMPER => [qw(entersub rv2cv)], | |
790 | OPpENTERSUB_INARGS => [qw(entersub)], | |
791 | OPpENTERSUB_NOPAREN => [qw(rv2cv)], | |
792 | OPpEVAL_BYTES => [qw(entereval)], | |
793 | OPpEXISTS_SUB => [qw(exists)], | |
794 | OPpFLIP_LINENUM => [qw(flip flop)], | |
795 | OPpFT_ACCESS => [qw(fteexec fteread ftewrite ftrexec ftrread ftrwrite)], | |
796 | OPpFT_AFTER_t => [qw(ftatime ftbinary ftblk ftchr ftctime ftdir fteexec fteowned fteread ftewrite ftfile ftis ftlink ftmtime ftpipe ftrexec ftrowned ftrread ftrwrite ftsgid ftsize ftsock ftsuid ftsvtx fttext fttty ftzero)], | |
fedf30e1 | 797 | OPpHINT_STRICT_REFS => [qw(entersub multideref rv2av rv2cv rv2gv rv2hv rv2sv)], |
dc1230de FC |
798 | OPpHUSH_VMSISH => [qw(dbstate nextstate)], |
799 | OPpITER_DEF => [qw(enteriter)], | |
800 | OPpITER_REVERSED => [qw(enteriter iter)], | |
801 | OPpLIST_GUESSED => [qw(list)], | |
802 | OPpLVALUE => [qw(leave leaveloop)], | |
fedf30e1 | 803 | OPpLVAL_DEFER => [qw(aelem helem multideref)], |
692044df | 804 | OPpLVAL_INTRO => [qw(aelem aslice cond_expr delete enteriter entersub gvsv helem hslice list lvavref lvref lvrefslice multideref padav padhv padrange padsv pushmark refassign rv2av rv2gv rv2hv rv2sv split)], |
dc1230de | 805 | OPpLVREF_ELEM => [qw(lvref refassign)], |
cd642408 | 806 | OPpMAYBE_LVSUB => [qw(aassign aelem akeys aslice av2arylen avhvswitch helem hslice keys kvaslice kvhslice multideref padav padhv pos rv2av rv2gv rv2hv substr vec)], |
dc1230de | 807 | OPpMAYBE_TRUEBOOL => [qw(padhv rv2hv)], |
fedf30e1 | 808 | OPpMULTIDEREF_DELETE => [qw(multideref)], |
dc1230de FC |
809 | OPpOFFBYONE => [qw(caller runcv wantarray)], |
810 | OPpOPEN_IN_CRLF => [qw(backtick open)], | |
811 | OPpOUR_INTRO => [qw(enteriter gvsv rv2av rv2hv rv2sv split)], | |
812 | OPpPAD_STATE => [qw(lvavref lvref padav padhv padsv pushmark refassign)], | |
813 | OPpPV_IS_UTF8 => [qw(dump goto last next redo)], | |
814 | OPpREFCOUNTED => [qw(leave leaveeval leavesub leavesublv leavewrite)], | |
815 | OPpREPEAT_DOLIST => [qw(repeat)], | |
816 | OPpREVERSE_INPLACE => [qw(reverse)], | |
dc1230de FC |
817 | OPpSLICE => [qw(delete)], |
818 | OPpSLICEWARNING => [qw(aslice hslice padav padhv rv2av rv2hv)], | |
819 | OPpSORT_DESCEND => [qw(sort)], | |
5012eebe | 820 | OPpSPLIT_ASSIGN => [qw(split)], |
dc1230de | 821 | OPpSUBSTR_REPL_FIRST => [qw(substr)], |
f7563eba | 822 | OPpTARGET_MY => [qw(abs add atan2 chdir chmod chomp chown chr chroot concat cos crypt divide exec exp flock getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_subtract index int kill left_shift length link log mkdir modulo multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push rand rename right_shift rindex rmdir schomp scomplement setpgrp setpriority sin sleep sqrt srand stringify subtract symlink system time unlink unshift utime wait waitpid)], |
dc1230de FC |
823 | OPpTRANS_COMPLEMENT => [qw(trans transr)], |
824 | ); | |
825 | ||
a5f48505 DM |
826 | $ops_using{OPpASSIGN_COMMON_RC1} = $ops_using{OPpASSIGN_COMMON_AGG}; |
827 | $ops_using{OPpASSIGN_COMMON_SCALAR} = $ops_using{OPpASSIGN_COMMON_AGG}; | |
dc1230de FC |
828 | $ops_using{OPpASSIGN_CV_TO_GV} = $ops_using{OPpASSIGN_BACKWARDS}; |
829 | $ops_using{OPpCONST_ENTERED} = $ops_using{OPpCONST_BARE}; | |
830 | $ops_using{OPpCONST_NOVER} = $ops_using{OPpCONST_BARE}; | |
831 | $ops_using{OPpCONST_SHORTCIRCUIT} = $ops_using{OPpCONST_BARE}; | |
832 | $ops_using{OPpCONST_STRICT} = $ops_using{OPpCONST_BARE}; | |
833 | $ops_using{OPpCOREARGS_DEREF2} = $ops_using{OPpCOREARGS_DEREF1}; | |
834 | $ops_using{OPpCOREARGS_PUSHMARK} = $ops_using{OPpCOREARGS_DEREF1}; | |
835 | $ops_using{OPpCOREARGS_SCALARMOD} = $ops_using{OPpCOREARGS_DEREF1}; | |
836 | $ops_using{OPpDONT_INIT_GV} = $ops_using{OPpALLOW_FAKE}; | |
837 | $ops_using{OPpENTERSUB_DB} = $ops_using{OPpENTERSUB_AMPER}; | |
838 | $ops_using{OPpENTERSUB_HASTARG} = $ops_using{OPpENTERSUB_AMPER}; | |
839 | $ops_using{OPpEVAL_COPHH} = $ops_using{OPpEVAL_BYTES}; | |
840 | $ops_using{OPpEVAL_HAS_HH} = $ops_using{OPpEVAL_BYTES}; | |
841 | $ops_using{OPpEVAL_RE_REPARSING} = $ops_using{OPpEVAL_BYTES}; | |
842 | $ops_using{OPpEVAL_UNICODE} = $ops_using{OPpEVAL_BYTES}; | |
843 | $ops_using{OPpFT_STACKED} = $ops_using{OPpFT_AFTER_t}; | |
844 | $ops_using{OPpFT_STACKING} = $ops_using{OPpFT_AFTER_t}; | |
845 | $ops_using{OPpLVREF_ITER} = $ops_using{OPpLVREF_ELEM}; | |
846 | $ops_using{OPpMAY_RETURN_CONSTANT} = $ops_using{OPpENTERSUB_NOPAREN}; | |
fedf30e1 | 847 | $ops_using{OPpMULTIDEREF_EXISTS} = $ops_using{OPpMULTIDEREF_DELETE}; |
dc1230de FC |
848 | $ops_using{OPpOPEN_IN_RAW} = $ops_using{OPpOPEN_IN_CRLF}; |
849 | $ops_using{OPpOPEN_OUT_CRLF} = $ops_using{OPpOPEN_IN_CRLF}; | |
850 | $ops_using{OPpOPEN_OUT_RAW} = $ops_using{OPpOPEN_IN_CRLF}; | |
851 | $ops_using{OPpSORT_INPLACE} = $ops_using{OPpSORT_DESCEND}; | |
852 | $ops_using{OPpSORT_INTEGER} = $ops_using{OPpSORT_DESCEND}; | |
853 | $ops_using{OPpSORT_NUMERIC} = $ops_using{OPpSORT_DESCEND}; | |
854 | $ops_using{OPpSORT_QSORT} = $ops_using{OPpSORT_DESCEND}; | |
855 | $ops_using{OPpSORT_REVERSE} = $ops_using{OPpSORT_DESCEND}; | |
856 | $ops_using{OPpSORT_STABLE} = $ops_using{OPpSORT_DESCEND}; | |
5012eebe DM |
857 | $ops_using{OPpSPLIT_IMPLIM} = $ops_using{OPpSPLIT_ASSIGN}; |
858 | $ops_using{OPpSPLIT_LEX} = $ops_using{OPpSPLIT_ASSIGN}; | |
dc1230de FC |
859 | $ops_using{OPpTRANS_DELETE} = $ops_using{OPpTRANS_COMPLEMENT}; |
860 | $ops_using{OPpTRANS_FROM_UTF} = $ops_using{OPpTRANS_COMPLEMENT}; | |
861 | $ops_using{OPpTRANS_GROWS} = $ops_using{OPpTRANS_COMPLEMENT}; | |
862 | $ops_using{OPpTRANS_IDENTICAL} = $ops_using{OPpTRANS_COMPLEMENT}; | |
863 | $ops_using{OPpTRANS_SQUASH} = $ops_using{OPpTRANS_COMPLEMENT}; | |
864 | $ops_using{OPpTRANS_TO_UTF} = $ops_using{OPpTRANS_COMPLEMENT}; | |
865 | $ops_using{OPpTRUEBOOL} = $ops_using{OPpMAYBE_TRUEBOOL}; | |
866 | ||
f3574cc6 | 867 | # ex: set ro: |