34#ifndef TTA_INSTRUCTION_MEMORY_HH
35#define TTA_INSTRUCTION_MEMORY_HH
38#if __cplusplus < 201103L
41#include <unordered_map>
93#if __cplusplus < 201103L
101 std::unordered_map<InstructionAddress, ExecutableInstruction*>
instructionMap_;
UInt32 InstructionAddress
void resetExecutionCounts()
std::vector< ExecutableInstruction * > InstructionContainer
Container for instructions.
ExecutableInstruction & instructionAt(InstructionAddress address)
std::map< InstructionAddress, InstructionContainer * > implicitInstructions_
Stores implicit instructions that should be executed after the explicit one in the same address.
const InstructionContainer & implicitInstructionsAt(InstructionAddress addr) const
void addImplicitExecutableInstruction(InstructionAddress addr, ExecutableInstruction *instruction)
std::map< InstructionAddress, ExecutableInstruction * > instructionMap_
Stores the explicit instruction addresses.
InstructionContainer emptyInstructions_
bool hasInstructionAt(InstructionAddress addr) const
InstructionAddress startAddress_
The starting address of the instruction memory address space.
InstructionContainer instructions_
All the instructions of the memory.
InstructionMemory & operator=(const InstructionMemory &)
Assignment not allowed.
const ExecutableInstruction & instructionAtConst(InstructionAddress address) const
void addExecutableInstruction(InstructionAddress addr, ExecutableInstruction *instruction)
virtual ~InstructionMemory()
InstructionMemory(const InstructionMemory &)
Copying not allowed.
bool hasImplicitInstructionsAt(InstructionAddress addr) const