Condition Coverage

lib/SIRTX/VM/Opcode.pm
Criterion Covered Total %
condition 0 307 0.0


and 3 conditions

line !l l&&!r l&&r condition
302 0 0 0 scalar @argmap >= 2 and $argmap[-2] eq "autodie"
319 0 0 0 $type ne "autodie" and $val =~ /^raes:(.+)$/u
378 0 0 0 defined $autodie and $reset_autodie
383 0 0 0 $cmd eq "compare" and scalar @args >= 3
0 0 0 $cmd eq "compare" and scalar @args >= 3 and $args[0] eq "out"
0 0 0 $cmd eq "open" and scalar @args == 2
0 0 0 $cmd eq "open" and scalar @args == 2 and $asm->_get_value_type($args[0]) eq "reg"
0 0 0 $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 0 $cmd eq "open" and scalar @args == 2
0 0 0 $cmd eq "open" and scalar @args == 2 and $asm->_get_value_type($args[0]) eq "reg"
0 0 0 $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 0 $cmd eq "jump" and scalar @args >= 3
0 0 0 $cmd eq "jump" and scalar @args >= 3 and $asm->_get_value_type($args[0]) eq "int"
0 0 0 $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 0 $cmd eq "noop" and scalar @args == 1
0 0 0 $cmd eq "noop" and scalar @args == 1 and $asm->_get_value_type($args[0]) eq "string"
398 0 0 0 $num >= 0 and $num <= 7
0 0 0 $num >= 0 and $num <= 7 and !defined($size) || $size != 4
433 0 0 0 $op eq "<" and $val eq 0
0 0 0 $op eq "<=" and $val eq -1
0 0 0 $op eq "==" and $val eq 0
0 0 0 $op eq ">" and $val eq 0
0 0 0 $op eq ">=" and $val =~ /^\+?1$/u
453 0 0 0 scalar @cond and $cond[0] eq "or"
501 0 0 0 defined $pos and $pos & 1
527 0 0 0 $code <= 1 and $codeX <= 1
0 0 0 $code <= 1 and $codeX == 3
0 0 0 $code == 1 and $codeX == 2
0 0 0 $code == 1 and $codeX == 2 and ($S & 4) == 4
0 0 0 $code == 1 and $codeX == 2
0 0 0 $code == 1 and $codeX == 2 and $S == 3
0 0 0 $code == 1 and $codeX == 2
0 0 0 $code == 1 and $codeX == 2 and $S == 1
0 0 0 $code == 0 and $codeX == 2
644 0 0 0 $self->{'first'} == 7 and $self->{'codeX'} == 0
0 0 0 $self->{'first'} == 7 and $self->{'codeX'} == 0 and $self->{'S'} == 2
0 0 0 $self->{'code'} == 0 and $self->{'codeX'} == 1
663 0 0 0 $self->{'first'} == 7 && $self->{'second'} == 20
674 0 0 0 $self->{'first'} == 6 and $self->{'codeX'} == 0
0 0 0 $self->{'first'} == 0 and $self->{'codeX'} == 0
0 0 0 $self->{'first'} == 0 and $self->{'codeX'} == 0 and $self->{'S'} == 3
0 0 0 $self->{'first'} == 0 and $self->{'codeX'} == 0 and $self->{'S'} == 3 and $self->{'T'} & 4
707 0 0 0 $type =~ /^(?:sni|raen):$/u and $dst eq "extra[]"
0 0 0 $type eq "int_half" and $dst eq "extra[]"
0 0 0 $type eq "int_rel4" and $dst eq "extra[]"
0 0 0 $type eq "int" and $dst eq "extra[]"
0 0 0 $type eq "undef" and $dst eq "undef"
0 0 0 $type =~ /^"([0-9a-zA-Z]+)"$/u and $dst eq "undef"
0 0 0 $type eq "autodie" and $dst eq "true"
0 0 0 $type eq "autodie" and $dst eq "false"
740 0 0 0 $code == 0 and $codeX == 3
0 0 0 $code == 0 and $codeX == 3 and defined(my $regname = "SIRTX::VM::RegisterFile"->_physical_name_by_number($second & 63))
0 0 0 $first == 0 and $codeX == 0
0 0 0 $first == 0 and $codeX == 0 and $S > 0
0 0 0 $first == 0 and $codeX == 0 and $S > 0 and $T == 0
0 0 0 $first == 0 and $codeX == 0
0 0 0 $first == 0 and $codeX == 0 and $S > 0
0 0 0 $first == 0 and $codeX == 0 and $S > 0 and $T == 4
0 0 0 $first == 0 and $codeX == 0
0 0 0 $first == 0 and $codeX == 0 and $S > 0
0 0 0 $first == 0 and $codeX == 0 and $S > 0 and $T & 4
0 0 0 $first == 0 and $codeX == 0
0 0 0 $first == 0 and $codeX == 0 and $S == 0
0 0 0 $first == 0 and $codeX == 0 and $S == 0 and $T > 0
0 0 0 $first == 0 and $codeX == 0 and $S == 0 and $T > 0 and $T < 4
0 0 0 $code == 0 and $codeX == 2
0 0 0 $code == 0 and $codeX == 2 and $S == 7
0 0 0 $code == 0 and $codeX == 1
0 0 0 $code == 0 and $codeX == 1 and $S == 6
0 0 0 $code == 0 and $codeX == 1 and $S == 6 and $T == 2
0 0 0 $code == 0 and $codeX == 1
0 0 0 $code == 0 and $codeX == 1 and $S == 7
0 0 0 $code == 0 and $codeX == 1 and $S == 7 and $T == 1
0 0 0 $code == 3 and $codeX == 2
0 0 0 $code == 3 and $codeX == 2 and $S == 0
0 0 0 $code == 3 and $codeX == 0
837 0 0 0 $self->{'first'} == 1 and $self->{'codeX'} == 0
0 0 0 $self->{'first'} == 1 and $self->{'codeX'} == 0 and $self->{'S'} == 1
0 0 0 $self->{'first'} == 6 and $self->{'codeX'} == 0
0 0 0 $self->{'first'} == 6 and $self->{'codeX'} == 0 and $self->{'S'} == 7
0 0 0 $self->{'first'} == 6 and $self->{'codeX'} == 0 and $self->{'S'} == 7 and defined $self->{'pos'}
922 0 0 0 $x >= 32 && $x <= 126 && $x != 92

or 2 conditions

line l !l condition
214 0 0 delete $opts{$key} // (next)
368 0 0 $updates{'extra'} //= []
689 0 0 $self->{'extra'} // ""
743 0 0 $SIRTX::VM::Assembler::_header_ids_rev{$S} // "???"
745 0 0 $SIRTX::VM::Assembler::_header_ids_rev{$S} // "???"
747 0 0 $SIRTX::VM::Assembler::_header_ids_rev{$S} // "???"

or 3 conditions

line l !l&&r !l&&!r condition
383 0 0 0 $args[1] eq 'if' || $args[1] eq 'unless'
398 0 0 0 !defined($size) || $size != 4
433 0 0 0 $op eq "<" and $val eq 0 or $op eq "<=" and $val eq -1
0 0 0 $op eq ">" and $val eq 0 or $op eq ">=" and $val =~ /^\+?1$/u
434 0 0 0 $val eq "notfine" or $val eq "bad"
0 0 0 $val eq "notfine" or $val eq "bad" or $val eq "dog"
0 0 0 $val eq "notfine" or $val eq "bad" or $val eq "dog" or $val eq "hotdog"
465 0 0 0 $l > 6 or $l & 1
620 0 0 0 $self->{'first'} //= $self->{'code'} << 3 | $self->{'P'}
621 0 0 0 $self->{'ST'} //= $self->{'S'} << 3 | $self->{'T'}
622 0 0 0 $self->{'second'} //= $self->{'codeX'} << 6 | $self->{'ST'}
646 0 0 0 $T == 0 || $T == 5
649 0 0 0 $S == 2 || $S == 3
676 0 0 0 $S == 0 || $S == 7
754 0 0 0 $_sni_to_logicals{$sni} // $sni

xor 4 conditions

line l&&r l&&!r !l&&r !l&&!r condition
360 0 0 0 0 ${$autodie;} xor $reset_autodie