Condition Coverage

blib/lib/CPU/x86_64/InstructionWriter.pm
Criterion Covered Total %
condition 99 261 37.9


and 3 conditions

line !l l&&!r l&&r condition
103 0 61 78 defined $name and defined $labels->{$name}
188 8 0 0 ref $dst && ref($dst)->can('value')
193 3 0 0 ref $src && ref($src)->can('value')
410 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]
1131 0 0 420 defined $reg1 && defined $reg2
1136 0 0 0 $old_reg1 and $old_reg1 > 3
0 0 0 $old_reg2 and $old_reg2 > 3
1226 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
1386 56 98 294 defined $opcode8 && $value >> 7 == $value >> 8
1410 56 98 294 defined $opcode8 && ($value >> 7 == $value >> 8 || $value >> 8 == 16777215)
1436 49 98 245 defined $opcode8 && ($value >> 7 == $value >> 8 || $value >> 8 == 255)
1494 504 882 2646 defined $opcode8 && $value >> 7 == $value >> 8
1513 504 882 2646 defined $opcode8 && ($value >> 7 == $value >> 8 || $value >> 8 == 16777215)
1533 441 882 2205 defined $opcode8 && ($value >> 7 == $value >> 8 || $value >> 8 == 255)
1675 51729 0 0 ref $u and ref $u ne "SCALAR"
51729 0 0 ref $u and ref $u ne "SCALAR" and CORE::not &looks_like_number($u)

or 2 conditions

line l !l condition
165 3 1 $fill //= "\220"
973 28 0 $nesting //= 0
1226 0 0 $base_reg // 0
0 0 $index_reg // 0
1317 28694 0 $scale // 1
1337 9564 0 $scale // 1

or 3 conditions

line l !l&&r !l&&!r condition
182 8 1 0 $register_bits{$dst} || $register_bits{$src}
0 9 0 $bits ||= $register_bits{$dst} || $register_bits{$src}
196 9 0 0 $self->can($method) || croak('No ' . uc($opname) . " variant $method available")
203 0 0 0 $bits ||= $opr_type
211 0 0 0 $self->can($method) || croak('No ' . uc($opname) . " variant $method available")
259 7 0 0 $regnum64{$reg} // croak("$reg is not a 64-bit register")
308 7 0 0 $regnum64{$reg} // croak("$reg is not a 64-bit register")
410 8 8 169 $mem->[1] > 2147483647 || ref $mem->[1]
446 63 0 0 $regnum64{$reg} // croak("$reg is not a 64-bit register")
469 57 0 0 $regnum32{$reg} // croak("$reg is not a 32-bit register")
476 49 0 0 $regnum16{$reg} // croak("$reg is not a 16-bit register")
487 20 0 0 $regnum8_high{$_[1]} // croak("$_[1] is not a 8-bit register")
940 7 0 0 $regnum64{$reg} // croak("$reg is not a 64-bit register")
963 7 0 0 $regnum64{$reg} // croak("$reg is not a 64-bit register")
974 0 0 28 ref $varspace || ref $nesting
1094 735 0 0 $regnum64{$reg1} // croak("$reg1 is not a 64-bit register")
1095 735 0 0 $regnum64{$reg2} // croak("$reg2 is not a 64-bit register")
1104 646 0 0 $regnum32{$reg1} // croak("$reg1 is not a 32-bit register")
1105 646 0 0 $regnum32{$reg2} // croak("$reg2 is not a 32-bit register")
1115 602 0 0 $regnum16{$reg1} // croak("$reg1 is not a 16-bit register")
1116 602 0 0 $regnum16{$reg2} // croak("$reg2 is not a 16-bit register")
1134 0 0 0 $regnum8_high{$_[2]} // croak("$_[2] is not a valid 8-bit register")
1135 0 0 0 $regnum8_high{$_[3]} // croak("$_[3] is not a valid 8-bit register")
1136 0 0 0 $old_reg1 and $old_reg1 > 3 or $old_reg2 and $old_reg2 > 3
1142 280 100 40 $reg1 > 3 || $reg2 > 3
1159 72 0 0 $regnum8_high{$_[3]} // croak("$_[3] is not a valid 8-bit register")
1180 9263 0 0 $regnum64{$reg} // croak("$reg is not a valid 64-bit register")
1182 7058 0 0 $regnum64{$base_reg} // croak("$base_reg is not a valid 64-bit register")
1184 7057 0 0 $regnum64{$index_reg} // croak("$index_reg is not a valid 64-bit register")
1193 9013 0 0 $regnum32{$reg} // croak("$reg is not a valid 32-bit register")
1195 6867 0 0 $regnum64{$base_reg} // croak("$base_reg is not a valid 64-bit register")
1197 6865 0 0 $regnum64{$index_reg} // croak("$index_reg is not a valid 64-bit register")
1205 9009 0 0 $regnum16{$reg} // croak("$reg is not a valid 16-bit register")
1207 6864 0 0 $regnum64{$base_reg} // croak("$base_reg is not a valid 64-bit register")
1209 6864 0 0 $regnum64{$index_reg} // croak("$index_reg is not a valid 64-bit register")
1218 5568 0 0 $regnum64{$base_reg} // croak("$base_reg is not a valid 64-bit register")
1220 5568 0 0 $regnum64{$index_reg} // croak("$index_reg is not a valid 64-bit register")
1225 0 0 0 $regnum8_high{$_[3]} // croak("$_[3] is not a valid 8-bit register")
1240 960 0 0 $regnum64{$base_reg} // croak("$base_reg is not a valid 64-bit register")
1242 960 0 0 $regnum64{$index_reg} // croak("$index_reg is not a valid 64-bit register")
1257 48 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1259 48 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1266 48 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1268 48 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1276 48 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1278 48 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1285 48 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1287 48 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1317 28694 0 0 $SIB_scale{$scale // 1} // croak("invalid index multiplier $scale")
1337 9564 0 0 $SIB_scale{$scale // 1} // croak("invalid index multiplier $scale")
1379 448 0 0 $regnum64{$args[4]} // croak("$args[4] is not a 64-bit register")
1403 448 0 0 $regnum32{$args[4]} // croak("$args[4] is not a 32-bit register")
1429 392 0 0 $regnum16{$args[4]} // croak("$args[4] is not a 16-bit register")
1468 0 0 0 $regnum8_high{$_[1]} // croak("$reg is not a 8-bit register")
1485 3072 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1487 3072 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1504 3072 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1506 3072 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1523 2688 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1525 2688 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1543 1920 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1545 1920 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1683 0 0 0 $u->value // croak("Value '$u->{'name'}' is still unresolved")
1747 0 0 0 $bits == 64 or $v >> $bits == $v >> $bits + 1