#include <addressing.hpp>
|
| bool | is_address_out_of_range (uint64_t address) |
| | Checks if an address as uint64_t is out of range. Emits a gt event comparing the address to AVM_HIGHEST_MEM_ADDRESS.
|
| |
Definition at line 16 of file addressing.hpp.
◆ Addressing()
◆ is_address_out_of_range()
| bool bb::avm2::simulation::Addressing::is_address_out_of_range |
( |
uint64_t |
address | ) |
|
|
private |
Checks if an address as uint64_t is out of range. Emits a gt event comparing the address to AVM_HIGHEST_MEM_ADDRESS.
- Parameters
-
- Returns
- true if the address is out of range, false otherwise
Definition at line 182 of file addressing.cpp.
◆ resolve()
Resolve the operands of an instruction. If the operands are non-addresses, they are returned as is. If the operands are addresses, we apply relative addressing and indirection to them. We emit an event of type AddressingEvent with the resolution information.
- Parameters
-
| instruction | the instruction to resolve |
| memory | the memory to use |
- Returns
- std::vector<Operand> the resolved operands
- Exceptions
-
| AddressingException | if an error occurs:
- BASE_ADDRESS_INVALID: the base address is invalid
- RELATIVE_COMPUTATION_OOB: the relative address computation overflowed
- INVALID_ADDRESS_AFTER_INDIRECTION: the address obtained after applying indirection is invalid Note: We always process all operands even if an error occurs in one of them as we need error information for each operand in the event to correctly perform the trace generation.
|
Implements bb::avm2::simulation::AddressingInterface.
Definition at line 32 of file addressing.cpp.
◆ events
◆ gt
◆ instruction_info_db
The documentation for this class was generated from the following files: