Condition Coverage

blib/lib/CPU/x86_64/InstructionWriter.pm
Criterion Covered Total %
condition 120 273 43.9


and 3 conditions

line !l l&&!r l&&r condition
100 57629 0 0 @_ == 1 && ref $_[0] eq 'HASH'
134 9 243 5 defined $name and ord $name == 46
135 9 71 177 defined $name and defined $labels->{$name}
191 2 0 0 defined $self_label->offset and defined $peer_label->offset
2 0 0 defined $self_label->offset and defined $peer_label->offset and $self_label->relative_to != $peer_label->relative_to
195 1 0 1 defined $self_label->offset and $peer_label->relative_to == $peer->start_address
302 2976 0 0 ref $_ && ref($_)->can('value')
528 2747 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 185 0 CORE::not defined $mem->[0] and $mem->[1] and CORE::not defined $mem->[2] and $mem->[1] > 2147483647 || ref $mem->[1]
1429 29283 0 97 $base_reg & 64 and ref $disp
1587 56 98 295 defined $opcode8 && $value >> 7 == $value >> 8
1611 56 98 294 defined $opcode8 && ($value >> 7 == $value >> 8 || $value >> 8 == 16777215)
1637 49 98 245 defined $opcode8 && ($value >> 7 == $value >> 8 || $value >> 8 == 255)
1694 504 882 2646 defined $opcode8 && $value >> 7 == $value >> 8
1713 504 882 2646 defined $opcode8 && ($value >> 7 == $value >> 8 || $value >> 8 == 16777215)
1733 441 882 2205 defined $opcode8 && ($value >> 7 == $value >> 8 || $value >> 8 == 255)
1759 54311 0 97 ref $u and CORE::not &looks_like_number($u)
1869 150 0 395 $p->can('encoder') && $p->encoder

or 2 conditions

line l !l condition
126 0 0 $_[1] // ""
180 1 0 $scope //= ""
216 3 1 $fill //= "\220"
270 1 2 $options{'encoding'} // "UTF-8"
271 1 2 $options{'nul_terminate'} // 1
1138 28 0 $nesting //= 0
1416 0 0 $base_reg // ""
0 0 $regnum64{$base_reg // ""} // 0
0 0 $index_reg // ""
0 0 $regnum64{$index_reg // ""} // 0
1517 30169 0 $scale // 1
1537 10056 0 $scale // 1

or 3 conditions

line l !l&&r !l&&!r condition
106 0 57629 0 $args{'start_address'} // unknown64("start_address")
137 71 9 0 $name //= $self->_anon_label
238 9 0 0 $set->{$str} //= $self->get_label
278 0 9 0 $str->{$sk} //= $self->get_label
304 217 2759 0 $bits //= ($reg & 65280) >> 5
311 95 2735 0 $self->can($method) // $self->can(join("_", $opname, @signature))
2830 0 0 ($self->can($method) // $self->can(join("_", $opname, @signature))) // croak('No ' . uc($opname) . " variant $method available")
528 16 0 169 $mem->[1] > 2147483647 || ref $mem->[1]
564 63 0 0 $regnum64{$reg} // croak("$reg is not a 64-bit register")
587 57 0 0 $regnum32{$reg} // croak("$reg is not a 32-bit register")
594 49 0 0 $regnum16{$reg} // croak("$reg is not a 16-bit register")
602 55 0 0 $regnum8{$reg} // croak("$_[1] is not a 8-bit register")
1105 15 0 0 $regnum64{$reg} // croak("$reg is not a 64-bit register")
1128 14 0 0 $regnum64{$reg} // croak("$reg is not a 64-bit register")
1139 0 0 28 ref $varspace || ref $nesting
1285 442 0 0 $regnum64{$reg1} // croak("$reg1 is not a 64-bit register")
1286 442 0 0 $regnum64{$reg2} // croak("$reg2 is not a 64-bit register")
1292 308 0 0 $regnum64{$reg2} // croak("$reg2 is not a 64-bit register")
1298 393 0 0 $regnum32{$reg1} // croak("$reg1 is not a 32-bit register")
1299 393 0 0 $regnum32{$reg2} // croak("$reg2 is not a 32-bit register")
1305 252 0 0 $regnum32{$reg2} // croak("$reg2 is not a 32-bit register")
1311 392 0 0 $regnum16{$reg1} // croak("$reg1 is not a 16-bit register")
1312 392 0 0 $regnum16{$reg2} // croak("$reg2 is not a 16-bit register")
1318 210 0 0 $regnum16{$reg2} // croak("$reg2 is not a 16-bit register")
1327 392 0 0 $regnum8{$reg1} // croak("$reg1 is not a valid 8-bit register")
240 392 0 $reg1num //= $regnum8{$reg1} // croak("$reg1 is not a valid 8-bit register")
1328 632 0 0 $regnum8{$reg2} // croak("$reg2 is not a valid 8-bit register")
1346 75 0 0 $regnum128{$xreg1} // croak("$xreg1 is not a 128-bit register")
1347 75 0 0 $regnum128{$xreg2} // croak("$xreg2 is not a 128-bit register")
1357 140 0 0 $regnum128{$xreg} // croak("$xreg is not a 128-bit register")
1382 2560 0 0 $regnum128{$reg} // croak("$reg is not a valid 128-bit register")
1388 7514 0 0 $regnum64{$reg} // croak("$reg is not a valid 64-bit register")
1395 7513 0 0 $regnum32{$reg} // croak("$reg is not a valid 32-bit register")
1402 7511 0 0 $regnum16{$reg} // croak("$reg is not a valid 16-bit register")
1409 7070 0 0 $regnum8{$reg} // croak("$reg is not a valid 8-bit register")
1416 0 0 0 $rex or ($regnum64{$base_reg // ""} // 0) & 8
0 0 0 $rex or ($regnum64{$base_reg // ""} // 0) & 8 or ($regnum64{$index_reg // ""} // 0) & 8
1424 29281 0 0 $regnum64{$index_reg} // croak("$index_reg is not a valid 64-bit register")
1428 29380 0 0 $regnum64{$base_reg} // croak("$base_reg is not a valid 64-bit register")
1451 48 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1453 48 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1460 48 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1462 48 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1470 48 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1472 48 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1479 48 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1481 48 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1504 0 0 179 defined $scale or defined $immed
1517 30169 0 0 $SIB_scale{$scale // 1} // croak("invalid index multiplier $scale")
1537 10056 0 0 $SIB_scale{$scale // 1} // croak("invalid index multiplier $scale")
1580 449 0 0 $regnum64{$args[4]} // croak("$args[4] is not a 64-bit register")
1604 448 0 0 $regnum32{$args[4]} // croak("$args[4] is not a 32-bit register")
1630 392 0 0 $regnum16{$args[4]} // croak("$args[4] is not a 16-bit register")
1665 280 0 0 $regnum8{$reg} // croak("$reg is not a 8-bit register")
1685 3072 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1687 3072 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1704 3072 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1706 3072 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1723 2688 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1725 2688 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1743 1920 0 0 $regnum64{$base_reg} // croak("$base_reg is not a 64-bit register")
1745 1920 0 0 $regnum64{$index_reg} // croak("$index_reg is not a 64-bit register")
1769 179 0 0 $lazy_enc->unknown->value // croak(q[Value '] . $lazy_enc->unknown->name . q[' is still unresolved])
1841 0 0 0 $bits == 64 or $v >> $bits == $v >> $bits + 1