refactors decoder as separate component
This commit is contained in:
		| @@ -56,7 +56,6 @@ set(JAVA_OPTS --add-modules ALL-SYSTEM --add-opens=java.base/java.io=ALL-UNNAMED | ||||
|   --add-opens=java.rmi/java.rmi.server=ALL-UNNAMED --add-opens=java.sql/java.sql=ALL-UNNAMED) | ||||
| set(GENERATOR java ${JAVA_OPTS} -jar ${GENERATOR_JAR}) | ||||
|  | ||||
| set(REPO_DIR ${DBT_CORE_TGC_DIR}/gen_input/CoreDSL-Instruction-Set-Description) | ||||
| set(TMPL_DIR ${DBT_CORE_TGC_DIR}/gen_input/templates/) | ||||
|  | ||||
| if(ENABLE_CODEGEN AND EXISTS ${GENERATOR_JAR}) | ||||
| @@ -65,35 +64,21 @@ if(ENABLE_CODEGEN AND EXISTS ${GENERATOR_JAR}) | ||||
|          | ||||
| 		string(TOUPPER ${BACKEND} BE_UPPER) | ||||
| 		string(TOLOWER ${CORE_NAME} CORE_NAMEL) | ||||
|  | ||||
|         if(EXISTS ${DBT_CORE_TGC_DIR}/generate.sh AND NOT EXISTS ${DBT_CORE_TGC_DIR}/incl/iss/arch/${CORE_NAMEL}.h) | ||||
|             # make sure source file exist initially  | ||||
|             execute_process( | ||||
|                 COMMAND /bin/bash ${DBT_CORE_TGC_DIR}/../generate.sh -c $CORE_NAME -b $BACKEND | ||||
|                 WORKING_DIRECTORY ${DBT_CORE_TGC_DIR}/.. | ||||
|                 RESULT_VARIABLE return_code) | ||||
|         endif() | ||||
|          | ||||
|         if(${CORE_NAME} STREQUAL  "TGC_C") | ||||
|             list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME.h.gtl:${DBT_CORE_TGC_DIR}/src/iss/arch/${CORE_NAMEL}.h") | ||||
|             list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME.cpp.gtl:${DBT_CORE_TGC_DIR}/src/iss/arch/${CORE_NAMEL}.cpp") | ||||
|             list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME_decoder.cpp.gtl:${DBT_CORE_TGC_DIR}/src/iss/arch/${CORE_NAMEL}_decoder.cpp") | ||||
|             list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/${BACKEND}/CORENAME.cpp.gtl:${DBT_CORE_TGC_DIR}/src/vm/interp/vm_${CORE_NAMEL}.cpp") | ||||
|         else() | ||||
|     		list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME.h.gtl:${DBT_CORE_TGC_DIR}/src-gen/iss/arch/${CORE_NAMEL}.h") | ||||
|     		list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME.cpp.gtl:${DBT_CORE_TGC_DIR}/src-gen/iss/arch/${CORE_NAMEL}.cpp") | ||||
|             list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME_decoder.cpp.gtl:${DBT_CORE_TGC_DIR}/src-gen/iss/arch/${CORE_NAMEL}_decoder.cpp") | ||||
|     		list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/${BACKEND}/CORENAME.cpp.gtl:${DBT_CORE_TGC_DIR}/src-gen/vm/interp/vm_${CORE_NAMEL}.cpp") | ||||
| 		endif() | ||||
| 		list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME_instr.yaml.gtl:${DBT_CORE_TGC_DIR}/${CORE_NAME}_instr.yaml") | ||||
|         list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME_cyles.txt.gtl:${DBT_CORE_TGC_DIR}/${CORE_NAME}_cycles.json:no") | ||||
| 		 | ||||
| 		set(${CORE_NAME}_OUTPUT_FILES ${DBT_CORE_TGC_DIR}/incl/iss/arch/${CORE_NAMEL}.h ${DBT_CORE_TGC_DIR}/src/iss/${CORE_NAMEL}.cpp ${DBT_CORE_TGC_DIR}/src/vm/interp/vm_${CORE_NAMEL}.cpp) | ||||
| 		#add_custom_command( | ||||
| 		#    COMMAND ${GENERATOR} -b ${BE_UPPER} -c ${CORE_NAME} -r ${REPO_DIR} ${${CORE_NAME}_MAPPING} ${INPUT_FILE} | ||||
| 		#    DEPENDS ${GENERATOR_JAR} ${INPUT_FILE} ${TMPL_DIR}/CORENAME.h.gtl ${TMPL_DIR}/CORENAME.cpp.gtl ${TMPL_DIR}/${BACKEND}/CORENAME.cpp.gtl | ||||
| 		#    OUTPUT ${${CORE_NAME}_OUTPUT_FILES} | ||||
| 		#    COMMENT "Generating code for ${CORE_NAME}." | ||||
| 		#    USES_TERMINAL VERBATIM | ||||
| 		#)    		 | ||||
| 		if(NOT DEFINED ENV{CI}) | ||||
|     		add_custom_target(${CORE_NAME}_cpp | ||||
|                 COMMAND ${GENERATOR} -b ${BE_UPPER} -c ${CORE_NAME} ${${CORE_NAME}_MAPPING} ${INPUT_FILE} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user