NAME
SIRTX::VM::RegisterFile - module for interacting with SIRTX VM code
VERSION
version v0.11
SYNOPSIS
use SIRTX::VM::RegisterFile;
This package inherits from Data::Identifier::Interface::Userdata.
METHODS
new
my SIRTX::VM::RegisterFile $rf = SIRTX::VM::RegisterFile->new;
Creates a new register file. The registers are in default configuration.
map_reset
$rf->map_reset;
Resets the mapping between logical and physical registers.
map
$rf->map($logical => $physical);
Maps the logical register to a physical register.
get_physical
my SIRTX::VM::Register $register = $rf->get_physical($physical);
Gets the register by it's physical number.
If the requested register does not exist the method dies.
get_logical
my SIRTX::VM::Register $register = $rf->get_logical($logical);
Gets the register by it's logical number.
If the requested register does not exist the method dies.
get_physical_by_name
my SIRTX::VM::Register $register = $rf->get_physical_by_name($name);
Gets the register by it's name. The name may be a name for a physical or a logical register.
If the requested register does not exist the method dies.
get_logical_by_physical
my $logical = $rf->get_logical_by_physical($physical);
Get the logical register number for a given physical register.
If the requested register is not mapped the method dies.
register_owner
my $owner = $rf->register_owner($register);
$register->register_owner($register, $owner);
# e.g:
$register->register_owner($register, SIRTX::VM::Register::OWNER_YOURS());
Gets or sets the register owner.
register_temperature
my $temperature = $rf->register_temperature($register);
$register->register_temperature($register, $temperature);
# e.g.:
$register->register_temperature($register, SIRTX::VM::Register::TEMPERATURE_HOT());
Gets or sets the register temperature.
expand
my @expanded_names = $rf->expand(@names);
Expands a list of register names. Returns the list of explicit names.
clone
my SIRTX::VM::RegisterFile $clone = $rf->clone;
Clones the register file.
AUTHOR
Philipp Schafft <lion@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2024-2025 by Philipp Schafft <lion@cpan.org>.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)