CPU-x86_64-InstructionWriter
view release on metacpan or search on metacpan
lib/CPU/x86_64/InstructionWriter/RipRelative.pm view on Meta::CPAN
package CPU::x86_64::InstructionWriter::RipRelative;
our $VERSION = '0.005'; # VERSION
use strict;
use warnings;
use Carp;
use Scalar::Util 'weaken';
# ABSTRACT: Object representing an offset to a label
sub instruction { weaken($_[0]{instruction}= $_[1]) if @_ > 1; $_[0]{instruction} }
sub target { @_ > 1 && carp "Read-only"; $_[0]{target} }
sub name { 'rip-to-' . $_[0]{target}->name }
sub value {
my $self= shift;
if (($self->instruction->relative_to||0) == ($self->target->relative_to||0)) {
my $rip_ofs= $self->instruction->offset + $self->instruction->len;
my $label_ofs= $self->target->offset;
return defined $label_ofs? $label_ofs - $rip_ofs : undef;
} else {
my $start= $self->instruction->relative_to->value;
( run in 0.760 second using v1.01-cache-2.11-cpan-65fba6d93b7 )