2016-07-04 10:22:11 +01:00
|
|
|
set(SRCS
|
2016-08-06 20:41:00 +01:00
|
|
|
common/memory_pool.cpp
|
2016-09-06 00:52:33 +01:00
|
|
|
frontend/arm/types.cpp
|
2016-07-14 14:39:43 +01:00
|
|
|
frontend/disassembler/disassembler_arm.cpp
|
|
|
|
frontend/disassembler/disassembler_thumb.cpp
|
2016-08-17 15:53:36 +01:00
|
|
|
frontend/ir/basic_block.cpp
|
2016-07-14 14:39:43 +01:00
|
|
|
frontend/ir/ir_emitter.cpp
|
2016-09-05 21:31:25 +01:00
|
|
|
frontend/ir/location_descriptor.cpp
|
2016-08-17 15:53:36 +01:00
|
|
|
frontend/ir/microinstruction.cpp
|
2016-08-12 18:17:31 +01:00
|
|
|
frontend/ir/opcodes.cpp
|
2016-08-17 15:53:36 +01:00
|
|
|
frontend/ir/value.cpp
|
2016-07-14 14:39:43 +01:00
|
|
|
frontend/translate/translate.cpp
|
2016-07-21 21:48:45 +01:00
|
|
|
frontend/translate/translate_arm.cpp
|
2016-08-03 00:52:17 +01:00
|
|
|
frontend/translate/translate_arm/branch.cpp
|
2016-12-31 11:24:47 +00:00
|
|
|
frontend/translate/translate_arm/coprocessor.cpp
|
2016-08-01 20:20:22 +01:00
|
|
|
frontend/translate/translate_arm/data_processing.cpp
|
|
|
|
frontend/translate/translate_arm/exception_generating.cpp
|
2016-08-02 21:59:33 +01:00
|
|
|
frontend/translate/translate_arm/extension.cpp
|
|
|
|
frontend/translate/translate_arm/load_store.cpp
|
2016-12-04 22:56:33 +00:00
|
|
|
frontend/translate/translate_arm/misc.cpp
|
2016-08-02 21:59:33 +01:00
|
|
|
frontend/translate/translate_arm/multiply.cpp
|
2016-11-23 21:45:18 +00:00
|
|
|
frontend/translate/translate_arm/packing.cpp
|
2016-08-02 21:59:33 +01:00
|
|
|
frontend/translate/translate_arm/parallel.cpp
|
2016-08-01 20:20:22 +01:00
|
|
|
frontend/translate/translate_arm/reversal.cpp
|
2016-12-15 22:33:20 +00:00
|
|
|
frontend/translate/translate_arm/saturated.cpp
|
2016-08-11 17:15:33 +01:00
|
|
|
frontend/translate/translate_arm/status_register_access.cpp
|
TranslateArm: Implement CLREX, LDREX, LDREXB, LDREXD, LDREXH, STREX, STREXB, STREXD, STREXH, SWP, SWPB
2016-08-09 22:48:20 +01:00
|
|
|
frontend/translate/translate_arm/synchronization.cpp
|
2016-08-06 17:21:29 +01:00
|
|
|
frontend/translate/translate_arm/vfp2.cpp
|
2016-07-21 21:48:45 +01:00
|
|
|
frontend/translate/translate_thumb.cpp
|
2017-01-30 21:43:40 +00:00
|
|
|
ir_opt/constant_propagation_pass.cpp
|
2016-07-21 21:48:45 +01:00
|
|
|
ir_opt/dead_code_elimination_pass.cpp
|
|
|
|
ir_opt/get_set_elimination_pass.cpp
|
|
|
|
ir_opt/verification_pass.cpp
|
2016-07-04 10:22:11 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
set(HEADERS
|
2016-08-25 18:22:08 +01:00
|
|
|
../include/dynarmic/callbacks.h
|
2016-12-31 10:38:24 +00:00
|
|
|
../include/dynarmic/coprocessor.h
|
|
|
|
../include/dynarmic/coprocessor_util.h
|
2016-08-25 18:22:08 +01:00
|
|
|
../include/dynarmic/disassembler.h
|
2016-12-31 10:38:24 +00:00
|
|
|
../include/dynarmic/dynarmic.h
|
2016-07-04 10:22:11 +01:00
|
|
|
common/assert.h
|
|
|
|
common/bit_util.h
|
|
|
|
common/common_types.h
|
2016-08-06 22:23:01 +01:00
|
|
|
common/intrusive_list.h
|
2016-08-24 20:07:08 +01:00
|
|
|
common/iterator_util.h
|
2016-08-06 20:41:00 +01:00
|
|
|
common/memory_pool.h
|
2016-07-04 10:22:11 +01:00
|
|
|
common/mp.h
|
|
|
|
common/scope_exit.h
|
|
|
|
common/string_util.h
|
2017-02-16 19:30:56 +00:00
|
|
|
common/variant_util.h
|
2016-08-24 22:16:14 +01:00
|
|
|
frontend/arm/FPSCR.h
|
2016-09-02 17:34:33 +01:00
|
|
|
frontend/arm/PSR.h
|
2016-09-06 00:52:33 +01:00
|
|
|
frontend/arm/types.h
|
2016-07-04 10:22:11 +01:00
|
|
|
frontend/decoder/arm.h
|
|
|
|
frontend/decoder/decoder_detail.h
|
2016-09-17 09:48:18 +01:00
|
|
|
frontend/decoder/matcher.h
|
2016-07-12 11:09:34 +01:00
|
|
|
frontend/decoder/thumb16.h
|
2016-07-18 22:18:58 +01:00
|
|
|
frontend/decoder/thumb32.h
|
2016-08-10 15:01:23 +01:00
|
|
|
frontend/decoder/vfp2.h
|
2016-07-14 14:39:43 +01:00
|
|
|
frontend/disassembler/disassembler.h
|
2016-08-17 15:53:36 +01:00
|
|
|
frontend/ir/basic_block.h
|
2016-07-14 14:39:43 +01:00
|
|
|
frontend/ir/ir_emitter.h
|
2016-09-05 11:54:09 +01:00
|
|
|
frontend/ir/location_descriptor.h
|
2016-08-17 15:53:36 +01:00
|
|
|
frontend/ir/microinstruction.h
|
2016-07-04 10:22:11 +01:00
|
|
|
frontend/ir/opcodes.h
|
2016-08-17 15:53:36 +01:00
|
|
|
frontend/ir/terminal.h
|
|
|
|
frontend/ir/value.h
|
2016-07-14 14:39:43 +01:00
|
|
|
frontend/translate/translate.h
|
2016-08-01 20:20:22 +01:00
|
|
|
frontend/translate/translate_arm/translate_arm.h
|
2016-07-21 21:48:45 +01:00
|
|
|
ir_opt/passes.h
|
2016-07-04 10:22:11 +01:00
|
|
|
)
|
|
|
|
|
2016-12-11 15:35:26 +00:00
|
|
|
if (ARCHITECTURE_x86_64)
|
|
|
|
list(APPEND SRCS
|
|
|
|
backend_x64/abi.cpp
|
|
|
|
backend_x64/block_of_code.cpp
|
|
|
|
backend_x64/emit_x64.cpp
|
|
|
|
backend_x64/hostloc.cpp
|
|
|
|
backend_x64/interface_x64.cpp
|
|
|
|
backend_x64/jitstate.cpp
|
|
|
|
backend_x64/reg_alloc.cpp
|
|
|
|
)
|
|
|
|
|
|
|
|
list(APPEND HEADERS
|
|
|
|
backend_x64/abi.h
|
|
|
|
backend_x64/block_of_code.h
|
|
|
|
backend_x64/emit_x64.h
|
|
|
|
backend_x64/hostloc.h
|
|
|
|
backend_x64/jitstate.h
|
|
|
|
backend_x64/reg_alloc.h
|
|
|
|
)
|
2016-12-11 15:38:00 +00:00
|
|
|
|
|
|
|
if (WIN32)
|
|
|
|
list(APPEND SRCS backend_x64/unwind_windows.cpp)
|
|
|
|
else()
|
|
|
|
list(APPEND SRCS backend_x64/unwind_generic.cpp)
|
|
|
|
endif()
|
2016-12-11 15:35:26 +00:00
|
|
|
else()
|
|
|
|
message(FATAL_ERROR "Unsupported architecture")
|
|
|
|
endif()
|
|
|
|
|
2016-08-25 18:22:08 +01:00
|
|
|
include(CreateDirectoryGroups)
|
2016-07-18 10:28:17 +01:00
|
|
|
create_directory_groups(${SRCS} ${HEADERS})
|
2016-08-25 18:22:08 +01:00
|
|
|
|
2016-07-04 10:22:11 +01:00
|
|
|
add_library(dynarmic STATIC ${SRCS} ${HEADERS})
|
|
|
|
set_target_properties(dynarmic PROPERTIES LINKER_LANGUAGE CXX)
|
2016-08-25 18:22:08 +01:00
|
|
|
target_include_directories(dynarmic
|
|
|
|
PUBLIC ../include
|
|
|
|
PRIVATE .)
|
2016-12-19 00:41:21 +00:00
|
|
|
target_compile_options(dynarmic PRIVATE ${DYNARMIC_CXX_FLAGS})
|
|
|
|
|
2016-08-25 22:21:19 +01:00
|
|
|
# Link fmt
|
|
|
|
target_link_libraries(dynarmic PRIVATE fmt-header-only)
|
|
|
|
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
|
|
|
target_compile_definitions(dynarmic PRIVATE FMT_USE_WINDOWS_H=0)
|
|
|
|
endif()
|
2016-12-12 14:23:42 +00:00
|
|
|
target_link_libraries(dynarmic PRIVATE xbyak)
|