123456789101112131415161718192021222324252627282930313233343536 |
- #ifndef MANDEL_EXECDATA_H
- #define MANDEL_EXECDATA_H
- #include <asmjit/asmjit.h>
- #include <memory>
- namespace mnd
- {
- struct ExecData
- {
- std::unique_ptr<asmjit::JitRuntime> jitRuntime;
- std::unique_ptr<asmjit::CodeHolder> code;
- std::unique_ptr<asmjit::x86::Compiler> compiler;
- void* iterationFunc;
- ExecData(void) :
- jitRuntime{ std::make_unique<asmjit::JitRuntime>() },
- code{ std::make_unique<asmjit::CodeHolder>() },
- compiler{ nullptr },
- iterationFunc{ nullptr }
- {
- code->init(jitRuntime->codeInfo());
- compiler = std::make_unique<asmjit::x86::Compiler>(code.get());
- }
- ExecData(ExecData&&) = default;
- ExecData(const ExecData&) = delete;
- ExecData& operator=(ExecData&&) = default;
- ExecData& operator=(const ExecData&) = delete;
- ~ExecData(void) = default;
- };
- }
- #endif // MANDEL_EXECDATA_H
|