Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
MemoryManager Class Reference

#include <memory_manager.hpp>

Public Member Functions

 MemoryManager ()=default
 
 MemoryManager (const MemoryManager &other)=default
 
MemoryManageroperator= (const MemoryManager &other)
 
 MemoryManager (MemoryManager &&other)=default
 
MemoryManageroperator= (MemoryManager &&other)=default
 
 ~MemoryManager ()=default
 
void set_memory_address (bb::avm2::MemoryTag tag, uint32_t address)
 
std::optional< uint32_t > get_memory_offset (bb::avm2::MemoryTag tag, uint32_t address_index)
 
std::optional< uint8_t > get_memory_offset_8_bit (bb::avm2::MemoryTag tag, uint16_t address_index)
 
bool is_memory_address_set (uint16_t address)
 
std::optional< std::pair< uint32_t, bb::avm2::testing::OperandBuilder > > get_memory_address_and_operand_8 (AddressRef address)
 
std::optional< std::pair< uint32_t, bb::avm2::testing::OperandBuilder > > get_memory_address_and_operand_8 (ResultAddressRef address)
 
std::optional< std::pair< uint32_t, bb::avm2::testing::OperandBuilder > > get_memory_address_and_operand_16 (AddressRef address)
 
std::optional< std::pair< uint32_t, bb::avm2::testing::OperandBuilder > > get_memory_address_and_operand_16 (ResultAddressRef address)
 
void append_slot (bb::avm2::FF slot)
 
std::optional< bb::avm2::FFget_slot (uint16_t slot_offset_index)
 
void append_emitted_note_hash (bb::avm2::FF note_hash)
 
std::optional< bb::avm2::FFget_emitted_note_hash (uint16_t note_hash_index)
 
std::optional< uint16_t > get_leaf_index (uint16_t note_hash_index)
 

Private Member Functions

bb::avm2::testing::OperandBuilder get_memory_address_operand (bb::avm2::testing::OperandBuilder operand, AddressingMode mode)
 
std::optional< uint32_t > get_memory_address_to_resolve (AddressRef address)
 
std::optional< uint32_t > get_memory_address_to_resolve (ResultAddressRef address)
 

Private Attributes

std::map< bb::avm2::MemoryTag, std::vector< uint32_t > > stored_variables
 
std::map< uint32_t, bb::avm2::MemoryTagmemory_address_to_tag
 
std::vector< bb::avm2::FFstorage_addresses
 
std::vector< bb::avm2::FFemitted_note_hashes
 

Detailed Description

Definition at line 12 of file memory_manager.hpp.

Constructor & Destructor Documentation

◆ MemoryManager() [1/3]

MemoryManager::MemoryManager ( )
default

◆ MemoryManager() [2/3]

MemoryManager::MemoryManager ( const MemoryManager other)
default

◆ MemoryManager() [3/3]

MemoryManager::MemoryManager ( MemoryManager &&  other)
default

◆ ~MemoryManager()

MemoryManager::~MemoryManager ( )
default

Member Function Documentation

◆ append_emitted_note_hash()

void MemoryManager::append_emitted_note_hash ( bb::avm2::FF  note_hash)

Definition at line 198 of file memory_manager.cpp.

◆ append_slot()

void MemoryManager::append_slot ( bb::avm2::FF  slot)

Definition at line 185 of file memory_manager.cpp.

◆ get_emitted_note_hash()

std::optional< bb::avm2::FF > MemoryManager::get_emitted_note_hash ( uint16_t  note_hash_index)

Definition at line 203 of file memory_manager.cpp.

◆ get_leaf_index()

std::optional< uint16_t > MemoryManager::get_leaf_index ( uint16_t  note_hash_index)

Definition at line 211 of file memory_manager.cpp.

◆ get_memory_address_and_operand_16() [1/2]

std::optional< std::pair< uint32_t, bb::avm2::testing::OperandBuilder > > MemoryManager::get_memory_address_and_operand_16 ( AddressRef  address)

Definition at line 132 of file memory_manager.cpp.

◆ get_memory_address_and_operand_16() [2/2]

std::optional< std::pair< uint32_t, bb::avm2::testing::OperandBuilder > > MemoryManager::get_memory_address_and_operand_16 ( ResultAddressRef  address)

Definition at line 147 of file memory_manager.cpp.

◆ get_memory_address_and_operand_8() [1/2]

std::optional< std::pair< uint32_t, bb::avm2::testing::OperandBuilder > > MemoryManager::get_memory_address_and_operand_8 ( AddressRef  address)

Definition at line 101 of file memory_manager.cpp.

◆ get_memory_address_and_operand_8() [2/2]

std::optional< std::pair< uint32_t, bb::avm2::testing::OperandBuilder > > MemoryManager::get_memory_address_and_operand_8 ( ResultAddressRef  address)

Definition at line 118 of file memory_manager.cpp.

◆ get_memory_address_operand()

OperandBuilder MemoryManager::get_memory_address_operand ( bb::avm2::testing::OperandBuilder  operand,
AddressingMode  mode 
)
private

Definition at line 82 of file memory_manager.cpp.

◆ get_memory_address_to_resolve() [1/2]

std::optional< uint32_t > MemoryManager::get_memory_address_to_resolve ( AddressRef  address)
private

Definition at line 38 of file memory_manager.cpp.

◆ get_memory_address_to_resolve() [2/2]

std::optional< uint32_t > MemoryManager::get_memory_address_to_resolve ( ResultAddressRef  address)
private

Definition at line 62 of file memory_manager.cpp.

◆ get_memory_offset()

std::optional< uint32_t > MemoryManager::get_memory_offset ( bb::avm2::MemoryTag  tag,
uint32_t  address_index 
)

Definition at line 161 of file memory_manager.cpp.

◆ get_memory_offset_8_bit()

std::optional< uint8_t > MemoryManager::get_memory_offset_8_bit ( bb::avm2::MemoryTag  tag,
uint16_t  address_index 
)

Definition at line 171 of file memory_manager.cpp.

◆ get_slot()

std::optional< bb::avm2::FF > MemoryManager::get_slot ( uint16_t  slot_offset_index)

Definition at line 190 of file memory_manager.cpp.

◆ is_memory_address_set()

bool MemoryManager::is_memory_address_set ( uint16_t  address)

Definition at line 15 of file memory_manager.cpp.

◆ operator=() [1/2]

MemoryManager & MemoryManager::operator= ( const MemoryManager other)

Definition at line 6 of file memory_manager.cpp.

◆ operator=() [2/2]

MemoryManager & MemoryManager::operator= ( MemoryManager &&  other)
default

◆ set_memory_address()

void MemoryManager::set_memory_address ( bb::avm2::MemoryTag  tag,
uint32_t  address 
)

Definition at line 20 of file memory_manager.cpp.

Member Data Documentation

◆ emitted_note_hashes

std::vector<bb::avm2::FF> MemoryManager::emitted_note_hashes
private

Definition at line 22 of file memory_manager.hpp.

◆ memory_address_to_tag

std::map<uint32_t, bb::avm2::MemoryTag> MemoryManager::memory_address_to_tag
private

Definition at line 17 of file memory_manager.hpp.

◆ storage_addresses

std::vector<bb::avm2::FF> MemoryManager::storage_addresses
private

Definition at line 20 of file memory_manager.hpp.

◆ stored_variables

std::map<bb::avm2::MemoryTag, std::vector<uint32_t> > MemoryManager::stored_variables
private

Definition at line 15 of file memory_manager.hpp.


The documentation for this class was generated from the following files: