summaryrefslogtreecommitdiff
path: root/regen
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2015-01-03 18:50:35 -0800
committerFather Chrysostomos <sprout@cpan.org>2015-01-31 22:03:50 -0800
commit5d01050abccabc9ab4309d80d4b603d68575e0a8 (patch)
treecfb8704e39b55834345de342d99972ce1ea26d52 /regen
parent7dd648412d5aa4efd8fb68cc6d58d99d867af2a2 (diff)
downloadperl-5d01050abccabc9ab4309d80d4b603d68575e0a8.tar.gz
Add string- and number-specific bitop types
and also implement the pp functions, though nothing compiles to these ops yet.
Diffstat (limited to 'regen')
-rwxr-xr-xregen/opcode.pl2
-rw-r--r--regen/opcodes8
2 files changed, 10 insertions, 0 deletions
diff --git a/regen/opcode.pl b/regen/opcode.pl
index 327e45eda1..765816fd50 100755
--- a/regen/opcode.pl
+++ b/regen/opcode.pl
@@ -122,6 +122,8 @@ my @raw_alias = (
Perl_pp_shift => ['pop'],
Perl_pp_sin => [qw(cos exp log sqrt)],
Perl_pp_bit_or => ['bit_xor'],
+ Perl_pp_nbit_or => ['nbit_xor'],
+ Perl_pp_sbit_or => ['sbit_xor'],
Perl_pp_rv2av => ['rv2hv'],
Perl_pp_akeys => ['avalues'],
Perl_pp_rkeys => [qw(rvalues reach)],
diff --git a/regen/opcodes b/regen/opcodes
index 3061d33efb..614a54c439 100644
--- a/regen/opcodes
+++ b/regen/opcodes
@@ -165,11 +165,19 @@ 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_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
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
+ncomplement numeric 1's complement (~) ck_bitop fsT1 S
+scomplement string 1's complement (~) ck_null fsT1 S
smartmatch smart match ck_smartmatch s2