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 four global hashes:
37 %B::Op_private::defines
38 %B::Op_private::labels
39 %B::Op_private::ops_using
41 which contain information about the per-op meanings of the bits in the
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:
49 $B::Op_private::bits{aelem}{7} eq 'OPpLVAL_INTRO';
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:
55 $bitfield = $B::Op_private::bits{aelem}{5};
56 $bitfield = $B::Op_private::bits{aelem}{6};
58 The general format of this hash ref is
61 # The bit range and mask; these are always present.
66 # (The remaining keys are optional)
68 # The names of any defines that were requested:
69 mask_def => 'OPpFOO_MASK',
70 baseshift_def => 'OPpFOO_SHIFT',
71 bitcount_def => 'OPpFOO_BITS',
73 # If present, Concise etc will display the value with a 'FOO='
74 # prefix. If it equals '-', then Concise will treat the bit
75 # field as raw bits and not try to interpret it.
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-
93 This gives the value of every C<OPp> define, e.g.
95 $B::Op_private::defines{OPpLVAL_INTRO} == 128;
99 This gives the short display label for each define, as used by C<B::Concise>
100 and C<perl -Dx>, e.g.
102 $B::Op_private::labels{OPpLVAL_INTRO} eq 'LVINTRO';
104 If the label equals '-', then Concise will treat the bit as a raw bit and
105 not try to display it symbolically.
109 For each define, this gives a reference to an array of op names that use
112 @ops_using_lvintro = @{ $B::Op_private::ops_using{OPp_LVAL_INTRO} };
116 package B::Op_private;
121 our $VERSION = "5.027007";
123 $bits{$_}{3} = 'OPpENTERSUB_AMPER' for qw(entersub rv2cv);
124 $bits{$_}{6} = 'OPpENTERSUB_DB' for qw(entersub rv2cv);
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);
131 $bits{$_}{1} = 'OPpHINT_STRICT_REFS' for qw(entersub multideref rv2av rv2cv rv2gv rv2hv rv2sv);
132 $bits{$_}{5} = 'OPpHUSH_VMSISH' for qw(dbstate nextstate);
133 $bits{$_}{6} = 'OPpINDEX_BOOLNEG' for qw(index rindex);
134 $bits{$_}{1} = 'OPpITER_REVERSED' for qw(enteriter iter);
135 $bits{$_}{7} = 'OPpLVALUE' for qw(leave leaveloop);
136 $bits{$_}{6} = 'OPpLVAL_DEFER' for qw(aelem helem multideref);
137 $bits{$_}{7} = 'OPpLVAL_INTRO' for qw(aelem aslice cond_expr delete enteriter entersub gvsv helem hslice list lvavref lvref lvrefslice multiconcat multideref padav padhv padrange padsv pushmark refassign rv2av rv2gv rv2hv rv2sv split);
138 $bits{$_}{2} = 'OPpLVREF_ELEM' for qw(lvref refassign);
139 $bits{$_}{3} = 'OPpLVREF_ITER' for qw(lvref refassign);
140 $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 values vec);
141 $bits{$_}{4} = 'OPpMAYBE_TRUEBOOL' for qw(padhv ref rv2hv);
142 $bits{$_}{7} = 'OPpOFFBYONE' for qw(caller runcv wantarray);
143 $bits{$_}{5} = 'OPpOPEN_IN_CRLF' for qw(backtick open);
144 $bits{$_}{4} = 'OPpOPEN_IN_RAW' for qw(backtick open);
145 $bits{$_}{7} = 'OPpOPEN_OUT_CRLF' for qw(backtick open);
146 $bits{$_}{6} = 'OPpOPEN_OUT_RAW' for qw(backtick open);
147 $bits{$_}{6} = 'OPpOUR_INTRO' for qw(enteriter gvsv rv2av rv2hv rv2sv split);
148 $bits{$_}{6} = 'OPpPAD_STATE' for qw(lvavref lvref padav padhv padsv pushmark refassign);
149 $bits{$_}{7} = 'OPpPV_IS_UTF8' for qw(dump goto last next redo);
150 $bits{$_}{6} = 'OPpREFCOUNTED' for qw(leave leaveeval leavesub leavesublv leavewrite);
151 $bits{$_}{2} = 'OPpSLICEWARNING' for qw(aslice hslice padav padhv rv2av rv2hv);
152 $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 multiconcat 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);
153 $bits{$_}{5} = 'OPpTRANS_COMPLEMENT' for qw(trans transr);
154 $bits{$_}{7} = 'OPpTRANS_DELETE' for qw(trans transr);
155 $bits{$_}{0} = 'OPpTRANS_FROM_UTF' for qw(trans transr);
156 $bits{$_}{6} = 'OPpTRANS_GROWS' for qw(trans transr);
157 $bits{$_}{2} = 'OPpTRANS_IDENTICAL' for qw(trans transr);
158 $bits{$_}{3} = 'OPpTRANS_SQUASH' for qw(trans transr);
159 $bits{$_}{1} = 'OPpTRANS_TO_UTF' for qw(trans transr);
160 $bits{$_}{5} = 'OPpTRUEBOOL' for qw(grepwhile index length padav padhv pos ref rindex rv2av rv2hv subst);
165 mask_def => 'OPpARG1_MASK',
172 mask_def => 'OPpARG2_MASK',
179 mask_def => 'OPpAVHVSWITCH_MASK',
186 mask_def => 'OPpARG3_MASK',
193 mask_def => 'OPpARG4_MASK',
200 mask_def => 'OPpPADRANGE_COUNTMASK',
201 bitcount_def => 'OPpPADRANGE_COUNTSHIFT',
213 mask_def => 'OPpARGELEM_MASK',
218 0, 'OPpARGELEM_SV', 'SV',
219 1, 'OPpARGELEM_AV', 'AV',
220 2, 'OPpARGELEM_HV', 'HV',
224 mask_def => 'OPpDEREF',
229 1, 'OPpDEREF_AV', 'DREFAV',
230 2, 'OPpDEREF_HV', 'DREFHV',
231 3, 'OPpDEREF_SV', 'DREFSV',
235 mask_def => 'OPpLVREF_TYPE',
240 0, 'OPpLVREF_SV', 'SV',
241 1, 'OPpLVREF_AV', 'AV',
242 2, 'OPpLVREF_HV', 'HV',
243 3, 'OPpLVREF_CV', 'CV',
248 @{$bits{aassign}}{6,5,4,2,1,0} = ('OPpASSIGN_COMMON_SCALAR', 'OPpASSIGN_COMMON_RC1', 'OPpASSIGN_COMMON_AGG', 'OPpASSIGN_TRUEBOOL', $bf[1], $bf[1]);
249 $bits{abs}{0} = $bf[0];
250 @{$bits{accept}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
251 @{$bits{add}}{1,0} = ($bf[1], $bf[1]);
252 $bits{aeach}{0} = $bf[0];
253 @{$bits{aelem}}{5,4,1,0} = ($bf[8], $bf[8], $bf[1], $bf[1]);
254 @{$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]);
255 @{$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]);
256 $bits{akeys}{0} = $bf[0];
257 $bits{alarm}{0} = $bf[0];
258 $bits{and}{0} = $bf[0];
259 $bits{andassign}{0} = $bf[0];
260 $bits{anonconst}{0} = $bf[0];
261 @{$bits{anonhash}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
262 @{$bits{anonlist}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
263 $bits{argcheck}{0} = $bf[0];
264 $bits{argdefelem}{0} = $bf[0];
265 @{$bits{argelem}}{2,1,0} = ($bf[7], $bf[7], $bf[0]);
266 @{$bits{atan2}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
267 $bits{av2arylen}{0} = $bf[0];
268 $bits{avalues}{0} = $bf[0];
269 @{$bits{avhvswitch}}{1,0} = ($bf[2], $bf[2]);
270 $bits{backtick}{0} = $bf[0];
271 @{$bits{bind}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
272 @{$bits{binmode}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
273 @{$bits{bit_and}}{1,0} = ($bf[1], $bf[1]);
274 @{$bits{bit_or}}{1,0} = ($bf[1], $bf[1]);
275 @{$bits{bit_xor}}{1,0} = ($bf[1], $bf[1]);
276 @{$bits{bless}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
277 @{$bits{caller}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
278 @{$bits{chdir}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
279 @{$bits{chmod}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
280 $bits{chomp}{0} = $bf[0];
281 $bits{chop}{0} = $bf[0];
282 @{$bits{chown}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
283 $bits{chr}{0} = $bf[0];
284 $bits{chroot}{0} = $bf[0];
285 @{$bits{close}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
286 $bits{closedir}{0} = $bf[0];
287 $bits{complement}{0} = $bf[0];
288 @{$bits{concat}}{1,0} = ($bf[1], $bf[1]);
289 $bits{cond_expr}{0} = $bf[0];
290 @{$bits{connect}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
291 @{$bits{const}}{6,4,3,2,1} = ('OPpCONST_BARE', 'OPpCONST_ENTERED', 'OPpCONST_STRICT', 'OPpCONST_SHORTCIRCUIT', 'OPpCONST_NOVER');
292 @{$bits{coreargs}}{7,6,1,0} = ('OPpCOREARGS_PUSHMARK', 'OPpCOREARGS_SCALARMOD', 'OPpCOREARGS_DEREF2', 'OPpCOREARGS_DEREF1');
293 $bits{cos}{0} = $bf[0];
294 @{$bits{crypt}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
295 $bits{dbmclose}{0} = $bf[0];
296 @{$bits{dbmopen}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
297 $bits{defined}{0} = $bf[0];
298 @{$bits{delete}}{6,5,0} = ('OPpSLICE', 'OPpKVSLICE', $bf[0]);
299 @{$bits{die}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
300 @{$bits{divide}}{1,0} = ($bf[1], $bf[1]);
301 $bits{dofile}{0} = $bf[0];
302 $bits{dor}{0} = $bf[0];
303 $bits{dorassign}{0} = $bf[0];
304 $bits{dump}{0} = $bf[0];
305 $bits{each}{0} = $bf[0];
306 @{$bits{entereval}}{5,4,3,2,1,0} = ('OPpEVAL_RE_REPARSING', 'OPpEVAL_COPHH', 'OPpEVAL_BYTES', 'OPpEVAL_UNICODE', 'OPpEVAL_HAS_HH', $bf[0]);
307 @{$bits{entersub}}{5,4,0} = ($bf[8], $bf[8], 'OPpENTERSUB_INARGS');
308 $bits{entertry}{0} = $bf[0];
309 $bits{enterwhen}{0} = $bf[0];
310 @{$bits{enterwrite}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
311 @{$bits{eof}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
312 @{$bits{eq}}{1,0} = ($bf[1], $bf[1]);
313 @{$bits{exec}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
314 @{$bits{exists}}{6,0} = ('OPpEXISTS_SUB', $bf[0]);
315 @{$bits{exit}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
316 $bits{exp}{0} = $bf[0];
317 $bits{fc}{0} = $bf[0];
318 @{$bits{fcntl}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
319 @{$bits{fileno}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
320 $bits{flip}{0} = $bf[0];
321 @{$bits{flock}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
322 $bits{flop}{0} = $bf[0];
323 @{$bits{formline}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
324 $bits{ftatime}{0} = $bf[0];
325 $bits{ftbinary}{0} = $bf[0];
326 $bits{ftblk}{0} = $bf[0];
327 $bits{ftchr}{0} = $bf[0];
328 $bits{ftctime}{0} = $bf[0];
329 $bits{ftdir}{0} = $bf[0];
330 $bits{fteexec}{0} = $bf[0];
331 $bits{fteowned}{0} = $bf[0];
332 $bits{fteread}{0} = $bf[0];
333 $bits{ftewrite}{0} = $bf[0];
334 $bits{ftfile}{0} = $bf[0];
335 $bits{ftis}{0} = $bf[0];
336 $bits{ftlink}{0} = $bf[0];
337 $bits{ftmtime}{0} = $bf[0];
338 $bits{ftpipe}{0} = $bf[0];
339 $bits{ftrexec}{0} = $bf[0];
340 $bits{ftrowned}{0} = $bf[0];
341 $bits{ftrread}{0} = $bf[0];
342 $bits{ftrwrite}{0} = $bf[0];
343 $bits{ftsgid}{0} = $bf[0];
344 $bits{ftsize}{0} = $bf[0];
345 $bits{ftsock}{0} = $bf[0];
346 $bits{ftsuid}{0} = $bf[0];
347 $bits{ftsvtx}{0} = $bf[0];
348 $bits{fttext}{0} = $bf[0];
349 $bits{fttty}{0} = $bf[0];
350 $bits{ftzero}{0} = $bf[0];
351 @{$bits{ge}}{1,0} = ($bf[1], $bf[1]);
352 @{$bits{gelem}}{1,0} = ($bf[1], $bf[1]);
353 @{$bits{getc}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
354 $bits{getpeername}{0} = $bf[0];
355 @{$bits{getpgrp}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
356 @{$bits{getpriority}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
357 $bits{getsockname}{0} = $bf[0];
358 $bits{ggrgid}{0} = $bf[0];
359 $bits{ggrnam}{0} = $bf[0];
360 @{$bits{ghbyaddr}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
361 $bits{ghbyname}{0} = $bf[0];
362 @{$bits{glob}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
363 @{$bits{gmtime}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
364 @{$bits{gnbyaddr}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
365 $bits{gnbyname}{0} = $bf[0];
366 $bits{goto}{0} = $bf[0];
367 $bits{gpbyname}{0} = $bf[0];
368 @{$bits{gpbynumber}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
369 $bits{gpwnam}{0} = $bf[0];
370 $bits{gpwuid}{0} = $bf[0];
371 $bits{grepstart}{0} = $bf[0];
372 $bits{grepwhile}{0} = $bf[0];
373 @{$bits{gsbyname}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
374 @{$bits{gsbyport}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
375 @{$bits{gsockopt}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
376 @{$bits{gt}}{1,0} = ($bf[1], $bf[1]);
377 $bits{gv}{5} = 'OPpEARLY_CV';
378 @{$bits{helem}}{5,4,1,0} = ($bf[8], $bf[8], $bf[1], $bf[1]);
379 $bits{hex}{0} = $bf[0];
380 @{$bits{i_add}}{1,0} = ($bf[1], $bf[1]);
381 @{$bits{i_divide}}{1,0} = ($bf[1], $bf[1]);
382 @{$bits{i_eq}}{1,0} = ($bf[1], $bf[1]);
383 @{$bits{i_ge}}{1,0} = ($bf[1], $bf[1]);
384 @{$bits{i_gt}}{1,0} = ($bf[1], $bf[1]);
385 @{$bits{i_le}}{1,0} = ($bf[1], $bf[1]);
386 @{$bits{i_lt}}{1,0} = ($bf[1], $bf[1]);
387 @{$bits{i_modulo}}{1,0} = ($bf[1], $bf[1]);
388 @{$bits{i_multiply}}{1,0} = ($bf[1], $bf[1]);
389 @{$bits{i_ncmp}}{1,0} = ($bf[1], $bf[1]);
390 @{$bits{i_ne}}{1,0} = ($bf[1], $bf[1]);
391 $bits{i_negate}{0} = $bf[0];
392 $bits{i_postdec}{0} = $bf[0];
393 $bits{i_postinc}{0} = $bf[0];
394 $bits{i_predec}{0} = $bf[0];
395 $bits{i_preinc}{0} = $bf[0];
396 @{$bits{i_subtract}}{1,0} = ($bf[1], $bf[1]);
397 @{$bits{index}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
398 $bits{int}{0} = $bf[0];
399 @{$bits{ioctl}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
400 @{$bits{join}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
401 $bits{keys}{0} = $bf[0];
402 @{$bits{kill}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
403 $bits{last}{0} = $bf[0];
404 $bits{lc}{0} = $bf[0];
405 $bits{lcfirst}{0} = $bf[0];
406 @{$bits{le}}{1,0} = ($bf[1], $bf[1]);
407 $bits{leaveeval}{0} = $bf[0];
408 @{$bits{leaveloop}}{1,0} = ($bf[1], $bf[1]);
409 $bits{leavesub}{0} = $bf[0];
410 $bits{leavesublv}{0} = $bf[0];
411 $bits{leavewhen}{0} = $bf[0];
412 $bits{leavewrite}{0} = $bf[0];
413 @{$bits{left_shift}}{1,0} = ($bf[1], $bf[1]);
414 $bits{length}{0} = $bf[0];
415 @{$bits{link}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
416 $bits{list}{6} = 'OPpLIST_GUESSED';
417 @{$bits{listen}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
418 $bits{localtime}{0} = $bf[0];
419 $bits{lock}{0} = $bf[0];
420 $bits{log}{0} = $bf[0];
421 @{$bits{lslice}}{1,0} = ($bf[1], $bf[1]);
422 $bits{lstat}{0} = $bf[0];
423 @{$bits{lt}}{1,0} = ($bf[1], $bf[1]);
424 $bits{lvavref}{0} = $bf[0];
425 @{$bits{lvref}}{5,4,0} = ($bf[9], $bf[9], $bf[0]);
426 $bits{mapstart}{0} = $bf[0];
427 $bits{mapwhile}{0} = $bf[0];
428 $bits{method}{0} = $bf[0];
429 $bits{method_named}{0} = $bf[0];
430 $bits{method_redir}{0} = $bf[0];
431 $bits{method_redir_super}{0} = $bf[0];
432 $bits{method_super}{0} = $bf[0];
433 @{$bits{mkdir}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
434 @{$bits{modulo}}{1,0} = ($bf[1], $bf[1]);
435 @{$bits{msgctl}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
436 @{$bits{msgget}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
437 @{$bits{msgrcv}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
438 @{$bits{msgsnd}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
439 @{$bits{multiconcat}}{6,5,3,0} = ('OPpMULTICONCAT_APPEND', 'OPpMULTICONCAT_FAKE', 'OPpMULTICONCAT_STRINGIFY', $bf[0]);
440 @{$bits{multideref}}{5,4,0} = ('OPpMULTIDEREF_DELETE', 'OPpMULTIDEREF_EXISTS', $bf[0]);
441 @{$bits{multiply}}{1,0} = ($bf[1], $bf[1]);
442 @{$bits{nbit_and}}{1,0} = ($bf[1], $bf[1]);
443 @{$bits{nbit_or}}{1,0} = ($bf[1], $bf[1]);
444 @{$bits{nbit_xor}}{1,0} = ($bf[1], $bf[1]);
445 @{$bits{ncmp}}{1,0} = ($bf[1], $bf[1]);
446 $bits{ncomplement}{0} = $bf[0];
447 @{$bits{ne}}{1,0} = ($bf[1], $bf[1]);
448 $bits{negate}{0} = $bf[0];
449 $bits{next}{0} = $bf[0];
450 $bits{not}{0} = $bf[0];
451 $bits{oct}{0} = $bf[0];
452 $bits{once}{0} = $bf[0];
453 @{$bits{open}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
454 @{$bits{open_dir}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
455 $bits{or}{0} = $bf[0];
456 $bits{orassign}{0} = $bf[0];
457 $bits{ord}{0} = $bf[0];
458 @{$bits{pack}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
459 $bits{padhv}{0} = 'OPpPADHV_ISKEYS';
460 @{$bits{padrange}}{6,5,4,3,2,1,0} = ($bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5]);
461 @{$bits{padsv}}{5,4} = ($bf[8], $bf[8]);
462 @{$bits{pipe_op}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
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];
471 @{$bits{push}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
472 $bits{quotemeta}{0} = $bf[0];
473 @{$bits{rand}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
474 $bits{range}{0} = $bf[0];
475 @{$bits{read}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
476 $bits{readdir}{0} = $bf[0];
477 $bits{readline}{0} = $bf[0];
478 $bits{readlink}{0} = $bf[0];
479 @{$bits{recv}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
480 $bits{redo}{0} = $bf[0];
481 $bits{ref}{0} = $bf[0];
482 @{$bits{refassign}}{5,4,1,0} = ($bf[9], $bf[9], $bf[1], $bf[1]);
483 $bits{refgen}{0} = $bf[0];
484 $bits{regcmaybe}{0} = $bf[0];
485 $bits{regcomp}{0} = $bf[0];
486 $bits{regcreset}{0} = $bf[0];
487 @{$bits{rename}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
488 @{$bits{repeat}}{6,1,0} = ('OPpREPEAT_DOLIST', $bf[1], $bf[1]);
489 $bits{require}{0} = $bf[0];
490 @{$bits{reset}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
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]);
494 @{$bits{rindex}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
495 $bits{rmdir}{0} = $bf[0];
496 $bits{rv2av}{0} = $bf[0];
497 @{$bits{rv2cv}}{7,5,0} = ('OPpENTERSUB_NOPAREN', 'OPpMAY_RETURN_CONSTANT', $bf[0]);
498 @{$bits{rv2gv}}{6,5,4,2,0} = ('OPpALLOW_FAKE', $bf[8], $bf[8], 'OPpDONT_INIT_GV', $bf[0]);
499 $bits{rv2hv}{0} = 'OPpRV2HV_ISKEYS';
500 @{$bits{rv2sv}}{5,4,0} = ($bf[8], $bf[8], $bf[0]);
501 @{$bits{sassign}}{7,6,1,0} = ('OPpASSIGN_CV_TO_GV', 'OPpASSIGN_BACKWARDS', $bf[1], $bf[1]);
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]);
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]);
509 $bits{scomplement}{0} = $bf[0];
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]);
517 @{$bits{seq}}{1,0} = ($bf[1], $bf[1]);
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]);
520 @{$bits{sge}}{1,0} = ($bf[1], $bf[1]);
521 @{$bits{sgt}}{1,0} = ($bf[1], $bf[1]);
522 $bits{shift}{0} = $bf[0];
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]);
527 $bits{shostent}{0} = $bf[0];
528 @{$bits{shutdown}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
529 $bits{sin}{0} = $bf[0];
530 @{$bits{sle}}{1,0} = ($bf[1], $bf[1]);
531 @{$bits{sleep}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
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];
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]);
538 @{$bits{sort}}{7,6,4,3,2,1,0} = ('OPpSORT_UNSTABLE', 'OPpSORT_STABLE', 'OPpSORT_DESCEND', 'OPpSORT_INPLACE', 'OPpSORT_REVERSE', 'OPpSORT_INTEGER', 'OPpSORT_NUMERIC');
539 @{$bits{splice}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
540 @{$bits{split}}{4,3,2} = ('OPpSPLIT_ASSIGN', 'OPpSPLIT_LEX', 'OPpSPLIT_IMPLIM');
541 @{$bits{sprintf}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
542 $bits{sprotoent}{0} = $bf[0];
543 $bits{sqrt}{0} = $bf[0];
544 @{$bits{srand}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
545 $bits{srefgen}{0} = $bf[0];
546 @{$bits{sselect}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
547 $bits{sservent}{0} = $bf[0];
548 @{$bits{ssockopt}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
549 $bits{stat}{0} = $bf[0];
550 @{$bits{stringify}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
551 $bits{study}{0} = $bf[0];
552 $bits{substcont}{0} = $bf[0];
553 @{$bits{substr}}{4,2,1,0} = ('OPpSUBSTR_REPL_FIRST', $bf[3], $bf[3], $bf[3]);
554 @{$bits{subtract}}{1,0} = ($bf[1], $bf[1]);
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]);
563 $bits{telldir}{0} = $bf[0];
564 @{$bits{tie}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
565 $bits{tied}{0} = $bf[0];
566 @{$bits{truncate}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
567 $bits{uc}{0} = $bf[0];
568 $bits{ucfirst}{0} = $bf[0];
569 @{$bits{umask}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
570 $bits{undef}{0} = $bf[0];
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]);
574 $bits{untie}{0} = $bf[0];
575 @{$bits{utime}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
576 $bits{values}{0} = $bf[0];
577 @{$bits{vec}}{1,0} = ($bf[1], $bf[1]);
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]);
580 @{$bits{xor}}{1,0} = ($bf[1], $bf[1]);
591 OPpARGELEM_MASK => 6,
593 OPpASSIGN_BACKWARDS => 64,
594 OPpASSIGN_COMMON_AGG => 16,
595 OPpASSIGN_COMMON_RC1 => 32,
596 OPpASSIGN_COMMON_SCALAR => 64,
597 OPpASSIGN_CV_TO_GV => 128,
598 OPpASSIGN_TRUEBOOL => 4,
599 OPpAVHVSWITCH_MASK => 3,
601 OPpCONST_ENTERED => 16,
603 OPpCONST_SHORTCIRCUIT => 4,
604 OPpCONST_STRICT => 8,
605 OPpCOREARGS_DEREF1 => 1,
606 OPpCOREARGS_DEREF2 => 2,
607 OPpCOREARGS_PUSHMARK => 128,
608 OPpCOREARGS_SCALARMOD => 64,
613 OPpDONT_INIT_GV => 4,
615 OPpENTERSUB_AMPER => 8,
616 OPpENTERSUB_DB => 64,
617 OPpENTERSUB_HASTARG => 4,
618 OPpENTERSUB_INARGS => 1,
619 OPpENTERSUB_NOPAREN => 128,
623 OPpEVAL_RE_REPARSING => 32,
624 OPpEVAL_UNICODE => 4,
626 OPpFLIP_LINENUM => 64,
631 OPpHINT_STRICT_REFS => 2,
632 OPpHUSH_VMSISH => 32,
633 OPpINDEX_BOOLNEG => 64,
634 OPpITER_REVERSED => 2,
636 OPpLIST_GUESSED => 64,
639 OPpLVAL_INTRO => 128,
648 OPpMAYBE_TRUEBOOL => 16,
649 OPpMAY_RETURN_CONSTANT => 32,
650 OPpMULTICONCAT_APPEND => 64,
651 OPpMULTICONCAT_FAKE => 32,
652 OPpMULTICONCAT_STRINGIFY => 8,
653 OPpMULTIDEREF_DELETE => 32,
654 OPpMULTIDEREF_EXISTS => 16,
656 OPpOPEN_IN_CRLF => 32,
657 OPpOPEN_IN_RAW => 16,
658 OPpOPEN_OUT_CRLF => 128,
659 OPpOPEN_OUT_RAW => 64,
661 OPpPADHV_ISKEYS => 1,
662 OPpPADRANGE_COUNTMASK => 127,
663 OPpPADRANGE_COUNTSHIFT => 7,
665 OPpPV_IS_UTF8 => 128,
667 OPpREPEAT_DOLIST => 64,
668 OPpREVERSE_INPLACE => 8,
669 OPpRV2HV_ISKEYS => 1,
671 OPpSLICEWARNING => 4,
672 OPpSORT_DESCEND => 16,
673 OPpSORT_INPLACE => 8,
674 OPpSORT_INTEGER => 2,
675 OPpSORT_NUMERIC => 1,
676 OPpSORT_REVERSE => 4,
677 OPpSORT_STABLE => 64,
678 OPpSORT_UNSTABLE => 128,
679 OPpSPLIT_ASSIGN => 16,
680 OPpSPLIT_IMPLIM => 4,
682 OPpSUBSTR_REPL_FIRST => 16,
684 OPpTRANS_COMPLEMENT => 32,
685 OPpTRANS_DELETE => 128,
686 OPpTRANS_FROM_UTF => 1,
687 OPpTRANS_GROWS => 64,
688 OPpTRANS_IDENTICAL => 4,
689 OPpTRANS_SQUASH => 8,
690 OPpTRANS_TO_UTF => 2,
695 OPpALLOW_FAKE => 'FAKE',
696 OPpARGELEM_AV => 'AV',
697 OPpARGELEM_HV => 'HV',
698 OPpARGELEM_SV => 'SV',
699 OPpASSIGN_BACKWARDS => 'BKWARD',
700 OPpASSIGN_COMMON_AGG => 'COM_AGG',
701 OPpASSIGN_COMMON_RC1 => 'COM_RC1',
702 OPpASSIGN_COMMON_SCALAR => 'COM_SCALAR',
703 OPpASSIGN_CV_TO_GV => 'CV2GV',
704 OPpASSIGN_TRUEBOOL => 'BOOL',
705 OPpCONST_BARE => 'BARE',
706 OPpCONST_ENTERED => 'ENTERED',
707 OPpCONST_NOVER => 'NOVER',
708 OPpCONST_SHORTCIRCUIT => 'SHORT',
709 OPpCONST_STRICT => 'STRICT',
710 OPpCOREARGS_DEREF1 => 'DEREF1',
711 OPpCOREARGS_DEREF2 => 'DEREF2',
712 OPpCOREARGS_PUSHMARK => 'MARK',
713 OPpCOREARGS_SCALARMOD => '$MOD',
714 OPpDEREF_AV => 'DREFAV',
715 OPpDEREF_HV => 'DREFHV',
716 OPpDEREF_SV => 'DREFSV',
717 OPpDONT_INIT_GV => 'NOINIT',
718 OPpEARLY_CV => 'EARLYCV',
719 OPpENTERSUB_AMPER => 'AMPER',
720 OPpENTERSUB_DB => 'DBG',
721 OPpENTERSUB_HASTARG => 'TARG',
722 OPpENTERSUB_INARGS => 'INARGS',
723 OPpENTERSUB_NOPAREN => 'NO()',
724 OPpEVAL_BYTES => 'BYTES',
725 OPpEVAL_COPHH => 'COPHH',
726 OPpEVAL_HAS_HH => 'HAS_HH',
727 OPpEVAL_RE_REPARSING => 'REPARSE',
728 OPpEVAL_UNICODE => 'UNI',
729 OPpEXISTS_SUB => 'SUB',
730 OPpFLIP_LINENUM => 'LINENUM',
731 OPpFT_ACCESS => 'FTACCESS',
732 OPpFT_AFTER_t => 'FTAFTERt',
733 OPpFT_STACKED => 'FTSTACKED',
734 OPpFT_STACKING => 'FTSTACKING',
735 OPpHINT_STRICT_REFS => 'STRICT',
736 OPpHUSH_VMSISH => 'HUSH',
737 OPpINDEX_BOOLNEG => 'NEG',
738 OPpITER_REVERSED => 'REVERSED',
739 OPpKVSLICE => 'KVSLICE',
740 OPpLIST_GUESSED => 'GUESSED',
742 OPpLVAL_DEFER => 'LVDEFER',
743 OPpLVAL_INTRO => 'LVINTRO',
746 OPpLVREF_ELEM => 'ELEM',
748 OPpLVREF_ITER => 'ITER',
750 OPpMAYBE_LVSUB => 'LVSUB',
751 OPpMAYBE_TRUEBOOL => 'BOOL?',
752 OPpMAY_RETURN_CONSTANT => 'CONST',
753 OPpMULTICONCAT_APPEND => 'APPEND',
754 OPpMULTICONCAT_FAKE => 'FAKE',
755 OPpMULTICONCAT_STRINGIFY => 'STRINGIFY',
756 OPpMULTIDEREF_DELETE => 'DELETE',
757 OPpMULTIDEREF_EXISTS => 'EXISTS',
759 OPpOPEN_IN_CRLF => 'INCR',
760 OPpOPEN_IN_RAW => 'INBIN',
761 OPpOPEN_OUT_CRLF => 'OUTCR',
762 OPpOPEN_OUT_RAW => 'OUTBIN',
763 OPpOUR_INTRO => 'OURINTR',
764 OPpPADHV_ISKEYS => 'KEYS',
765 OPpPAD_STATE => 'STATE',
766 OPpPV_IS_UTF8 => 'UTF',
767 OPpREFCOUNTED => 'REFC',
768 OPpREPEAT_DOLIST => 'DOLIST',
769 OPpREVERSE_INPLACE => 'INPLACE',
770 OPpRV2HV_ISKEYS => 'KEYS',
772 OPpSLICEWARNING => 'SLICEWARN',
773 OPpSORT_DESCEND => 'DESC',
774 OPpSORT_INPLACE => 'INPLACE',
775 OPpSORT_INTEGER => 'INT',
776 OPpSORT_NUMERIC => 'NUM',
777 OPpSORT_REVERSE => 'REV',
778 OPpSORT_STABLE => 'STABLE',
779 OPpSORT_UNSTABLE => 'UNSTABLE',
780 OPpSPLIT_ASSIGN => 'ASSIGN',
781 OPpSPLIT_IMPLIM => 'IMPLIM',
782 OPpSPLIT_LEX => 'LEX',
783 OPpSUBSTR_REPL_FIRST => 'REPL1ST',
784 OPpTARGET_MY => 'TARGMY',
785 OPpTRANS_COMPLEMENT => 'COMPL',
786 OPpTRANS_DELETE => 'DEL',
787 OPpTRANS_FROM_UTF => '<UTF',
788 OPpTRANS_GROWS => 'GROWS',
789 OPpTRANS_IDENTICAL => 'IDENT',
790 OPpTRANS_SQUASH => 'SQUASH',
791 OPpTRANS_TO_UTF => '>UTF',
792 OPpTRUEBOOL => 'BOOL',
797 OPpALLOW_FAKE => [qw(rv2gv)],
798 OPpASSIGN_BACKWARDS => [qw(sassign)],
799 OPpASSIGN_COMMON_AGG => [qw(aassign)],
800 OPpCONST_BARE => [qw(const)],
801 OPpCOREARGS_DEREF1 => [qw(coreargs)],
802 OPpEARLY_CV => [qw(gv)],
803 OPpENTERSUB_AMPER => [qw(entersub rv2cv)],
804 OPpENTERSUB_INARGS => [qw(entersub)],
805 OPpENTERSUB_NOPAREN => [qw(rv2cv)],
806 OPpEVAL_BYTES => [qw(entereval)],
807 OPpEXISTS_SUB => [qw(exists)],
808 OPpFLIP_LINENUM => [qw(flip flop)],
809 OPpFT_ACCESS => [qw(fteexec fteread ftewrite ftrexec ftrread ftrwrite)],
810 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)],
811 OPpHINT_STRICT_REFS => [qw(entersub multideref rv2av rv2cv rv2gv rv2hv rv2sv)],
812 OPpHUSH_VMSISH => [qw(dbstate nextstate)],
813 OPpINDEX_BOOLNEG => [qw(index rindex)],
814 OPpITER_REVERSED => [qw(enteriter iter)],
815 OPpKVSLICE => [qw(delete)],
816 OPpLIST_GUESSED => [qw(list)],
817 OPpLVALUE => [qw(leave leaveloop)],
818 OPpLVAL_DEFER => [qw(aelem helem multideref)],
819 OPpLVAL_INTRO => [qw(aelem aslice cond_expr delete enteriter entersub gvsv helem hslice list lvavref lvref lvrefslice multiconcat multideref padav padhv padrange padsv pushmark refassign rv2av rv2gv rv2hv rv2sv split)],
820 OPpLVREF_ELEM => [qw(lvref refassign)],
821 OPpMAYBE_LVSUB => [qw(aassign aelem akeys aslice av2arylen avhvswitch helem hslice keys kvaslice kvhslice multideref padav padhv pos rv2av rv2gv rv2hv substr values vec)],
822 OPpMAYBE_TRUEBOOL => [qw(padhv ref rv2hv)],
823 OPpMULTICONCAT_APPEND => [qw(multiconcat)],
824 OPpMULTIDEREF_DELETE => [qw(multideref)],
825 OPpOFFBYONE => [qw(caller runcv wantarray)],
826 OPpOPEN_IN_CRLF => [qw(backtick open)],
827 OPpOUR_INTRO => [qw(enteriter gvsv rv2av rv2hv rv2sv split)],
828 OPpPADHV_ISKEYS => [qw(padhv)],
829 OPpPAD_STATE => [qw(lvavref lvref padav padhv padsv pushmark refassign)],
830 OPpPV_IS_UTF8 => [qw(dump goto last next redo)],
831 OPpREFCOUNTED => [qw(leave leaveeval leavesub leavesublv leavewrite)],
832 OPpREPEAT_DOLIST => [qw(repeat)],
833 OPpREVERSE_INPLACE => [qw(reverse)],
834 OPpRV2HV_ISKEYS => [qw(rv2hv)],
835 OPpSLICEWARNING => [qw(aslice hslice padav padhv rv2av rv2hv)],
836 OPpSORT_DESCEND => [qw(sort)],
837 OPpSPLIT_ASSIGN => [qw(split)],
838 OPpSUBSTR_REPL_FIRST => [qw(substr)],
839 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 multiconcat 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)],
840 OPpTRANS_COMPLEMENT => [qw(trans transr)],
841 OPpTRUEBOOL => [qw(grepwhile index length padav padhv pos ref rindex rv2av rv2hv subst)],
844 $ops_using{OPpASSIGN_COMMON_RC1} = $ops_using{OPpASSIGN_COMMON_AGG};
845 $ops_using{OPpASSIGN_COMMON_SCALAR} = $ops_using{OPpASSIGN_COMMON_AGG};
846 $ops_using{OPpASSIGN_CV_TO_GV} = $ops_using{OPpASSIGN_BACKWARDS};
847 $ops_using{OPpASSIGN_TRUEBOOL} = $ops_using{OPpASSIGN_COMMON_AGG};
848 $ops_using{OPpCONST_ENTERED} = $ops_using{OPpCONST_BARE};
849 $ops_using{OPpCONST_NOVER} = $ops_using{OPpCONST_BARE};
850 $ops_using{OPpCONST_SHORTCIRCUIT} = $ops_using{OPpCONST_BARE};
851 $ops_using{OPpCONST_STRICT} = $ops_using{OPpCONST_BARE};
852 $ops_using{OPpCOREARGS_DEREF2} = $ops_using{OPpCOREARGS_DEREF1};
853 $ops_using{OPpCOREARGS_PUSHMARK} = $ops_using{OPpCOREARGS_DEREF1};
854 $ops_using{OPpCOREARGS_SCALARMOD} = $ops_using{OPpCOREARGS_DEREF1};
855 $ops_using{OPpDONT_INIT_GV} = $ops_using{OPpALLOW_FAKE};
856 $ops_using{OPpENTERSUB_DB} = $ops_using{OPpENTERSUB_AMPER};
857 $ops_using{OPpENTERSUB_HASTARG} = $ops_using{OPpENTERSUB_AMPER};
858 $ops_using{OPpEVAL_COPHH} = $ops_using{OPpEVAL_BYTES};
859 $ops_using{OPpEVAL_HAS_HH} = $ops_using{OPpEVAL_BYTES};
860 $ops_using{OPpEVAL_RE_REPARSING} = $ops_using{OPpEVAL_BYTES};
861 $ops_using{OPpEVAL_UNICODE} = $ops_using{OPpEVAL_BYTES};
862 $ops_using{OPpFT_STACKED} = $ops_using{OPpFT_AFTER_t};
863 $ops_using{OPpFT_STACKING} = $ops_using{OPpFT_AFTER_t};
864 $ops_using{OPpLVREF_ITER} = $ops_using{OPpLVREF_ELEM};
865 $ops_using{OPpMAY_RETURN_CONSTANT} = $ops_using{OPpENTERSUB_NOPAREN};
866 $ops_using{OPpMULTICONCAT_FAKE} = $ops_using{OPpMULTICONCAT_APPEND};
867 $ops_using{OPpMULTICONCAT_STRINGIFY} = $ops_using{OPpMULTICONCAT_APPEND};
868 $ops_using{OPpMULTIDEREF_EXISTS} = $ops_using{OPpMULTIDEREF_DELETE};
869 $ops_using{OPpOPEN_IN_RAW} = $ops_using{OPpOPEN_IN_CRLF};
870 $ops_using{OPpOPEN_OUT_CRLF} = $ops_using{OPpOPEN_IN_CRLF};
871 $ops_using{OPpOPEN_OUT_RAW} = $ops_using{OPpOPEN_IN_CRLF};
872 $ops_using{OPpSLICE} = $ops_using{OPpKVSLICE};
873 $ops_using{OPpSORT_INPLACE} = $ops_using{OPpSORT_DESCEND};
874 $ops_using{OPpSORT_INTEGER} = $ops_using{OPpSORT_DESCEND};
875 $ops_using{OPpSORT_NUMERIC} = $ops_using{OPpSORT_DESCEND};
876 $ops_using{OPpSORT_REVERSE} = $ops_using{OPpSORT_DESCEND};
877 $ops_using{OPpSORT_STABLE} = $ops_using{OPpSORT_DESCEND};
878 $ops_using{OPpSORT_UNSTABLE} = $ops_using{OPpSORT_DESCEND};
879 $ops_using{OPpSPLIT_IMPLIM} = $ops_using{OPpSPLIT_ASSIGN};
880 $ops_using{OPpSPLIT_LEX} = $ops_using{OPpSPLIT_ASSIGN};
881 $ops_using{OPpTRANS_DELETE} = $ops_using{OPpTRANS_COMPLEMENT};
882 $ops_using{OPpTRANS_FROM_UTF} = $ops_using{OPpTRANS_COMPLEMENT};
883 $ops_using{OPpTRANS_GROWS} = $ops_using{OPpTRANS_COMPLEMENT};
884 $ops_using{OPpTRANS_IDENTICAL} = $ops_using{OPpTRANS_COMPLEMENT};
885 $ops_using{OPpTRANS_SQUASH} = $ops_using{OPpTRANS_COMPLEMENT};
886 $ops_using{OPpTRANS_TO_UTF} = $ops_using{OPpTRANS_COMPLEMENT};