diff options
| author | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-09 18:31:49 +0800 |
|---|---|---|
| committer | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-09 18:31:49 +0800 |
| commit | 379ff50dcc7ccf977379aee68fa9d10f69065d23 (patch) | |
| tree | e0fac3952d46d0bbcaea32bcfc6087c95fff2992 /backend/tools/AssemblyEmitter/CMakeLists.txt | |
| parent | 495c675771f43cfa12ab7a426a538be72fec1805 (diff) | |
| download | rcc-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.txt | 39 |
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") |
