playground for arm backend

This commit is contained in:
Vince Ricci
2021-02-20 23:09:39 +01:00
committed by Vince Ricci
parent b86c71ea55
commit 6ed6731b8b
6 changed files with 28 additions and 7 deletions

View File

@@ -16,7 +16,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)

View File

@@ -214,7 +214,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)
message(WARNING "Arm64 (aarch64) is a work in progress")
endif()
if (MSVC)
target_link_libraries(common PRIVATE zstd::zstd)
else()

View File

@@ -678,7 +678,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

View File

@@ -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>(

View File

@@ -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
@@ -262,10 +260,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)
message(WARNING "Arm64 (aarch64) is a work in progress")
endif()
if (YUZU_USE_BUNDLED_FFMPEG AND NOT WIN32)
add_dependencies(video_core ffmpeg-build)

View File

@@ -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)