This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
use LOOP struct for entergiven op
[perl5.git] / regen / opcodes
index 8bbd557..b60eda0 100644 (file)
@@ -57,8 +57,6 @@ padav         private array           ck_null         d0
 padhv          private hash            ck_null         d0
 padany         private value           ck_null         d0
 
-pushre         push regexp             ck_null         d/
-
 # References and stuff.
 
 rv2gv          ref-to-glob cast        ck_rvconst      ds1     
@@ -94,9 +92,8 @@ trans         transliteration (tr///) ck_match        is"     S
 transr         transliteration (tr///) ck_match        is"     S
 
 # Lvalue operators.
-# sassign is special-cased for op class
 
-sassign                scalar assignment       ck_sassign      s0
+sassign                scalar assignment       ck_sassign      s2      S S
 aassign                list assignment         ck_null         t2      L L
 
 chop           chop                    ck_spair        mts%    L
@@ -127,13 +124,14 @@ divide            division (/)            ck_null         IfsT2   S S
 i_divide       integer division (/)    ck_null         ifsT2   S S
 modulo         modulus (%)             ck_null         IifsT2  S S
 i_modulo       integer modulus (%)     ck_null         ifsT2   S S
-repeat         repeat (x)              ck_repeat       fmT2    L S
+repeat         repeat (x)              ck_repeat       fmt2    L S
 
 add            addition (+)            ck_null         IfsT2   S S
 i_add          integer addition (+)    ck_null         ifsT2   S S
 subtract       subtraction (-)         ck_null         IfsT2   S S
 i_subtract     integer subtraction (-) ck_null         ifsT2   S S
 concat         concatenation (.) or string     ck_concat       fsT2    S S
+multiconcat    concatenation (.) or string     ck_null sT+
 stringify      string                  ck_stringify    fsT@    S
 
 left_shift     left bitshift (<<)      ck_bitop        fsT2    S S
@@ -147,12 +145,12 @@ le                numeric le (<=)         ck_cmp          Iifs2   S S<
 i_le           integer le (<=)         ck_cmp          ifs2    S S<
 ge             numeric ge (>=)         ck_cmp          Iifs2   S S<
 i_ge           integer ge (>=)         ck_cmp          ifs2    S S<
-eq             numeric eq (==)         ck_null         Iifs2   S S<
-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<
+eq             numeric eq (==)         ck_cmp          Iifs2   S S<
+i_eq           integer eq (==)         ck_cmp          ifs2    S S<
+ne             numeric ne (!=)         ck_cmp          Iifs2   S S<
+i_ne           integer ne (!=)         ck_cmp          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
@@ -160,28 +158,28 @@ 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|
-nbit_and       numeric bitiwse and (&) ck_bitop        fsT2    S S|
+nbit_and       numeric bitwise and (&) ck_bitop        fsT2    S S|
 nbit_xor       numeric bitwise xor (^) ck_bitop        fsT2    S S|
 nbit_or                numeric bitwise or (|)  ck_bitop        fsT2    S S|
-sbit_and       string bitiwse and (&)  ck_bitop        fst2    S S|
-sbit_xor       string bitwise xor (^ ck_bitop        fst2    S S|
-sbit_or                string bitwise or (|  ck_bitop        fst2    S S|
+sbit_and       string bitwise and (&.) ck_bitop        fst2    S S|
+sbit_xor       string bitwise xor (^.) ck_bitop        fst2    S S|
+sbit_or                string bitwise or (|.)  ck_bitop        fst2    S S|
 
 negate         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
 ncomplement    numeric 1's complement (~)      ck_bitop        fsT1    S
 # scomplement uses ck_bitop only for the experimental warning.  Once the
 # warning is gone, this can change to ck_null.
 scomplement    string 1's complement (~)       ck_bitop        fsT1    S
 
-smartmatch     smart match             ck_smartmatch   s2
+smartmatch     smart match             ck_null         ifs2    S S
 
 # High falutin' math.
 
@@ -205,7 +203,7 @@ abs         abs                     ck_fun          fsTu%   S?
 
 length         length                  ck_length       ifsTu%  S?
 substr         substr                  ck_substr       st@     S S S? S?
-vec            vec                     ck_fun          isT@    S S S
+vec            vec                     ck_fun          ist@    S S S
 
 index          index                   ck_index        isT@    S S S?
 rindex         rindex                  ck_index        isT@    S S S?
@@ -231,8 +229,8 @@ aslice              array slice             ck_null         m@      A L
 kvaslice       index/value array slice ck_null         m@      A L
 
 aeach          each on array           ck_each         d%      A
-akeys          keys on array           ck_each         t%      A
 avalues                values on array         ck_each         dt%     A
+akeys          keys on array           ck_each         t%      A
 
 # Hashes.
 
@@ -241,7 +239,7 @@ values              values                  ck_each         dt%     H
 keys           keys                    ck_each         t%      H
 delete         delete                  ck_delete       %       S
 exists         exists                  ck_exists       is%     S
-rv2hv          hash dereference        ck_rvconst      d     
+rv2hv          hash dereference        ck_rvconst      dt1     
 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
@@ -254,7 +252,7 @@ multideref  array or hash lookup    ck_null         ds+
 
 unpack         unpack                  ck_fun          u@      S S?
 pack           pack                    ck_fun          fmst@   S L
-split          split                   ck_split        T@      S S S
+split          split                   ck_split        t/      S S S
 join           join or string          ck_join         fmst@   S L
 
 # List operators.
@@ -295,10 +293,12 @@ andassign logical and assignment (&&=)    ck_null         s|
 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         dm1     L
 leavesub       subroutine exit         ck_null         1       
 leavesublv     lvalue subroutine return        ck_null         1       
+argcheck       check subroutine arguments      ck_null         +
+argelem                subroutine argument     ck_null         +
+argdefelem     subroutine argument default value       ck_null         |
 caller         caller                  ck_fun          t%      S?
 warn           warn                    ck_fun          imst@   L
 die            die                     ck_fun          imst@   L
@@ -322,12 +322,13 @@ redo              redo                    ck_null         s}
 dump           dump                    ck_null         ds}     
 goto           goto                    ck_null         s}      
 exit           exit                    ck_fun          s%      S?
+method         method lookup           ck_method       d.
 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|
+entergiven     given()                 ck_null         d{
 leavegiven     leave given block       ck_null         1
 enterwhen      when()                  ck_null         d|
 leavewhen      leave when block        ck_null         1
@@ -554,13 +555,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         d%      S
-rkeys          keys on reference                       ck_each         t%      S
-rvalues                values on reference     ck_each         dt%     S
-
 # For CORE:: subs
 coreargs       CORE:: subroutine       ck_null         $       
+avhvswitch     Array/hash switch       ck_null         t1
 
 runcv          __SUB__                 ck_null         s0