1 # -*- buffer-read-only: t -*-
5 # Copyright (C) 2014 by Larry Wall and others
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.
10 # !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
11 # This file is built by regen/opcode.pl from data in
12 # regen/op_private and pod embedded in regen/opcode.pl.
13 # Any changes made here will be lost!
17 B::Op_private - OP op_private flag definitions
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
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
34 This module provides three global hashes:
37 %B::Op_private::defines
38 %B::Op_private::labels
40 which contain information about the per-op meanings of the bits in the
45 This is indexed by op name and then bit number (0..7). For single bit flags,
46 it returns the name of the define (if any) for that bit:
48 $B::Op_private::bits{aelem}{7} eq 'OPpLVAL_INTRO';
50 For bit fields, it returns a hash ref containing details about the field.
51 The same reference will be returned for all bit positions that make
52 up the bit field; so for example these both return the same hash ref:
54 $bitfield = $B::Op_private::bits{aelem}{5};
55 $bitfield = $B::Op_private::bits{aelem}{6};
57 The general format of this hash ref is
60 # The bit range and mask; these are always present.
65 # (The remaining keys are optional)
67 # The names of any defines that were requested:
68 mask_def => 'OPpFOO_MASK',
69 baseshift_def => 'OPpFOO_SHIFT',
70 bitcount_def => 'OPpFOO_BITS',
72 # If present, Concise etc will display the value with a 'FOO='
73 # prefix. If it equals '-', then Concise will treat the bit
74 # field as raw bits and not try to interpret it.
77 # If present, specifies the names of some defines and the
78 # display labels that are used to assign meaning to particu-
79 # lar integer values within the bit field; e.g. 3 is dis-
92 This gives the value of every C<OPp> define, e.g.
94 $B::Op_private::defines{OPpLVAL_INTRO} == 128;
98 This gives the short display label for each define, as used by C<B::Concise>
101 $B::Op_private::labels{OPpLVAL_INTRO} eq 'LVINTRO';
103 If the label equals '-', then Concise will treat the bit as a raw bit and
104 not try to display it symbolically.
108 package B::Op_private;
113 our $VERSION = "5.021005";
115 $bits{$_}{3} = 'OPpENTERSUB_AMPER' for qw(entersub rv2cv);
116 $bits{$_}{4} = 'OPpENTERSUB_DB' for qw(entersub rv2cv);
117 $bits{$_}{2} = 'OPpENTERSUB_HASTARG' for qw(entersub rv2cv);
118 $bits{$_}{6} = 'OPpFLIP_LINENUM' for qw(flip flop);
119 $bits{$_}{1} = 'OPpFT_ACCESS' for qw(fteexec fteread ftewrite ftrexec ftrread ftrwrite);
120 $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);
121 $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);
122 $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);
123 $bits{$_}{1} = 'OPpGREP_LEX' for qw(grepstart grepwhile mapstart mapwhile);
124 $bits{$_}{6} = 'OPpHINT_M_VMSISH_STATUS' for qw(dbstate nextstate);
125 $bits{$_}{7} = 'OPpHINT_M_VMSISH_TIME' for qw(dbstate nextstate);
126 $bits{$_}{1} = 'OPpHINT_STRICT_REFS' for qw(entersub rv2av rv2cv rv2gv rv2hv rv2sv);
127 $bits{$_}{5} = 'OPpHUSH_VMSISH' for qw(dbstate nextstate);
128 $bits{$_}{2} = 'OPpITER_REVERSED' for qw(enteriter iter);
129 $bits{$_}{7} = 'OPpLVALUE' for qw(leave leaveloop);
130 $bits{$_}{4} = 'OPpLVAL_DEFER' for qw(aelem helem);
131 $bits{$_}{7} = 'OPpLVAL_INTRO' for qw(aelem aslice cond_expr delete enteriter entersub gvsv helem hslice list padav padhv padrange padsv pos pushmark rv2av rv2gv rv2hv rv2sv substr vec);
132 $bits{$_}{3} = 'OPpMAYBE_LVSUB' for qw(aassign aelem aslice av2arylen helem hslice keys kvaslice kvhslice padav padhv pos rkeys rv2av rv2gv rv2hv substr vec);
133 $bits{$_}{6} = 'OPpMAYBE_TRUEBOOL' for qw(padhv rv2hv);
134 $bits{$_}{7} = 'OPpOFFBYONE' for qw(caller runcv wantarray);
135 $bits{$_}{5} = 'OPpOPEN_IN_CRLF' for qw(backtick open);
136 $bits{$_}{4} = 'OPpOPEN_IN_RAW' for qw(backtick open);
137 $bits{$_}{7} = 'OPpOPEN_OUT_CRLF' for qw(backtick open);
138 $bits{$_}{6} = 'OPpOPEN_OUT_RAW' for qw(backtick open);
139 $bits{$_}{4} = 'OPpOUR_INTRO' for qw(enteriter gvsv rv2av rv2hv rv2sv);
140 $bits{$_}{4} = 'OPpPAD_STATE' for qw(padav padhv padsv pushmark);
141 $bits{$_}{7} = 'OPpPV_IS_UTF8' for qw(dump goto last next redo);
142 $bits{$_}{6} = 'OPpREFCOUNTED' for qw(leave leaveeval leavesub leavesublv leavewrite);
143 $bits{$_}{6} = 'OPpRUNTIME' for qw(match pushre qr subst substcont);
144 $bits{$_}{2} = 'OPpSLICEWARNING' for qw(aslice hslice padav padhv rv2av rv2hv);
145 $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_negate i_postdec i_postinc i_subtract index int kill left_shift length link log match mkdir modulo multiply oct ord pow push rand rename right_shift rindex rmdir schomp setpgrp setpriority sin sleep sqrt srand stringify subst subtract symlink system time trans transr unlink unshift utime wait waitpid);
146 $bits{$_}{5} = 'OPpTRANS_COMPLEMENT' for qw(trans transr);
147 $bits{$_}{7} = 'OPpTRANS_DELETE' for qw(trans transr);
148 $bits{$_}{0} = 'OPpTRANS_FROM_UTF' for qw(trans transr);
149 $bits{$_}{6} = 'OPpTRANS_GROWS' for qw(trans transr);
150 $bits{$_}{2} = 'OPpTRANS_IDENTICAL' for qw(trans transr);
151 $bits{$_}{3} = 'OPpTRANS_SQUASH' for qw(trans transr);
152 $bits{$_}{1} = 'OPpTRANS_TO_UTF' for qw(trans transr);
153 $bits{$_}{5} = 'OPpTRUEBOOL' for qw(padhv rv2hv);
158 mask_def => 'OPpARG1_MASK',
165 mask_def => 'OPpARG2_MASK',
172 mask_def => 'OPpARG3_MASK',
179 mask_def => 'OPpARG4_MASK',
186 mask_def => 'OPpPADRANGE_COUNTMASK',
187 bitcount_def => 'OPpPADRANGE_COUNTSHIFT',
199 mask_def => 'OPpDEREF',
204 1, 'OPpDEREF_AV', 'DREFAV',
205 2, 'OPpDEREF_HV', 'DREFHV',
206 3, 'OPpDEREF_SV', 'DREFSV',
211 @{$bits{aassign}}{6,1,0} = ('OPpASSIGN_COMMON', $bf[1], $bf[1]);
212 $bits{abs}{0} = $bf[0];
213 @{$bits{accept}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
214 @{$bits{add}}{1,0} = ($bf[1], $bf[1]);
215 $bits{aeach}{0} = $bf[0];
216 @{$bits{aelem}}{6,5,1,0} = ($bf[6], $bf[6], $bf[1], $bf[1]);
217 @{$bits{aelemfast}}{7,6,5,4,3,2,1,0} = ($bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5]);
218 @{$bits{aelemfast_lex}}{7,6,5,4,3,2,1,0} = ($bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5]);
219 $bits{akeys}{0} = $bf[0];
220 $bits{alarm}{0} = $bf[0];
221 $bits{and}{0} = $bf[0];
222 $bits{andassign}{0} = $bf[0];
223 @{$bits{anonhash}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
224 @{$bits{anonlist}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
225 @{$bits{atan2}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
226 $bits{av2arylen}{0} = $bf[0];
227 $bits{avalues}{0} = $bf[0];
228 $bits{backtick}{0} = $bf[0];
229 @{$bits{bind}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
230 @{$bits{binmode}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
231 @{$bits{bit_and}}{1,0} = ($bf[1], $bf[1]);
232 @{$bits{bit_or}}{1,0} = ($bf[1], $bf[1]);
233 @{$bits{bit_xor}}{1,0} = ($bf[1], $bf[1]);
234 @{$bits{bless}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
235 @{$bits{caller}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
236 @{$bits{chdir}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
237 @{$bits{chmod}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
238 $bits{chomp}{0} = $bf[0];
239 $bits{chop}{0} = $bf[0];
240 @{$bits{chown}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
241 $bits{chr}{0} = $bf[0];
242 $bits{chroot}{0} = $bf[0];
243 @{$bits{close}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
244 $bits{closedir}{0} = $bf[0];
245 $bits{complement}{0} = $bf[0];
246 @{$bits{concat}}{1,0} = ($bf[1], $bf[1]);
247 $bits{cond_expr}{0} = $bf[0];
248 @{$bits{connect}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
249 @{$bits{const}}{6,4,3,2,1} = ('OPpCONST_BARE', 'OPpCONST_ENTERED', 'OPpCONST_STRICT', 'OPpCONST_SHORTCIRCUIT', 'OPpCONST_NOVER');
250 @{$bits{coreargs}}{7,6,1,0} = ('OPpCOREARGS_PUSHMARK', 'OPpCOREARGS_SCALARMOD', 'OPpCOREARGS_DEREF2', 'OPpCOREARGS_DEREF1');
251 $bits{cos}{0} = $bf[0];
252 @{$bits{crypt}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
253 $bits{dbmclose}{0} = $bf[0];
254 @{$bits{dbmopen}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
255 $bits{defined}{0} = $bf[0];
256 @{$bits{delete}}{6,0} = ('OPpSLICE', $bf[0]);
257 @{$bits{die}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
258 @{$bits{divide}}{1,0} = ($bf[1], $bf[1]);
259 $bits{dofile}{0} = $bf[0];
260 $bits{dor}{0} = $bf[0];
261 $bits{dorassign}{0} = $bf[0];
262 $bits{dump}{0} = $bf[0];
263 $bits{each}{0} = $bf[0];
264 @{$bits{entereval}}{5,4,3,2,1,0} = ('OPpEVAL_RE_REPARSING', 'OPpEVAL_COPHH', 'OPpEVAL_BYTES', 'OPpEVAL_UNICODE', 'OPpEVAL_HAS_HH', $bf[0]);
265 $bits{entergiven}{0} = $bf[0];
266 $bits{enteriter}{3} = 'OPpITER_DEF';
267 @{$bits{entersub}}{6,5,0} = ($bf[6], $bf[6], 'OPpENTERSUB_INARGS');
268 $bits{entertry}{0} = $bf[0];
269 $bits{enterwhen}{0} = $bf[0];
270 @{$bits{enterwrite}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
271 @{$bits{eof}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
272 @{$bits{eq}}{1,0} = ($bf[1], $bf[1]);
273 @{$bits{exec}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
274 @{$bits{exists}}{6,0} = ('OPpEXISTS_SUB', $bf[0]);
275 @{$bits{exit}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
276 $bits{exp}{0} = $bf[0];
277 $bits{fc}{0} = $bf[0];
278 @{$bits{fcntl}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
279 @{$bits{fileno}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
280 $bits{flip}{0} = $bf[0];
281 @{$bits{flock}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
282 $bits{flop}{0} = $bf[0];
283 @{$bits{formline}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
284 $bits{ftatime}{0} = $bf[0];
285 $bits{ftbinary}{0} = $bf[0];
286 $bits{ftblk}{0} = $bf[0];
287 $bits{ftchr}{0} = $bf[0];
288 $bits{ftctime}{0} = $bf[0];
289 $bits{ftdir}{0} = $bf[0];
290 $bits{fteexec}{0} = $bf[0];
291 $bits{fteowned}{0} = $bf[0];
292 $bits{fteread}{0} = $bf[0];
293 $bits{ftewrite}{0} = $bf[0];
294 $bits{ftfile}{0} = $bf[0];
295 $bits{ftis}{0} = $bf[0];
296 $bits{ftlink}{0} = $bf[0];
297 $bits{ftmtime}{0} = $bf[0];
298 $bits{ftpipe}{0} = $bf[0];
299 $bits{ftrexec}{0} = $bf[0];
300 $bits{ftrowned}{0} = $bf[0];
301 $bits{ftrread}{0} = $bf[0];
302 $bits{ftrwrite}{0} = $bf[0];
303 $bits{ftsgid}{0} = $bf[0];
304 $bits{ftsize}{0} = $bf[0];
305 $bits{ftsock}{0} = $bf[0];
306 $bits{ftsuid}{0} = $bf[0];
307 $bits{ftsvtx}{0} = $bf[0];
308 $bits{fttext}{0} = $bf[0];
309 $bits{fttty}{0} = $bf[0];
310 $bits{ftzero}{0} = $bf[0];
311 @{$bits{ge}}{1,0} = ($bf[1], $bf[1]);
312 @{$bits{gelem}}{1,0} = ($bf[1], $bf[1]);
313 @{$bits{getc}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
314 $bits{getpeername}{0} = $bf[0];
315 @{$bits{getpgrp}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
316 @{$bits{getpriority}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
317 $bits{getsockname}{0} = $bf[0];
318 $bits{ggrgid}{0} = $bf[0];
319 $bits{ggrnam}{0} = $bf[0];
320 @{$bits{ghbyaddr}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
321 $bits{ghbyname}{0} = $bf[0];
322 @{$bits{glob}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
323 @{$bits{gmtime}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
324 @{$bits{gnbyaddr}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
325 $bits{gnbyname}{0} = $bf[0];
326 $bits{goto}{0} = $bf[0];
327 $bits{gpbyname}{0} = $bf[0];
328 @{$bits{gpbynumber}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
329 $bits{gpwnam}{0} = $bf[0];
330 $bits{gpwuid}{0} = $bf[0];
331 $bits{grepwhile}{0} = $bf[0];
332 @{$bits{gsbyname}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
333 @{$bits{gsbyport}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
334 @{$bits{gsockopt}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
335 @{$bits{gt}}{1,0} = ($bf[1], $bf[1]);
336 $bits{gv}{5} = 'OPpEARLY_CV';
337 @{$bits{helem}}{6,5,1,0} = ($bf[6], $bf[6], $bf[1], $bf[1]);
338 $bits{hex}{0} = $bf[0];
339 @{$bits{i_add}}{1,0} = ($bf[1], $bf[1]);
340 @{$bits{i_divide}}{1,0} = ($bf[1], $bf[1]);
341 @{$bits{i_eq}}{1,0} = ($bf[1], $bf[1]);
342 @{$bits{i_ge}}{1,0} = ($bf[1], $bf[1]);
343 @{$bits{i_gt}}{1,0} = ($bf[1], $bf[1]);
344 @{$bits{i_le}}{1,0} = ($bf[1], $bf[1]);
345 @{$bits{i_lt}}{1,0} = ($bf[1], $bf[1]);
346 @{$bits{i_modulo}}{1,0} = ($bf[1], $bf[1]);
347 @{$bits{i_multiply}}{1,0} = ($bf[1], $bf[1]);
348 @{$bits{i_ncmp}}{1,0} = ($bf[1], $bf[1]);
349 @{$bits{i_ne}}{1,0} = ($bf[1], $bf[1]);
350 $bits{i_negate}{0} = $bf[0];
351 $bits{i_postdec}{0} = $bf[0];
352 $bits{i_postinc}{0} = $bf[0];
353 $bits{i_predec}{0} = $bf[0];
354 $bits{i_preinc}{0} = $bf[0];
355 @{$bits{i_subtract}}{1,0} = ($bf[1], $bf[1]);
356 @{$bits{index}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
357 $bits{int}{0} = $bf[0];
358 @{$bits{ioctl}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
359 @{$bits{join}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
360 $bits{keys}{0} = $bf[0];
361 @{$bits{kill}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
362 $bits{last}{0} = $bf[0];
363 $bits{lc}{0} = $bf[0];
364 $bits{lcfirst}{0} = $bf[0];
365 @{$bits{le}}{1,0} = ($bf[1], $bf[1]);
366 $bits{leaveeval}{0} = $bf[0];
367 $bits{leavegiven}{0} = $bf[0];
368 @{$bits{leaveloop}}{1,0} = ($bf[1], $bf[1]);
369 $bits{leavesub}{0} = $bf[0];
370 $bits{leavesublv}{0} = $bf[0];
371 $bits{leavewhen}{0} = $bf[0];
372 $bits{leavewrite}{0} = $bf[0];
373 @{$bits{left_shift}}{1,0} = ($bf[1], $bf[1]);
374 $bits{length}{0} = $bf[0];
375 @{$bits{link}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
376 $bits{list}{6} = 'OPpLIST_GUESSED';
377 @{$bits{listen}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
378 $bits{localtime}{0} = $bf[0];
379 $bits{lock}{0} = $bf[0];
380 $bits{log}{0} = $bf[0];
381 @{$bits{lslice}}{1,0} = ($bf[1], $bf[1]);
382 $bits{lstat}{0} = $bf[0];
383 @{$bits{lt}}{1,0} = ($bf[1], $bf[1]);
384 $bits{mapwhile}{0} = $bf[0];
385 $bits{method}{0} = $bf[0];
386 @{$bits{mkdir}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
387 @{$bits{modulo}}{1,0} = ($bf[1], $bf[1]);
388 @{$bits{msgctl}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
389 @{$bits{msgget}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
390 @{$bits{msgrcv}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
391 @{$bits{msgsnd}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
392 @{$bits{multiply}}{1,0} = ($bf[1], $bf[1]);
393 @{$bits{ncmp}}{1,0} = ($bf[1], $bf[1]);
394 @{$bits{ne}}{1,0} = ($bf[1], $bf[1]);
395 $bits{negate}{0} = $bf[0];
396 $bits{next}{0} = $bf[0];
397 $bits{not}{0} = $bf[0];
398 $bits{oct}{0} = $bf[0];
399 $bits{once}{0} = $bf[0];
400 @{$bits{open}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
401 @{$bits{open_dir}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
402 $bits{or}{0} = $bf[0];
403 $bits{orassign}{0} = $bf[0];
404 $bits{ord}{0} = $bf[0];
405 @{$bits{pack}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
406 @{$bits{padrange}}{6,5,4,3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4], $bf[4], $bf[4], $bf[4]);
407 @{$bits{padsv}}{6,5} = ($bf[6], $bf[6]);
408 @{$bits{pipe_op}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
409 $bits{pop}{0} = $bf[0];
410 $bits{pos}{0} = $bf[0];
411 $bits{postdec}{0} = $bf[0];
412 $bits{postinc}{0} = $bf[0];
413 @{$bits{pow}}{1,0} = ($bf[1], $bf[1]);
414 $bits{predec}{0} = $bf[0];
415 $bits{preinc}{0} = $bf[0];
416 $bits{prototype}{0} = $bf[0];
417 @{$bits{push}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
418 $bits{quotemeta}{0} = $bf[0];
419 @{$bits{rand}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
420 $bits{range}{0} = $bf[0];
421 $bits{reach}{0} = $bf[0];
422 @{$bits{read}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
423 $bits{readdir}{0} = $bf[0];
424 $bits{readline}{0} = $bf[0];
425 $bits{readlink}{0} = $bf[0];
426 @{$bits{recv}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
427 $bits{redo}{0} = $bf[0];
428 $bits{ref}{0} = $bf[0];
429 $bits{refgen}{0} = $bf[0];
430 $bits{regcmaybe}{0} = $bf[0];
431 $bits{regcomp}{0} = $bf[0];
432 $bits{regcreset}{0} = $bf[0];
433 @{$bits{rename}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
434 @{$bits{repeat}}{6,1,0} = ('OPpREPEAT_DOLIST', $bf[1], $bf[1]);
435 $bits{require}{0} = $bf[0];
436 @{$bits{reset}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
437 @{$bits{reverse}}{3,0} = ('OPpREVERSE_INPLACE', $bf[0]);
438 $bits{rewinddir}{0} = $bf[0];
439 @{$bits{right_shift}}{1,0} = ($bf[1], $bf[1]);
440 @{$bits{rindex}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
441 $bits{rkeys}{0} = $bf[0];
442 $bits{rmdir}{0} = $bf[0];
443 $bits{rv2av}{0} = $bf[0];
444 @{$bits{rv2cv}}{7,6,0} = ('OPpENTERSUB_NOPAREN', 'OPpMAY_RETURN_CONSTANT', $bf[0]);
445 @{$bits{rv2gv}}{6,5,4,2,0} = ($bf[6], $bf[6], 'OPpALLOW_FAKE', 'OPpDONT_INIT_GV', $bf[0]);
446 $bits{rv2hv}{0} = $bf[0];
447 @{$bits{rv2sv}}{6,5,0} = ($bf[6], $bf[6], $bf[0]);
448 $bits{rvalues}{0} = $bf[0];
449 @{$bits{sassign}}{7,6,1,0} = ('OPpASSIGN_CV_TO_GV', 'OPpASSIGN_BACKWARDS', $bf[1], $bf[1]);
450 $bits{scalar}{0} = $bf[0];
451 $bits{schomp}{0} = $bf[0];
452 $bits{schop}{0} = $bf[0];
453 @{$bits{scmp}}{1,0} = ($bf[1], $bf[1]);
454 @{$bits{seek}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
455 @{$bits{seekdir}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
456 @{$bits{select}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
457 @{$bits{semctl}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
458 @{$bits{semget}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
459 @{$bits{semop}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
460 @{$bits{send}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
461 @{$bits{seq}}{1,0} = ($bf[1], $bf[1]);
462 @{$bits{setpgrp}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
463 @{$bits{setpriority}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
464 @{$bits{sge}}{1,0} = ($bf[1], $bf[1]);
465 @{$bits{sgt}}{1,0} = ($bf[1], $bf[1]);
466 $bits{shift}{0} = $bf[0];
467 @{$bits{shmctl}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
468 @{$bits{shmget}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
469 @{$bits{shmread}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
470 @{$bits{shmwrite}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
471 $bits{shostent}{0} = $bf[0];
472 @{$bits{shutdown}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
473 $bits{sin}{0} = $bf[0];
474 @{$bits{sle}}{1,0} = ($bf[1], $bf[1]);
475 @{$bits{sleep}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
476 @{$bits{slt}}{1,0} = ($bf[1], $bf[1]);
477 @{$bits{smartmatch}}{1,0} = ($bf[1], $bf[1]);
478 @{$bits{sne}}{1,0} = ($bf[1], $bf[1]);
479 $bits{snetent}{0} = $bf[0];
480 @{$bits{socket}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
481 @{$bits{sockpair}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
482 @{$bits{sort}}{6,5,4,3,2,1,0} = ('OPpSORT_STABLE', 'OPpSORT_QSORT', 'OPpSORT_DESCEND', 'OPpSORT_INPLACE', 'OPpSORT_REVERSE', 'OPpSORT_INTEGER', 'OPpSORT_NUMERIC');
483 @{$bits{splice}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
484 $bits{split}{7} = 'OPpSPLIT_IMPLIM';
485 @{$bits{sprintf}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
486 $bits{sprotoent}{0} = $bf[0];
487 $bits{sqrt}{0} = $bf[0];
488 @{$bits{srand}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
489 $bits{srefgen}{0} = $bf[0];
490 @{$bits{sselect}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
491 $bits{sservent}{0} = $bf[0];
492 @{$bits{ssockopt}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
493 $bits{stat}{0} = $bf[0];
494 @{$bits{stringify}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
495 $bits{study}{0} = $bf[0];
496 $bits{substcont}{0} = $bf[0];
497 @{$bits{substr}}{4,2,1,0} = ('OPpSUBSTR_REPL_FIRST', $bf[2], $bf[2], $bf[2]);
498 @{$bits{subtract}}{1,0} = ($bf[1], $bf[1]);
499 @{$bits{symlink}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
500 @{$bits{syscall}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
501 @{$bits{sysopen}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
502 @{$bits{sysread}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
503 @{$bits{sysseek}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
504 @{$bits{system}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
505 @{$bits{syswrite}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
506 @{$bits{tell}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
507 $bits{telldir}{0} = $bf[0];
508 @{$bits{tie}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
509 $bits{tied}{0} = $bf[0];
510 @{$bits{truncate}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
511 $bits{uc}{0} = $bf[0];
512 $bits{ucfirst}{0} = $bf[0];
513 @{$bits{umask}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
514 $bits{undef}{0} = $bf[0];
515 @{$bits{unlink}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
516 @{$bits{unpack}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
517 @{$bits{unshift}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
518 $bits{untie}{0} = $bf[0];
519 @{$bits{utime}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
520 $bits{values}{0} = $bf[0];
521 @{$bits{vec}}{1,0} = ($bf[1], $bf[1]);
522 @{$bits{waitpid}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
523 @{$bits{warn}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
524 @{$bits{xor}}{1,0} = ($bf[1], $bf[1]);
533 OPpASSIGN_BACKWARDS => 64,
534 OPpASSIGN_COMMON => 64,
535 OPpASSIGN_CV_TO_GV => 128,
537 OPpCONST_ENTERED => 16,
539 OPpCONST_SHORTCIRCUIT => 4,
540 OPpCONST_STRICT => 8,
541 OPpCOREARGS_DEREF1 => 1,
542 OPpCOREARGS_DEREF2 => 2,
543 OPpCOREARGS_PUSHMARK => 128,
544 OPpCOREARGS_SCALARMOD => 64,
549 OPpDONT_INIT_GV => 4,
551 OPpENTERSUB_AMPER => 8,
552 OPpENTERSUB_DB => 16,
553 OPpENTERSUB_HASTARG => 4,
554 OPpENTERSUB_INARGS => 1,
555 OPpENTERSUB_NOPAREN => 128,
559 OPpEVAL_RE_REPARSING => 32,
560 OPpEVAL_UNICODE => 4,
562 OPpFLIP_LINENUM => 64,
568 OPpHINT_M_VMSISH_STATUS => 64,
569 OPpHINT_M_VMSISH_TIME => 128,
570 OPpHINT_STRICT_REFS => 2,
571 OPpHUSH_VMSISH => 32,
573 OPpITER_REVERSED => 4,
574 OPpLIST_GUESSED => 64,
577 OPpLVAL_INTRO => 128,
579 OPpMAYBE_TRUEBOOL => 64,
580 OPpMAY_RETURN_CONSTANT => 64,
582 OPpOPEN_IN_CRLF => 32,
583 OPpOPEN_IN_RAW => 16,
584 OPpOPEN_OUT_CRLF => 128,
585 OPpOPEN_OUT_RAW => 64,
587 OPpPADRANGE_COUNTMASK => 127,
588 OPpPADRANGE_COUNTSHIFT => 7,
590 OPpPV_IS_UTF8 => 128,
592 OPpREPEAT_DOLIST => 64,
593 OPpREVERSE_INPLACE => 8,
596 OPpSLICEWARNING => 4,
597 OPpSORT_DESCEND => 16,
598 OPpSORT_INPLACE => 8,
599 OPpSORT_INTEGER => 2,
600 OPpSORT_NUMERIC => 1,
602 OPpSORT_REVERSE => 4,
603 OPpSORT_STABLE => 64,
604 OPpSPLIT_IMPLIM => 128,
605 OPpSUBSTR_REPL_FIRST => 16,
607 OPpTRANS_COMPLEMENT => 32,
608 OPpTRANS_DELETE => 128,
609 OPpTRANS_FROM_UTF => 1,
610 OPpTRANS_GROWS => 64,
611 OPpTRANS_IDENTICAL => 4,
612 OPpTRANS_SQUASH => 8,
613 OPpTRANS_TO_UTF => 2,
618 OPpALLOW_FAKE => 'FAKE',
619 OPpASSIGN_BACKWARDS => 'BKWARD',
620 OPpASSIGN_COMMON => 'COMMON',
621 OPpASSIGN_CV_TO_GV => 'CV2GV',
622 OPpCONST_BARE => 'BARE',
623 OPpCONST_ENTERED => 'ENTERED',
624 OPpCONST_NOVER => 'NOVER',
625 OPpCONST_SHORTCIRCUIT => 'SHORT',
626 OPpCONST_STRICT => 'STRICT',
627 OPpCOREARGS_DEREF1 => 'DEREF1',
628 OPpCOREARGS_DEREF2 => 'DEREF2',
629 OPpCOREARGS_PUSHMARK => 'MARK',
630 OPpCOREARGS_SCALARMOD => '$MOD',
631 OPpDEREF_AV => 'DREFAV',
632 OPpDEREF_HV => 'DREFHV',
633 OPpDEREF_SV => 'DREFSV',
634 OPpDONT_INIT_GV => 'NOINIT',
635 OPpEARLY_CV => 'EARLYCV',
636 OPpENTERSUB_AMPER => 'AMPER',
637 OPpENTERSUB_DB => 'DBG',
638 OPpENTERSUB_HASTARG => 'TARG',
639 OPpENTERSUB_INARGS => 'INARGS',
640 OPpENTERSUB_NOPAREN => 'NO()',
641 OPpEVAL_BYTES => 'BYTES',
642 OPpEVAL_COPHH => 'COPHH',
643 OPpEVAL_HAS_HH => 'HAS_HH',
644 OPpEVAL_RE_REPARSING => 'REPARSE',
645 OPpEVAL_UNICODE => 'UNI',
646 OPpEXISTS_SUB => 'SUB',
647 OPpFLIP_LINENUM => 'LINENUM',
648 OPpFT_ACCESS => 'FTACCESS',
649 OPpFT_AFTER_t => 'FTAFTERt',
650 OPpFT_STACKED => 'FTSTACKED',
651 OPpFT_STACKING => 'FTSTACKING',
652 OPpGREP_LEX => 'GREPLEX',
653 OPpHINT_M_VMSISH_STATUS => 'VMSISH_STATUS',
654 OPpHINT_M_VMSISH_TIME => 'VMSISH_TIME',
655 OPpHINT_STRICT_REFS => 'STRICT',
656 OPpHUSH_VMSISH => 'HUSH',
657 OPpITER_DEF => 'DEF',
658 OPpITER_REVERSED => 'REVERSED',
659 OPpLIST_GUESSED => 'GUESSED',
661 OPpLVAL_DEFER => 'LVDEFER',
662 OPpLVAL_INTRO => 'LVINTRO',
663 OPpMAYBE_LVSUB => 'LVSUB',
664 OPpMAYBE_TRUEBOOL => 'BOOL?',
665 OPpMAY_RETURN_CONSTANT => 'CONST',
667 OPpOPEN_IN_CRLF => 'INCR',
668 OPpOPEN_IN_RAW => 'INBIN',
669 OPpOPEN_OUT_CRLF => 'OUTCR',
670 OPpOPEN_OUT_RAW => 'OUTBIN',
671 OPpOUR_INTRO => 'OURINTR',
672 OPpPAD_STATE => 'STATE',
673 OPpPV_IS_UTF8 => 'UTF',
674 OPpREFCOUNTED => 'REFC',
675 OPpREPEAT_DOLIST => 'DOLIST',
676 OPpREVERSE_INPLACE => 'INPLACE',
677 OPpRUNTIME => 'RTIME',
679 OPpSLICEWARNING => 'SLICEWARN',
680 OPpSORT_DESCEND => 'DESC',
681 OPpSORT_INPLACE => 'INPLACE',
682 OPpSORT_INTEGER => 'INT',
683 OPpSORT_NUMERIC => 'NUM',
684 OPpSORT_QSORT => 'QSORT',
685 OPpSORT_REVERSE => 'REV',
686 OPpSORT_STABLE => 'STABLE',
687 OPpSPLIT_IMPLIM => 'IMPLIM',
688 OPpSUBSTR_REPL_FIRST => 'REPL1ST',
689 OPpTARGET_MY => 'TARGMY',
690 OPpTRANS_COMPLEMENT => 'COMPL',
691 OPpTRANS_DELETE => 'DEL',
692 OPpTRANS_FROM_UTF => '<UTF',
693 OPpTRANS_GROWS => 'GROWS',
694 OPpTRANS_IDENTICAL => 'IDENT',
695 OPpTRANS_SQUASH => 'SQUASH',
696 OPpTRANS_TO_UTF => '>UTF',
697 OPpTRUEBOOL => 'BOOL',