Minor changes to not compile specific x64 code on other arch and add dependency on xbyak_aarch64 on aarch64 platform.
This commit is contained in:
6
externals/CMakeLists.txt
vendored
6
externals/CMakeLists.txt
vendored
@@ -9,6 +9,10 @@ if (ARCHITECTURE_x86 OR ARCHITECTURE_x86_64)
|
||||
add_library(xbyak INTERFACE)
|
||||
target_include_directories(xbyak SYSTEM INTERFACE ./xbyak/xbyak)
|
||||
target_compile_definitions(xbyak INTERFACE XBYAK_NO_OP_NAMES)
|
||||
elseif(ARCHITECTURE_ARM64)
|
||||
add_library(xbyak_aarch64 INTERFACE)
|
||||
target_include_directories(xbyak_aarch64 SYSTEM INTERFACE ./xbyak_aarch64/xbyak_aarch64)
|
||||
target_compile_definitions(xbyak_aarch64 INTERFACE XBYAK_NO_OP_NAMES)
|
||||
endif()
|
||||
|
||||
# Catch
|
||||
@@ -16,7 +20,7 @@ add_library(catch-single-include INTERFACE)
|
||||
target_include_directories(catch-single-include INTERFACE catch/single_include)
|
||||
|
||||
# Dynarmic
|
||||
if (ARCHITECTURE_x86_64)
|
||||
if (ARCHITECTURE_x86_64 OR ARCHITECTURE_ARM64)
|
||||
set(DYNARMIC_TESTS OFF)
|
||||
set(DYNARMIC_NO_BUNDLED_FMT ON)
|
||||
add_subdirectory(dynarmic)
|
||||
|
||||
@@ -220,7 +220,13 @@ endif()
|
||||
create_target_directory_groups(common)
|
||||
|
||||
target_link_libraries(common PUBLIC ${Boost_LIBRARIES} fmt::fmt microprofile)
|
||||
target_link_libraries(common PRIVATE lz4::lz4 xbyak)
|
||||
target_link_libraries(common PRIVATE lz4::lz4)
|
||||
if (ARCHITECTURE_x86_64)
|
||||
target_link_libraries(common PRIVATE xbyak)
|
||||
elseif(ARCHITECTURE_ARM64)
|
||||
target_link_libraries(common PRIVATE xbyak_aarch64)
|
||||
endif()
|
||||
|
||||
if (MSVC)
|
||||
target_link_libraries(common PRIVATE zstd::zstd)
|
||||
else()
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include <cstring>
|
||||
#include <utility>
|
||||
|
||||
#ifdef ARCHITECTURE_x86_64
|
||||
#ifdef _MSC_VER
|
||||
#include <intrin.h>
|
||||
#pragma intrinsic(__umulh)
|
||||
@@ -15,6 +16,7 @@
|
||||
#else
|
||||
#include <x86intrin.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include "common/common_types.h"
|
||||
|
||||
|
||||
@@ -684,7 +684,7 @@ if (ENABLE_WEB_SERVICE)
|
||||
target_link_libraries(core PRIVATE web_service)
|
||||
endif()
|
||||
|
||||
if (ARCHITECTURE_x86_64)
|
||||
if (ARCHITECTURE_x86_64 OR ARCHITECTURE_ARM64)
|
||||
target_sources(core PRIVATE
|
||||
arm/dynarmic/arm_dynarmic_32.cpp
|
||||
arm/dynarmic/arm_dynarmic_32.h
|
||||
|
||||
@@ -21,7 +21,7 @@ PhysicalCore::PhysicalCore(std::size_t core_index, Core::System& system,
|
||||
PhysicalCore::~PhysicalCore() = default;
|
||||
|
||||
void PhysicalCore::Initialize([[maybe_unused]] bool is_64_bit) {
|
||||
#ifdef ARCHITECTURE_x86_64
|
||||
#if defined(ARCHITECTURE_x86_64) || defined(ARCHITECTURE_ARM64)
|
||||
auto& kernel = system.Kernel();
|
||||
if (is_64_bit) {
|
||||
arm_interface = std::make_unique<Core::ARM_Dynarmic_64>(
|
||||
|
||||
@@ -54,8 +54,6 @@ add_library(video_core STATIC
|
||||
macro/macro_hle.h
|
||||
macro/macro_interpreter.cpp
|
||||
macro/macro_interpreter.h
|
||||
macro/macro_jit_x64.cpp
|
||||
macro/macro_jit_x64.h
|
||||
fence_manager.h
|
||||
gpu.cpp
|
||||
gpu.h
|
||||
@@ -261,10 +259,24 @@ add_library(video_core STATIC
|
||||
vulkan_common/nsight_aftermath_tracker.h
|
||||
)
|
||||
|
||||
if(ARCHITECTURE_x86_64)
|
||||
target_sources(video_core
|
||||
PRIVATE
|
||||
macro/macro_jit_x64.cpp
|
||||
macro/macro_jit_x64.h
|
||||
)
|
||||
endif()
|
||||
|
||||
create_target_directory_groups(video_core)
|
||||
|
||||
target_link_libraries(video_core PUBLIC common core)
|
||||
target_link_libraries(video_core PRIVATE glad xbyak)
|
||||
target_link_libraries(video_core PRIVATE glad)
|
||||
if (ARCHITECTURE_x86_64)
|
||||
target_link_libraries(video_core PRIVATE xbyak)
|
||||
elseif(ARCHITECTURE_ARM64)
|
||||
target_link_libraries(video_core PRIVATE xbyak_aarch64)
|
||||
endif()
|
||||
|
||||
|
||||
if (YUZU_USE_BUNDLED_FFMPEG AND NOT WIN32)
|
||||
add_dependencies(video_core ffmpeg-build)
|
||||
|
||||
@@ -11,8 +11,11 @@
|
||||
#include "video_core/macro/macro.h"
|
||||
#include "video_core/macro/macro_hle.h"
|
||||
#include "video_core/macro/macro_interpreter.h"
|
||||
#ifdef ARCHITECTURE_x86_64
|
||||
#include "video_core/macro/macro_jit_x64.h"
|
||||
#elif ARCHITECTURE_ARM64
|
||||
|
||||
#endif
|
||||
namespace Tegra {
|
||||
|
||||
MacroEngine::MacroEngine(Engines::Maxwell3D& maxwell3d)
|
||||
|
||||
Reference in New Issue
Block a user