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)