Branch Coverage

lib/SIRTX/VM/Opcode.pm
Criterion Covered Total %
branch 0 298 0.0


line true false branch
215 0 0 unless (&looks_like_number($val))
225 0 0 if scalar keys %opts
241 0 0 if scalar keys %opts
243 0 0 if (defined(my $entry = $_synthetic{$cmd}))
249 0 0 unless scalar(@args) * 2 == scalar @argmap
256 0 0 if ($val =~ /^raes:(.+)$/u) { }
0 0 elsif ($val =~ /^logical:(.+)$/u) { }
257 0 0 if (defined(my $raen = $_raes_to_raen{uc $1}))
261 0 0 if (defined(my $logical = $_logicals{$1}))
266 0 0 if ($type =~ /^".+"$/u) { }
0 0 elsif ($type eq 'any') { }
267 0 0 if $val ne $asm->_parse_string($type)
271 0 0 if $asm->_get_value_type($val) ne $type
274 0 0 if ($dst eq 'undef') { }
281 0 0 if (ref $_) { }
287 0 0 if ($arg =~ /^logical:(.+)$/u)
288 0 0 if (defined(my $logical = $_logicals{$1}))
294 0 0 if (defined(my $entry = $_simple_opcodes{$cmd}))
302 0 0 if (scalar @argmap >= 2 and $argmap[-2] eq 'autodie') { }
303 0 0 unless (scalar(@args) + 1) * 2 == scalar @argmap
305 0 0 unless (scalar(@args) + 0) * 2 == scalar @argmap
315 0 0 if ($type =~ s/_(.+)$//u)
319 0 0 if ($type ne "autodie" and $val =~ /^raes:(.+)$/u)
320 0 0 if (defined(my $raen = $_raes_to_raen{uc $1}))
325 0 0 if ($type =~ /^".+"$/u) { }
0 0 elsif ($type eq 'autodie') { }
326 0 0 if $val ne $asm->_parse_string($type)
328 0 0 unless defined $autodie
330 0 0 if $asm->_get_value_type($val) ne $type
333 0 0 if ($type eq 'reg') { }
0 0 elsif ($type eq 'int') { }
0 0 elsif ($type =~ /^[a-z]+:$/u) { }
0 0 elsif ($type eq 'undef') { }
0 0 elsif ($type =~ /^".+"$/u) { }
0 0 elsif ($type eq 'autodie') { }
336 0 0 if ($mods eq 'rel4') { }
0 0 elsif ($mods eq 'half') { }
339 0 0 if ($data & 1)
345 0 0 if ($data & 1)
360 0 0 if ${$autodie;} xor $reset_autodie
367 0 0 if ($dst eq 'extra[]') { }
0 0 elsif ($dst eq 'undef') { }
378 0 0 if defined $autodie and $reset_autodie
383 0 0 if ($cmd eq 'compare' and scalar @args >= 3 and $args[0] eq 'out') { }
0 0 elsif ($cmd eq 'open' and scalar @args == 2 and $asm->_get_value_type($args[0]) eq 'reg' and $asm->_get_value_type($args[1]) eq 'int') { }
0 0 elsif ($cmd eq 'open' and scalar @args == 2 and $asm->_get_value_type($args[0]) eq 'reg' and $asm->_get_value_type($args[1]) =~ /:$/u) { }
0 0 elsif ($cmd eq 'jump' and scalar @args >= 3 and $asm->_get_value_type($args[0]) eq 'int' and $args[1] eq 'if' || $args[1] eq 'unless') { }
0 0 elsif ($cmd eq 'noop' and scalar @args == 1 and $asm->_get_value_type($args[0]) eq 'string') { }
0 0 elsif ($cmd eq 'execution_info_flags') { }
388 0 0 if (defined(my $v = $_compare_flags{$flag})) { }
398 0 0 if ($num >= 0 and $num <= 7 and !defined($size) || $size != 4) { }
415 0 0 if ($extra & 1)
420 0 0 if ($args[1] eq 'if') { }
0 0 elsif ($args[1] eq 'unless') { }
431 0 0 unless $reg eq "out"
433 0 0 if ($op eq 'is') { }
0 0 elsif ($op eq '<' and $val eq '0' or $op eq '<=' and $val eq '-1') { }
0 0 elsif ($op eq '==' and $val eq '0') { }
0 0 elsif ($op eq '>' and $val eq '0' or $op eq '>=' and $val =~ /^\+?1$/u) { }
434 0 0 if ($val eq 'valid') { }
0 0 elsif ($val eq 'true') { }
0 0 elsif ($val eq 'notfine' or $val eq 'bad' or $val eq 'dog' or $val eq 'hotdog') { }
453 0 0 if scalar @cond and $cond[0] eq "or"
456 0 0 if (scalar @cond)
465 0 0 if ($l > 6 or $l & 1)
474 0 0 if ($flag eq 'resources_only') { }
0 0 elsif ($flag eq 'single_load') { }
0 0 elsif ($flag eq 'multi_session') { }
497 0 0 if scalar @opts
501 0 0 if (defined $pos and $pos & 1)
505 0 0 unless $fh->read($data, 2) == 2
519 0 0 if ($code <= 3) { }
0 0 elsif ($code == 4) { }
527 0 0 if ($code <= 1 and $codeX <= 1) { }
0 0 elsif ($code <= 1 and $codeX == 3) { }
0 0 elsif ($code == 1 and $codeX == 2 and ($S & 4) == 4) { }
0 0 elsif ($code == 1 and $codeX == 2 and $S == 3) { }
0 0 elsif ($code == 1 and $codeX == 2 and $S == 1) { }
0 0 elsif ($code == 0 and $codeX == 2) { }
0 0 elsif ($code == 3) { }
0 0 elsif ($code == 4) { }
549 0 0 if ($extra_len)
552 0 0 unless $fh->read($extra, $extra_len) == $extra_len
567 0 0 if scalar @opts
571 0 0 if (defined $self->{'size'}) { }
577 0 0 if ($required > $size) { }
0 0 elsif ($required < $size) { }
581 0 0 if $diff & 1
587 0 0 if (ref $self->{'extra'}) { }
0 0 elsif (defined $self->{'extra'}) { }
590 0 0 if length $self->{'extra'} & 1
599 0 0 if scalar @opts
608 0 0 if scalar @opts
618 0 0 if scalar @opts
621 0 0 unless defined $self->{'second'}
625 0 0 if (ref $self->{'extra'}) { }
0 0 elsif (defined $self->{'extra'}) { }
629 0 0 if $l & 1
640 0 0 if scalar @opts
644 0 0 if ($self->{'first'} == 7 and $self->{'codeX'} == 0 and $self->{'S'} == 2) { }
0 0 elsif ($self->{'code'} == 0 and $self->{'codeX'} == 1) { }
659 0 0 if scalar @opts
670 0 0 if scalar @opts
674 0 0 if ($self->{'first'} == 6 and $self->{'codeX'} == 0) { }
0 0 elsif ($self->{'first'} == 0 and $self->{'codeX'} == 0 and $self->{'S'} == 3 and $self->{'T'} & 4) { }
692 0 0 if scalar @opts
694 0 0 if (defined $opcode_to_text) { }
695 0 0 if (scalar @{$opcode_to_text->{'argmap'};} == 0) { }
707 0 0 if ($type eq 'reg') { }
0 0 elsif ($type =~ /^(?:sni|raen):$/u and $dst eq 'extra[]') { }
0 0 elsif ($type eq 'int_half' and $dst eq 'extra[]') { }
0 0 elsif ($type eq 'int_rel4' and $dst eq 'extra[]') { }
0 0 elsif ($type eq 'int' and $dst eq 'extra[]') { }
0 0 elsif ($type eq 'undef' and $dst eq 'undef') { }
0 0 elsif ($type =~ /^"([0-9a-zA-Z]+)"$/u and $dst eq 'undef') { }
0 0 elsif ($type eq 'autodie' and $dst eq 'true') { }
0 0 elsif ($type eq 'autodie' and $dst eq 'false') { }
740 0 0 if ($code == 0 and $codeX == 3 and defined(my $regname = 'SIRTX::VM::RegisterFile'->_physical_name_by_number($second & 63))) { }
0 0 elsif ($first == 0 and $codeX == 0 and $S > 0 and $T == 0) { }
0 0 elsif ($first == 0 and $codeX == 0 and $S > 0 and $T == 4) { }
0 0 elsif ($first == 0 and $codeX == 0 and $S > 0 and $T & 4) { }
0 0 elsif ($first == 0 and $codeX == 0 and $S == 0 and $T > 0 and $T < 4) { }
0 0 elsif ($code == 0 and $codeX == 2 and $S == 7) { }
0 0 elsif ($code == 0 and $codeX == 1 and $S == 6 and $T == 2) { }
0 0 elsif ($code == 0 and $codeX == 1 and $S == 7 and $T == 1) { }
0 0 elsif ($code == 3 and $codeX == 2 and $S == 0) { }
0 0 elsif ($code == 3 and $codeX == 0) { }
761 0 0 if $flags
763 0 0 if $flags & $_compare_flags{$key}
767 0 0 if ($P & 1) { }
773 0 0 if $S & 1
774 0 0 if $S & 2
775 0 0 if $S & 4
777 0 0 if $T & 1
778 0 0 if $T & 2
779 0 0 if $T & 4
785 0 0 unless (defined $command)
787 0 0 if defined $self->{'extra'}
791 0 0 defined $self->{'pos'} ? :
807 0 0 if scalar @opts
809 0 0 if defined $self->{'opcode_to_text'}
819 0 0 if ($entry->{'masked_code'} == ($code & $entry->{'mask'}))
833 0 0 if scalar @opts
837 0 0 if ($self->{'first'} == 1 and $self->{'codeX'} == 0 and $self->{'S'} == 1) { }
0 0 elsif ($self->{'first'} == 6 and $self->{'codeX'} == 0 and $self->{'S'} == 7 and defined $self->{'pos'}) { }
840 0 0 if ($T == 1)
847 0 0 if ($T == 1) { }
0 0 elsif ($T == 2) { }
922 0 0 $x >= 32 && $x <= 126 && $x != 92 ? :