aboutsummaryrefslogtreecommitdiff
path: root/backend/tools/AssemblyEmitter/CMakeLists.txt
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-09 18:31:49 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-09 18:31:49 +0800
commit379ff50dcc7ccf977379aee68fa9d10f69065d23 (patch)
treee0fac3952d46d0bbcaea32bcfc6087c95fff2992 /backend/tools/AssemblyEmitter/CMakeLists.txt
parent495c675771f43cfa12ab7a426a538be72fec1805 (diff)
downloadrcc-project-379ff50dcc7ccf977379aee68fa9d10f69065d23.tar.gz
rcc-project-379ff50dcc7ccf977379aee68fa9d10f69065d23.tar.xz
[MC] Implement RV64GC assembly emission
Diffstat (limited to 'backend/tools/AssemblyEmitter/CMakeLists.txt')
-rw-r--r--backend/tools/AssemblyEmitter/CMakeLists.txt39
1 files changed, 39 insertions, 0 deletions
diff --git a/backend/tools/AssemblyEmitter/CMakeLists.txt b/backend/tools/AssemblyEmitter/CMakeLists.txt
new file mode 100644
index 0000000..a262983
--- /dev/null
+++ b/backend/tools/AssemblyEmitter/CMakeLists.txt
@@ -0,0 +1,39 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+add_executable(RCCBackendAssemblyEmitter AssemblyEmitterMain.cpp)
+rcc_backend_configure_target(RCCBackendAssemblyEmitter)
+target_link_libraries(
+ RCCBackendAssemblyEmitter
+ PRIVATE
+ RCCBackend::MIR
+ RCCBackend::RISCV
+)
+
+set_target_properties(
+ RCCBackendAssemblyEmitter
+ PROPERTIES
+ OUTPUT_NAME rcc-backend-asm
+)
+
+install(
+ TARGETS RCCBackendAssemblyEmitter
+ EXPORT RCCBackendTargets
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+)
+
+find_program(RCCBackendLLVMMC NAMES llvm-mc-20 llvm-mc)
+foreach(InputName IN ITEMS RISCVGenericPipeline RISCVWideConstantPipeline RISCVDataPipeline)
+ add_test(
+ NAME RCCBackend.AssemblyEmitter.${InputName}
+ COMMAND
+ "${CMAKE_COMMAND}"
+ "-DEMITTER=$<TARGET_FILE:RCCBackendAssemblyEmitter>"
+ "-DINPUT=${RCC_BACKEND_SOURCE_DIR}/unittests/Target/Inputs/${InputName}.mir"
+ "-DOUTPUT=${CMAKE_CURRENT_BINARY_DIR}/${InputName}.s"
+ "-DLLVM_MC=${RCCBackendLLVMMC}"
+ -P "${CMAKE_CURRENT_SOURCE_DIR}/AssemblyPipelineTest.cmake"
+ )
+endforeach()
+
+rcc_backend_register_format_files("${CMAKE_CURRENT_SOURCE_DIR}/AssemblyEmitterMain.cpp")
+rcc_backend_register_tidy_files("${CMAKE_CURRENT_SOURCE_DIR}/AssemblyEmitterMain.cpp")