updates registration of cores for sysc
This commit is contained in:
		| @@ -48,7 +48,7 @@ else() | ||||
|         string(TOUPPER ${CORE} CORE) | ||||
|         list(APPEND LIB_DEFINES CORE_${CORE}) | ||||
|     endforeach() | ||||
|     message("Defines are ${LIB_DEFINES}") | ||||
|     message("Core defines are ${LIB_DEFINES}") | ||||
| endif() | ||||
|  | ||||
| if(TARGET RapidJSON OR TARGET RapidJSON::RapidJSON) | ||||
|   | ||||
| @@ -1,12 +1,34 @@ | ||||
| /* | ||||
|  * register_tgc_c.cpp | ||||
| /******************************************************************************* | ||||
|  * Copyright (C) 2023 MINRES Technologies GmbH | ||||
|  * All rights reserved. | ||||
|  * | ||||
|  *  Created on: Jul 5, 2023 | ||||
|  *      Author: eyck | ||||
|  */ | ||||
|  | ||||
|  | ||||
|  | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  * | ||||
|  * 1. Redistributions of source code must retain the above copyright notice, | ||||
|  *    this list of conditions and the following disclaimer. | ||||
|  * | ||||
|  * 2. Redistributions in binary form must reproduce the above copyright notice, | ||||
|  *    this list of conditions and the following disclaimer in the documentation | ||||
|  *    and/or other materials provided with the distribution. | ||||
|  * | ||||
|  * 3. Neither the name of the copyright holder nor the names of its contributors | ||||
|  *    may be used to endorse or promote products derived from this software | ||||
|  *    without specific prior written permission. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||||
|  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||
|  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||||
|  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | ||||
|  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||||
|  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||||
|  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||||
|  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||||
|  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||||
|  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||||
|  * POSSIBILITY OF SUCH DAMAGE. | ||||
|  * | ||||
|  *******************************************************************************/ | ||||
|  | ||||
| #include <iss/factory.h> | ||||
| #include <iss/arch/tgc_c.h> | ||||
| @@ -17,16 +39,26 @@ | ||||
|  | ||||
| namespace iss { | ||||
| namespace { | ||||
| volatile std::array<bool, 2> dummy = { | ||||
| volatile std::array<bool, 4> dummy = { | ||||
|         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* lcpu = new sc_core_adapter<arch::riscv_hart_m_p<arch::tgc_c>>(cc); | ||||
|             return {cpu_ptr{lcpu}, vm_ptr{interp::create(lcpu, gdb_port)}}; | ||||
|             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)}}; | ||||
|         }), | ||||
|         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* lcpu = new sc_core_adapter<arch::riscv_hart_mu_p<arch::tgc_c>>(cc); | ||||
|             return {cpu_ptr{lcpu}, vm_ptr{interp::create(lcpu, gdb_port)}}; | ||||
|             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)}}; | ||||
|         }), | ||||
|         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)}}; | ||||
|         }), | ||||
|         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)}}; | ||||
|         }) | ||||
| }; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user