This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
complement can have OPpTARGET_MY
[perl5.git] / regen / opcodes
index 2237f03..f585cd2 100644 (file)
@@ -14,6 +14,7 @@
 # padop/svop  - $            padop    - # (unused)   loop       - {
 # baseop/unop - %            loopexop - }            filestatop - -
 # pvop/svop   - "            cop      - ;            methop     - .
+# unop_aux    - +
 
 # Other options are:
 #   needs stack mark                    - m  (OA_MARK)
@@ -50,7 +51,7 @@ const         constant item           ck_svconst      s$
 
 gvsv           scalar variable         ck_null         ds$     
 gv             glob value              ck_null         ds$     
-gelem          glob elem               ck_null         d     S S
+gelem          glob elem               ck_null         ds2     S S
 padsv          private variable        ck_null         ds0
 padav          private array           ck_null         d0
 padhv          private hash            ck_null         d0
@@ -65,7 +66,7 @@ rv2sv         scalar dereference      ck_rvconst      ds1
 av2arylen      array length            ck_null         is1     
 rv2cv          subroutine dereference  ck_rvconst      d1
 anoncode       anonymous subroutine    ck_anoncode     s$      
-prototype      subroutine prototype    ck_null         s%      S
+prototype      subroutine prototype    ck_prototype    su%     S?
 refgen         reference constructor   ck_spair        m1      L
 srefgen                single ref constructor  ck_null         fs1     S
 ref            reference-type operator ck_fun          stu%    S?
@@ -111,10 +112,10 @@ preinc            preincrement (++)               ck_lfun         dIs1    S
 i_preinc       integer preincrement (++)       ck_lfun         dis1    S
 predec         predecrement (--)               ck_lfun         dIs1    S
 i_predec       integer predecrement (--)       ck_lfun         dis1    S
-postinc                postincrement (++)              ck_lfun         IsT1    S
-i_postinc      integer postincrement (++)      ck_lfun         isT1    S
-postdec                postdecrement (--)              ck_lfun         IsT1    S
-i_postdec      integer postdecrement (--)      ck_lfun         isT1    S
+postinc                postincrement (++)              ck_lfun         Ist1    S
+i_postinc      integer postincrement (++)      ck_lfun         ist1    S
+postdec                postdecrement (--)              ck_lfun         Ist1    S
+i_postdec      integer postdecrement (--)      ck_lfun         ist1    S
 
 # Ordinary operators.
 
@@ -151,7 +152,7 @@ i_eq                integer eq (==)         ck_null         ifs2    S S<
 ne             numeric ne (!=)         ck_null         Iifs2   S S<
 i_ne           integer ne (!=)         ck_null         ifs2    S S<
 ncmp           numeric comparison (<=>)        ck_null         Iifst2  S S<
-i_ncmp         integer comparison (<=>)        ck_null         ifst2   S S<
+i_ncmp         integer comparison (<=>)        ck_null         ifsT2   S S<
 
 slt            string lt               ck_null         ifs2    S S
 sgt            string gt               ck_null         ifs2    S S
@@ -159,16 +160,16 @@ sle               string le               ck_null         ifs2    S S
 sge            string ge               ck_null         ifs2    S S
 seq            string eq               ck_null         ifs2    S S
 sne            string ne               ck_null         ifs2    S S
-scmp           string comparison (cmp) ck_null         ifst2   S S
+scmp           string comparison (cmp) ck_null         ifsT2   S S
 
 bit_and                bitwise and (&)         ck_bitop        fst2    S S
 bit_xor                bitwise xor (^)         ck_bitop        fst2    S S
 bit_or         bitwise or (|)          ck_bitop        fst2    S S
 
 negate         negation (-)            ck_null         Ifst1   S
-i_negate       integer negation (-)    ck_null         ifsT1   S
+i_negate       integer negation (-)    ck_null         ifst1   S
 not            not                     ck_null         ifs1    S
-complement     1's complement (~)      ck_bitop        fst1    S
+complement     1's complement (~)      ck_bitop        fsT1    S
 
 smartmatch     smart match             ck_smartmatch   s2
 
@@ -219,14 +220,14 @@ aelem             array element           ck_null         s2      A S
 aslice         array slice             ck_null         m@      A L
 kvaslice       index/value array slice ck_null         m@      A L
 
-aeach          each on array           ck_each               A
+aeach          each on array           ck_each         d%      A
 akeys          keys on array           ck_each         t%      A
-avalues                values on array         ck_each         t%      A
+avalues                values on array         ck_each         dt%     A
 
 # Hashes.
 
-each           each                    ck_each               H
-values         values                  ck_each         t%      H
+each           each                    ck_each         d%      H
+values         values                  ck_each         dt%     H
 keys           keys                    ck_each         t%      H
 delete         delete                  ck_delete       %       S
 exists         exists                  ck_exists       is%     S
@@ -235,6 +236,10 @@ helem              hash element            ck_null         s2      H S
 hslice         hash slice              ck_null         m@      H L
 kvhslice       key/value hash slice    ck_null         m@      H L
 
+# mixed array and hash access
+
+multideref     array or hash lookup    ck_null         ds+     
+
 # Explosives and implosives.
 
 unpack         unpack                  ck_fun          u@      S S?
@@ -246,7 +251,7 @@ join                join or string          ck_join         fmst@   S L
 
 list           list                    ck_null         m@      L
 lslice         list slice              ck_null         2       H L L
-anonlist       anonymous list ([])     ck_fun          ms@     L
+anonlist       anonymous array ([])    ck_fun          ms@     L
 anonhash       anonymous hash ({})     ck_fun          ms@     L
 
 splice         splice                  ck_fun          m@      A S? S? L
@@ -281,7 +286,7 @@ orassign    logical or assignment (||=)     ck_null         s|
 dorassign      defined or assignment (//=)     ck_null         s|
 
 method         method lookup           ck_method       d.
-entersub       subroutine entry        ck_subr         dmt1    L
+entersub       subroutine entry        ck_subr         dm    L
 leavesub       subroutine exit         ck_null         1       
 leavesublv     lvalue subroutine return        ck_null         1       
 caller         caller                  ck_fun          t%      S?
@@ -308,6 +313,9 @@ dump                dump                    ck_null         ds}
 goto           goto                    ck_null         s}      
 exit           exit                    ck_fun          s%      S?
 method_named   method with known name  ck_null         d.
+method_super   super with known name   ck_null         d.
+method_redir   redirect method with known name ck_null d.
+method_redir_super     redirect super method with known name   ck_null d.
 
 entergiven     given()                 ck_null         d|
 leavegiven     leave given block       ck_null         1
@@ -481,7 +489,7 @@ semctl              semctl                  ck_fun          imst@   S S S S
 
 # Eval.
 
-require                require                 ck_require      du%     S?
+require                require                 ck_require      dsu%    S?
 dofile         do "file"               ck_fun          d1      S
 hintseval      eval hints              ck_svconst      s$
 entereval      eval "string"           ck_eval         du%     S?
@@ -537,9 +545,9 @@ once                once                    ck_null         |
 custom         unknown custom operator         ck_null         0
 
 # For smart dereference for each/keys/values
-reach          each on reference                       ck_each         %       S
+reach          each on reference       ck_each         d%      S
 rkeys          keys on reference                       ck_each         t%      S
-rvalues                values on reference                     ck_each         t%      S
+rvalues                values on reference     ck_each         dt%     S
 
 # For CORE:: subs
 coreargs       CORE:: subroutine       ck_null         $       
@@ -553,7 +561,7 @@ padcv               private subroutine      ck_null         d0
 introcv                private subroutine      ck_null         d0
 clonecv                private subroutine      ck_null         d0
 padrange       list of private variables       ck_null         d0
-refassign      lvalue ref assignment   ck_refassign    d2
+refassign      lvalue ref assignment   ck_refassign    ds2
 lvref          lvalue ref assignment   ck_null         d%
 lvrefslice     lvalue ref assignment   ck_null         d@
 lvavref                lvalue array reference  ck_null         d%