diff --git a/src/frontend/ir/basic_block.cpp b/src/frontend/ir/basic_block.cpp index 086d672d..02c6ce00 100644 --- a/src/frontend/ir/basic_block.cpp +++ b/src/frontend/ir/basic_block.cpp @@ -13,15 +13,17 @@ #include #include "common/assert.h" +#include "common/memory_pool.h" #include "frontend/A32/types.h" #include "frontend/A64/types.h" #include "frontend/ir/basic_block.h" +#include "frontend/ir/cond.h" #include "frontend/ir/opcodes.h" namespace Dynarmic::IR { Block::Block(const LocationDescriptor& location) - : location{location}, end_location{location}, + : location{location}, end_location{location}, cond{Cond::AL}, instruction_alloc_pool{std::make_unique(sizeof(Inst), 4096)} {} Block::~Block() = default; diff --git a/src/frontend/ir/basic_block.h b/src/frontend/ir/basic_block.h index eb27fd4d..ca91aacc 100644 --- a/src/frontend/ir/basic_block.h +++ b/src/frontend/ir/basic_block.h @@ -13,15 +13,18 @@ #include "common/common_types.h" #include "common/intrusive_list.h" -#include "common/memory_pool.h" -#include "frontend/ir/cond.h" #include "frontend/ir/location_descriptor.h" #include "frontend/ir/microinstruction.h" #include "frontend/ir/terminal.h" #include "frontend/ir/value.h" +namespace Dynarmic::Common { +class Pool; +} + namespace Dynarmic::IR { +enum class Cond; enum class Opcode; /** @@ -142,7 +145,7 @@ private: /// Description of the end location of this block LocationDescriptor end_location; /// Conditional to pass in order to execute this block - Cond cond = Cond::AL; + Cond cond; /// Block to execute next if `cond` did not pass. std::optional cond_failed = {}; /// Number of cycles this block takes to execute if the conditional fails.