fixes build system to handle TCC properly

This commit is contained in:
2023-07-09 22:20:50 +02:00
parent 145a0cf68b
commit b4b03f7850
8 changed files with 123 additions and 216 deletions

View File

@ -38,28 +38,34 @@
#include "core_complex.h"
namespace iss {
namespace {
volatile std::array<bool, 4> dummy = {
namespace interp {
volatile std::array<bool, 2> tgc_init = {
core_factory::instance().register_creator("tgc_c|m_p|interp", [](unsigned gdb_port, void* data) -> std::tuple<cpu_ptr, vm_ptr>{
auto cc = reinterpret_cast<sysc::tgfs::core_complex*>(data);
arch::tgc_c* cpu = new sc_core_adapter<arch::riscv_hart_m_p<arch::tgc_c>>(cc);
return {cpu_ptr{cpu}, vm_ptr{interp::create(cpu, gdb_port)}};
return {cpu_ptr{cpu}, vm_ptr{create(cpu, gdb_port)}};
}),
core_factory::instance().register_creator("tgc_c|mu_p|interp", [](unsigned gdb_port, void* data) -> std::tuple<cpu_ptr, vm_ptr>{
auto cc = reinterpret_cast<sysc::tgfs::core_complex*>(data);
arch::tgc_c* cpu = new sc_core_adapter<arch::riscv_hart_mu_p<arch::tgc_c>>(cc);
return {cpu_ptr{cpu}, vm_ptr{interp::create(cpu, gdb_port)}};
}),
return {cpu_ptr{cpu}, vm_ptr{create(cpu, gdb_port)}};
})
};
}
#if defined(WITH_TCC)
namespace tcc {
volatile std::array<bool, 2> tgc_init = {
core_factory::instance().register_creator("tgc_c|m_p|tcc", [](unsigned gdb_port, void* data) -> std::tuple<cpu_ptr, vm_ptr>{
auto cc = reinterpret_cast<sysc::tgfs::core_complex*>(data);
arch::tgc_c* cpu = new sc_core_adapter<arch::riscv_hart_m_p<arch::tgc_c>>(cc);
return {cpu_ptr{cpu}, vm_ptr{tcc::create(cpu, gdb_port)}};
return {cpu_ptr{cpu}, vm_ptr{create(cpu, gdb_port)}};
}),
core_factory::instance().register_creator("tgc_c|mu_p|tcc", [](unsigned gdb_port, void* data) -> std::tuple<cpu_ptr, vm_ptr>{
auto cc = reinterpret_cast<sysc::tgfs::core_complex*>(data);
arch::tgc_c* cpu = new sc_core_adapter<arch::riscv_hart_mu_p<arch::tgc_c>>(cc);
return {cpu_ptr{cpu}, vm_ptr{tcc::create(cpu, gdb_port)}};
return {cpu_ptr{cpu}, vm_ptr{create(cpu, gdb_port)}};
})
};
}
#endif
}