@@ -544,6 +544,8 @@ EXTCONST char* const PL_op_name[] = {
544
544
"lvavref" ,
545
545
"anonconst" ,
546
546
"isa" ,
547
+ "cmpchain_and" ,
548
+ "cmpchain_dup" ,
547
549
"freed" ,
548
550
};
549
551
#endif
@@ -950,6 +952,8 @@ EXTCONST char* const PL_op_desc[] = {
950
952
"lvalue array reference" ,
951
953
"anonymous constant" ,
952
954
"derived class test" ,
955
+ "comparison chaining" ,
956
+ "comparand shuffling" ,
953
957
"freed op" ,
954
958
};
955
959
#endif
@@ -1368,6 +1372,8 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
1368
1372
Perl_pp_lvavref ,
1369
1373
Perl_pp_anonconst ,
1370
1374
Perl_pp_isa ,
1375
+ Perl_pp_cmpchain_and ,
1376
+ Perl_pp_cmpchain_dup ,
1371
1377
}
1372
1378
#endif
1373
1379
#ifdef PERL_PPADDR_INITED
@@ -1782,6 +1788,8 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
1782
1788
Perl_ck_null , /* lvavref */
1783
1789
Perl_ck_null , /* anonconst */
1784
1790
Perl_ck_isa , /* isa */
1791
+ Perl_ck_null , /* cmpchain_and */
1792
+ Perl_ck_null , /* cmpchain_dup */
1785
1793
}
1786
1794
#endif
1787
1795
#ifdef PERL_CHECK_INITED
@@ -2192,6 +2200,8 @@ EXTCONST U32 PL_opargs[] = {
2192
2200
0x00000b40 , /* lvavref */
2193
2201
0x00000144 , /* anonconst */
2194
2202
0x00000204 , /* isa */
2203
+ 0x00000300 , /* cmpchain_and */
2204
+ 0x00000100 , /* cmpchain_dup */
2195
2205
};
2196
2206
#endif
2197
2207
@@ -2861,6 +2871,8 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
2861
2871
234 , /* lvavref */
2862
2872
0 , /* anonconst */
2863
2873
12 , /* isa */
2874
+ 0 , /* cmpchain_and */
2875
+ 0 , /* cmpchain_dup */
2864
2876
2865
2877
};
2866
2878
@@ -2879,7 +2891,7 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
2879
2891
*/
2880
2892
2881
2893
EXTCONST U16 PL_op_private_bitdefs [] = {
2882
- 0x0003 , /* scalar, prototype, refgen, srefgen, readline, regcmaybe, regcreset, regcomp, substcont, chop, schop, defined, undef, study, preinc, i_preinc, predec, i_predec, postinc, i_postinc, postdec, i_postdec, negate, i_negate, not, complement, ucfirst, lcfirst, uc, lc, quotemeta, aeach, avalues, each, pop, shift, grepstart, mapstart, mapwhile, range, and, or, dor, andassign, orassign, dorassign, argcheck, argdefelem, method, method_named, method_super, method_redir, method_redir_super, entergiven, leavegiven, enterwhen, leavewhen, untie, tied, dbmclose, getsockname, getpeername, lstat, stat, readlink, readdir, telldir, rewinddir, closedir, localtime, alarm, require, dofile, entertry, ghbyname, gnbyname, gpbyname, shostent, snetent, sprotoent, sservent, gpwnam, gpwuid, ggrnam, ggrgid, lock, once, fc, anonconst */
2894
+ 0x0003 , /* scalar, prototype, refgen, srefgen, readline, regcmaybe, regcreset, regcomp, substcont, chop, schop, defined, undef, study, preinc, i_preinc, predec, i_predec, postinc, i_postinc, postdec, i_postdec, negate, i_negate, not, complement, ucfirst, lcfirst, uc, lc, quotemeta, aeach, avalues, each, pop, shift, grepstart, mapstart, mapwhile, range, and, or, dor, andassign, orassign, dorassign, argcheck, argdefelem, method, method_named, method_super, method_redir, method_redir_super, entergiven, leavegiven, enterwhen, leavewhen, untie, tied, dbmclose, getsockname, getpeername, lstat, stat, readlink, readdir, telldir, rewinddir, closedir, localtime, alarm, require, dofile, entertry, ghbyname, gnbyname, gpbyname, shostent, snetent, sprotoent, sservent, gpwnam, gpwuid, ggrnam, ggrgid, lock, once, fc, anonconst, cmpchain_and, cmpchain_dup */
2883
2895
0x2fdc , 0x41b9 , /* pushmark */
2884
2896
0x00bd , /* wantarray, runcv */
2885
2897
0x0438 , 0x1a50 , 0x426c , 0x3d28 , 0x3505 , /* const */
@@ -3355,6 +3367,8 @@ EXTCONST U8 PL_op_private_valid[] = {
3355
3367
/* LVAVREF */ (OPpARG1_MASK |OPpPAD_STATE |OPpLVAL_INTRO ),
3356
3368
/* ANONCONST */ (OPpARG1_MASK ),
3357
3369
/* ISA */ (OPpARG2_MASK ),
3370
+ /* CMPCHAIN_AND */ (OPpARG1_MASK ),
3371
+ /* CMPCHAIN_DUP */ (OPpARG1_MASK ),
3358
3372
3359
3373
};
3360
3374
0 commit comments