Condition Coverage

blib/lib/CPU/x86_64/InstructionWriter.pm
Criterion Covered Total %
condition 98 258 37.9


and 3 conditions

line !l l&&!r l&&r condition
106 0 61 78 defined $name and defined $labels->{$name}
191 8 0 0 ref $dst && ref($dst)->can('value')
196 3 0 0 ref $src && ref($src)->can('value')
413 2691 168 689 CORE::not defined $mem->[0] and $mem->[1]
168 504 185 CORE::not defined $mem->[0] and $mem->[1] and CORE::not defined $mem->[2]
672 169 16 CORE::not defined $mem->[0] and $mem->[1] and CORE::not defined $mem->[2] and $mem->[1] > 2147483647 || ref $mem->[1]
1134 0 0 420 defined $reg1 && defined $reg2
1139 0 0 0 $old_reg1 and $old_reg1 > 3
0 0 0 $old_reg2 and $old_reg2 > 3
1229 0 0 0 CORE::not $rex and ($base_reg // 0) < 8
0 0 0 CORE::not $rex and ($base_reg // 0) < 8 and ($index_reg // 0) < 8
1389 56 98 294 defined $opcode8 && $value >> 7 == $value >> 8
1413 56 98 294 defined $opcode8 && ($value >> 7 == $value >> 8 || $value >> 8 == 16777215)
1439 49 98 245 defined $opcode8 && ($value >> 7 == $value >> 8 || $value >> 8 == 255)
1497 504 882 2646 defined $opcode8 && $value >> 7 == $value >> 8
1516 504 882 2646 defined $opcode8 && ($value >> 7 == $value >> 8 || $value >> 8 == 16777215)
1536 441 882 2205 defined $opcode8 && ($value >> 7 == $value >> 8 || $value >> 8 == 255)
1678 51729 0 0 ref $u and ref $u ne "SCALAR"

or 2 conditions

line l !l condition
168 3 1 $fill //= "\220"
976 28 0 $nesting //= 0
1229 0 0 $base_reg // 0
0 0 $index_reg // 0
1320 28694 0 $scale // 1
1340 9564 0 $scale // 1

or 3 conditions

line l !l&&r !l&&!r condition
185 8 1 0 $register_bits{$dst} || $register_bits{$src}
0 9 0 $bits ||= $register_bits{$dst} || $register_bits{$src}
199 9 0 0 $self->can($method) || croak('No ' . uc($opname) . " variant $method available")
206 0 0 0 $bits ||= $opr_type
214 0 0 0 $self->can($method) || croak('No ' . uc($opname) . " variant $method available")
262 7 0 0 $regnum64{$reg} // croak("$reg is not a 64-bit register")
311 7 0 0 $regnum64{$reg} // croak("$reg is not a 64-bit register")
413 8 8 169 $mem->[1] > 2147483647 || ref $mem->[1]
449 63 0 0 $regnum64{$reg} // croak("$reg is not a 64-bit register")
472 57 0 0 $regnum32{$reg} // croak("$reg is not a 32-bit register")
479 49 0 0 $regnum16{$reg} // croak("$reg is not a 16-bit register")
490 20 0 0 $regnum8_high{$_[1]} // croak("$_[1] is not a 8-bit register")
943 7 0 0 $regnum64{$reg} // croak("$reg is not a 64-bit register")
966 7 0 0 $regnum64{$reg} // croak("$reg is not a 64-bit register")
977 0 0 28 ref $varspace || ref $nesting
1097 735 0 0 $regnum64{$reg1} // croak("$reg1 is not a 64-bit register")
1098 735 0 0 $regnum64{$reg2} // croak("$reg2 is not a 64-bit register")
1107 646 0 0 $regnum32{$reg1} // croak("$reg1 is not a 32-bit register")
1108 646 0 0 $regnum32{$reg2} // croak("$reg2 is not a 32-bit register")
1118 602 0 0 $regnum16{$reg1} // croak("$reg1 is not a 16-bit register")
1119 602 0 0 $regnum16{$reg2} // croak("$reg2 is not a 16-bit register")
1137 0 0 0 $regnum8_high{$_[2]} // croak("$_[2] is not a valid 8-bit register")
1138 0 0 0 $regnum8_high{$_[3]} // croak("$_[3] is not a valid 8-bit register")
1139 0 0 0 $old_reg1 and $old_reg1 > 3 or $old_reg2 and $old_reg2 > 3
1145 280 100 40 $reg1 > 3 || $reg2 > 3
1162 72 0 0 $regnum8_high{$_[3]} // croak("$_[3] is not a valid 8-bit register")
1183 9263 0 0 $regnum64{$reg} // croak("$reg is not a valid 64-bit register")
1185 7058 0 0 $regnum64{$base_reg} // croak("$base_reg is not a valid 64-bit register")
1187 7057 0 0 $regnum64{$index_reg} // croak("$index_reg is not a valid 64-bit register")
1196 9013 0 0 $regnum32{$reg} // croak("$reg is not a valid 32-bit register")
1198 6867 0 0 $regnum64{$base_reg} // croak("$base_reg is not a valid 64-bit register")
1200 6865 0 0 $regnum64{$index_reg} // croak("$index_reg is not a valid 64-bit register")
1208 9009 0 0 $regnum16{$reg} // croak("$reg is not a valid 16-bit register")
1210 6864 0 0 $regnum64{$base_reg} // croak("$base_reg is not a valid 64-bit register")
1212 6864 0 0 $regnum64{$index_reg} // croak("$index_reg is not a valid 64-bit register")
1221 5568 0 0 $regnum64{$base_reg} // croak("$base_reg is not a valid 64-bit register")
1223 5568 0 0 $regnum64{$index_reg} // croak("$index_reg is not a valid 64-bit register")
1228 0 0 0 $regnum8_high{$_[3]} // croak("$_[3] is not a valid 8-bit register")
1243 960 0 0 $regnum64{$base_reg} // croak("$base_reg is not a valid 64-bit register")
1245 960 0 0 $regnum64{$index_reg} // croak("$index_reg is not a valid 64-bit register")
1260 48 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1262 48 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1269 48 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1271 48 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1279 48 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1281 48 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1288 48 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1290 48 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1320 28694 0 0 $SIB_scale{$scale // 1} // croak("invalid index multiplier $scale")
1340 9564 0 0 $SIB_scale{$scale // 1} // croak("invalid index multiplier $scale")
1382 448 0 0 $regnum64{$args[4]} // croak("$args[4] is not a 64-bit register")
1406 448 0 0 $regnum32{$args[4]} // croak("$args[4] is not a 32-bit register")
1432 392 0 0 $regnum16{$args[4]} // croak("$args[4] is not a 16-bit register")
1471 0 0 0 $regnum8_high{$_[1]} // croak("$reg is not a 8-bit register")
1488 3072 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1490 3072 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1507 3072 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1509 3072 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1526 2688 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1528 2688 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1546 1920 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1548 1920 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1686 0 0 0 $u->value // croak("Value '$u->{'name'}' is still unresolved")
1750 0 0 0 $bits == 64 or $v >> $bits == $v >> $bits + 1