diff options
author | Father Chrysostomos <sprout@cpan.org> | 2014-09-29 21:43:53 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2014-10-11 00:10:13 -0700 |
commit | 2882b3ff194c533cea5909d6f11ee4a911ef0f9e (patch) | |
tree | 7121e93147d6f220f05b3e7773adb1d6653f3257 /opcode.h | |
parent | 4b6cf48bb4558c51745baf834133575633be736a (diff) | |
download | perl-2882b3ff194c533cea5909d6f11ee4a911ef0f9e.tar.gz |
Add lvavref op type
This will be used for slurpy array ref assignments. \(@a) = \(@b)
will make @a share the same elements as @b.
Diffstat (limited to 'opcode.h')
-rw-r--r-- | opcode.h | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -530,6 +530,7 @@ EXTCONST char* const PL_op_name[] = { "refassign", "lvref", "lvrefslice", + "lvavref", "freed", }; #endif @@ -920,6 +921,7 @@ EXTCONST char* const PL_op_desc[] = { "lvalue ref assignment", "lvalue ref assignment", "lvalue ref assignment", + "lvalue array reference", "freed op", }; #endif @@ -1324,6 +1326,7 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */ Perl_pp_refassign, Perl_pp_lvref, Perl_pp_lvrefslice, + Perl_pp_lvavref, } #endif #ifdef PERL_PPADDR_INITED @@ -1724,6 +1727,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */ Perl_ck_refassign, /* refassign */ Perl_ck_null, /* lvref */ Perl_ck_null, /* lvrefslice */ + Perl_ck_null, /* lvavref */ } #endif #ifdef PERL_CHECK_INITED @@ -2118,6 +2122,7 @@ EXTCONST U32 PL_opargs[] = { 0x00000240, /* refassign */ 0x00000b40, /* lvref */ 0x00000440, /* lvrefslice */ + 0x00000b40, /* lvavref */ }; #endif @@ -2740,6 +2745,7 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = { 632, /* refassign */ 636, /* lvref */ 640, /* lvrefslice */ + 641, /* lvavref */ }; @@ -3101,6 +3107,7 @@ EXTCONST U16 PL_op_private_bitdefs[] = { /* refassign */ 0x277c, 0x037a, 0x13e8, 0x0067, /* lvref */ 0x277c, 0x037a, 0x13e8, 0x0003, /* lvrefslice */ 0x277d, + /* lvavref */ 0x0003, }; @@ -3491,6 +3498,7 @@ EXTCONST U8 PL_op_private_valid[] = { /* REFASSIGN */ (OPpARG2_MASK|OPpLVREF_ELEM|OPpLVREF_TYPE|OPpLVAL_INTRO), /* LVREF */ (OPpARG1_MASK|OPpLVREF_ELEM|OPpLVREF_TYPE|OPpLVAL_INTRO), /* LVREFSLICE */ (OPpLVAL_INTRO), + /* LVAVREF */ (OPpARG1_MASK), }; |