From e95f422aabf33b15ae5ff569711f057a115ba9bd Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Sun, 9 Jul 2023 20:13:26 +0200 Subject: [PATCH] cleans vm implementation up --- gen_input/templates/interp/CORENAME.cpp.gtl | 7 +------ gen_input/templates/tcc/CORENAME.cpp.gtl | 7 +------ src/vm/interp/vm_tgc_c.cpp | 8 ++------ src/vm/tcc/vm_tgc_c.cpp | 7 +------ 4 files changed, 5 insertions(+), 24 deletions(-) diff --git a/gen_input/templates/interp/CORENAME.cpp.gtl b/gen_input/templates/interp/CORENAME.cpp.gtl index cc864d8..cd84028 100644 --- a/gen_input/templates/interp/CORENAME.cpp.gtl +++ b/gen_input/templates/interp/CORENAME.cpp.gtl @@ -320,7 +320,7 @@ std::unique_ptr create(arch::${coreD #include namespace iss { namespace { -std::array dummy = { +volatile std::array dummy = { core_factory::instance().register_creator("${coreDef.name.toLowerCase()}|m_p|interp", [](unsigned port, void*) -> std::tuple{ auto* cpu = new iss::arch::riscv_hart_m_p(); auto vm = new interp::${coreDef.name.toLowerCase()}::vm_impl(*cpu, false); @@ -336,8 +336,3 @@ std::array dummy = { }; } } -extern "C" { - bool* get_${coreDef.name.toLowerCase()}_interp_creators() { - return iss::dummy.data(); - } -} \ No newline at end of file diff --git a/gen_input/templates/tcc/CORENAME.cpp.gtl b/gen_input/templates/tcc/CORENAME.cpp.gtl index afb3e38..f7a2baf 100644 --- a/gen_input/templates/tcc/CORENAME.cpp.gtl +++ b/gen_input/templates/tcc/CORENAME.cpp.gtl @@ -317,7 +317,7 @@ std::unique_ptr create(arch::${coreD #include namespace iss { namespace { -std::array dummy = { +volatile std::array dummy = { core_factory::instance().register_creator("${coreDef.name.toLowerCase()}|m_p|tcc", [](unsigned port, void*) -> std::tuple{ auto* cpu = new iss::arch::riscv_hart_m_p(); auto vm = new tcc::${coreDef.name.toLowerCase()}::vm_impl(*cpu, false); @@ -333,8 +333,3 @@ std::array dummy = { }; } } -extern "C" { - bool* get_${coreDef.name.toLowerCase()}_tcc_creators() { - return iss::dummy.data(); - } -} \ No newline at end of file diff --git a/src/vm/interp/vm_tgc_c.cpp b/src/vm/interp/vm_tgc_c.cpp index cfda6fe..d1e6596 100644 --- a/src/vm/interp/vm_tgc_c.cpp +++ b/src/vm/interp/vm_tgc_c.cpp @@ -2651,7 +2651,7 @@ std::unique_ptr create(arch::tgc_c *core, unsigned short por #include namespace iss { namespace { -std::array dummy = { +volatile std::array dummy = { core_factory::instance().register_creator("tgc_c|m_p|interp", [](unsigned port, void*) -> std::tuple{ auto* cpu = new iss::arch::riscv_hart_m_p(); auto vm = new interp::tgc_c::vm_impl(*cpu, false); @@ -2667,8 +2667,4 @@ std::array dummy = { }; } } -extern "C" { - bool* get_tgc_c_interp_creators() { - return iss::dummy.data(); - } -} \ No newline at end of file + diff --git a/src/vm/tcc/vm_tgc_c.cpp b/src/vm/tcc/vm_tgc_c.cpp index b760efa..8027571 100644 --- a/src/vm/tcc/vm_tgc_c.cpp +++ b/src/vm/tcc/vm_tgc_c.cpp @@ -3226,7 +3226,7 @@ std::unique_ptr create(arch::tgc_c *core, unsigned short por #include namespace iss { namespace { -std::array dummy = { +volatile std::array dummy = { core_factory::instance().register_creator("tgc_c|m_p|tcc", [](unsigned port, void*) -> std::tuple{ auto* cpu = new iss::arch::riscv_hart_m_p(); auto vm = new tcc::tgc_c::vm_impl(*cpu, false); @@ -3242,8 +3242,3 @@ std::array dummy = { }; } } -extern "C" { - bool* get_tgc_c_tcc_creators() { - return iss::dummy.data(); - } -} \ No newline at end of file