File Coverage

blib/lib/CPU/x86_64/InstructionWriter/Label.pm
Criterion Covered Total %
statement 15 22 68.1
branch 4 16 25.0
condition 0 3 0.0
subroutine 6 9 66.6
pod 3 6 50.0
total 28 56 50.0


line stmt bran cond sub pod time code
1             package CPU::x86_64::InstructionWriter::Label;
2             our $VERSION = '0.005'; # VERSION
3 20     20   129 use strict;
  20         40  
  20         795  
4 20     20   97 use warnings;
  20         38  
  20         1091  
5 20     20   167 use Carp;
  20         67  
  20         7535  
6              
7             # ABSTRACT: Object representing a jump target in the code
8              
9              
10 359 50   359 1 490 sub relative_to { @_ > 1 && croak "Read-only"; $_[0]{relative_to} }
  359         724  
11 0 0   0 1 0 sub name { @_ > 1 && croak "Read-only"; $_[0]{name} }
  0         0  
12 976 50   976 1 1810 sub offset { @_ > 1 && croak "Read-only"; $_[0]{offset} }
  976         2227  
13 359 50   359 0 674 sub len { @_ > 1 && croak "Read-only"; $_[0]{len}||0 }
  359 50       934  
14             sub value {
15 0     0 0   my $offset= $_[0]{offset};
16             my $rel= !defined $_[0]{relative_to}? 0
17             : ref $_[0]{relative_to}? $_[0]{relative_to}->value
18 0 0         : $_[0]{relative_to};
    0          
19 0 0 0       defined $offset && defined $rel? $offset + $rel : undef;
20             }
21              
22              
23             sub clone_into_writer {
24 0     0 0   my ($self, $writer, $offset, $label_map)= @_;
25 0           return $label_map->{$self};
26             }
27              
28             1;
29              
30             __END__