# HG changeset patch # User Takahiro SHIMIZU # Date 1543291550 -32400 # Node ID 2e4c952bcdfba05d82108142dc1acc7180931221 # Parent 5bf045527a94b8056face45cb93377411443c8ff# Parent a6c2121772675dc4e5228ec64d2c1cf37c22b038 merge diff -r a6c212177267 -r 2e4c952bcdfb lib/OPCODE2Function.pm --- a/lib/OPCODE2Function.pm Sat Nov 10 08:08:06 2018 +0900 +++ b/lib/OPCODE2Function.pm Tue Nov 27 13:05:50 2018 +0900 @@ -2,8 +2,7 @@ use strict; use warnings; -sub codes { - my @CODES = qw/ +my @CODES = qw/ cbc_no_op cbc_const_i8 cbc_const_i16 @@ -2054,7 +2053,12 @@ cbc_op_call_extop /; +my %REV_CODES = (); +#map { $REV_CODES{$CODES[$_]} = [] } (0..@CODES-1); +map { push @{$REV_CODES{$CODES[$_]}}, $_} (0..@CODES-1); + +sub codes { my ($class,$input) = @_; if ( 0 <= $input && $input < @CODES){ @@ -2065,4 +2069,11 @@ } +sub name2bitecode { + my ($class,$input) = @_; + + return $REV_CODES{$input} ? $REV_CODES{$input} : "not codes"; + +} + 1; diff -r a6c212177267 -r 2e4c952bcdfb name2opcode.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/name2opcode.pl Tue Nov 27 13:05:50 2018 +0900 @@ -0,0 +1,17 @@ +use strict; +use warnings; + +use FindBin; +use lib "$FindBin::Bin/lib"; +use OPCODE2Function; + +my $input = shift or die 'use input cur_op'; +chomp $input; + +my $ref = OPCODE2Function->name2bitecode($input); + +if (ref($ref ) eq "ARRAY"){ + map { print "$_\n";} @$ref; +} else { + print "$_\n"; +} diff -r a6c212177267 -r 2e4c952bcdfb opcode2function.pl --- a/opcode2function.pl Sat Nov 10 08:08:06 2018 +0900 +++ b/opcode2function.pl Tue Nov 27 13:05:50 2018 +0900 @@ -5,7 +5,7 @@ use lib "$FindBin::Bin/lib"; use OPCODE2Function; -my $input = shift or die 'use input cur_op'; +my $input = shift; #or die 'use input cur_op'; chomp $input; print OPCODE2Function->codes($input)."\n";