Browse Source

fix ppc

dynarmic-ppc64
lizzie 1 day ago
parent
commit
a4b3cf29ea
  1. 2
      externals/CMakeLists.txt
  2. 4
      externals/cmake-modules/DetectArchitecture.cmake
  3. 2
      externals/powah/tests.cpp
  4. 2
      src/CMakeLists.txt
  5. 2
      src/core/CMakeLists.txt
  6. 6
      src/dynarmic/src/dynarmic/backend/exception_handler.h
  7. 2
      src/dynarmic/src/dynarmic/backend/exception_handler_generic.cpp
  8. 4
      src/dynarmic/src/dynarmic/backend/exception_handler_posix.cpp
  9. 2
      src/dynarmic/src/dynarmic/common/context.h

2
externals/CMakeLists.txt

@ -255,7 +255,7 @@ endif()
add_subdirectory(nx_tzdb)
# PowerPC emitter
if (ARCHITECTURE_ppc64)
if (ARCHITECTURE_powerpc64)
add_subdirectory(powah)
endif()

4
externals/cmake-modules/DetectArchitecture.cmake

@ -166,7 +166,7 @@ detect_architecture_symbols(
"_M_MRX000")
detect_architecture_symbols(
ARCH ppc64
ARCH powerpc64
SYMBOLS
"__ppc64__"
"__powerpc64__"
@ -174,7 +174,7 @@ detect_architecture_symbols(
"_M_PPC64")
detect_architecture_symbols(
ARCH ppc
ARCH powerpc
SYMBOLS
"__ppc__"
"__ppc"

2
externals/powah/tests.cpp

@ -253,7 +253,7 @@ TEST_CASE("ppc64: functor-1", "[ppc64]") {
REQUIRE(data[15] == EB32(0x2000804e));
}
#if defined(ARCHITECTURE_ppc64)
#if defined(ARCHITECTURE_powerpc64)
/*
0: d619637c mullw 3, 3, 3
4: 20006378 clrldi 3, 3, 32

2
src/CMakeLists.txt

@ -8,7 +8,7 @@
include_directories(.)
# Dynarmic
if ((ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64 OR ARCHITECTURE_riscv64 OR ARCHITECTURE_loongarch64 OR ARCHITECTURE_ppc64) AND NOT YUZU_STATIC_ROOM)
if ((ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64 OR ARCHITECTURE_riscv64 OR ARCHITECTURE_loongarch64 OR ARCHITECTURE_powerpc64) AND NOT YUZU_STATIC_ROOM)
add_subdirectory(dynarmic)
add_library(dynarmic::dynarmic ALIAS dynarmic)
endif()

2
src/core/CMakeLists.txt

@ -1251,7 +1251,7 @@ if (HAS_NCE)
target_link_libraries(core PRIVATE merry::oaknut)
endif()
if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64 OR ARCHITECTURE_riscv64 OR ARCHITECTURE_ppc64 OR ARCHITECTURE_powerpc64)
if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64 OR ARCHITECTURE_riscv64 OR ARCHITECTURE_powerpc64 OR ARCHITECTURE_powerpc64)
target_sources(core PRIVATE
arm/dynarmic/arm_dynarmic.h
arm/dynarmic/arm_dynarmic_64.cpp

6
src/dynarmic/src/dynarmic/backend/exception_handler.h

@ -30,7 +30,7 @@ class CodeBlock;
namespace Dynarmic::Backend::LoongArch64 {
class CodeBlock;
} // namespace Dynarmic::Backend::LoongArch64
#elif defined(ARCHITECTURE_ppc64)
#elif defined(ARCHITECTURE_powerpc64)
namespace Dynarmic::Backend::PPC64 {
class CodeBlock;
}
@ -57,7 +57,7 @@ struct FakeCall {
struct FakeCall {
u64 call_pc;
};
#elif defined(ARCHITECTURE_ppc64)
#elif defined(ARCHITECTURE_powerpc64)
struct FakeCall {
};
#else
@ -77,7 +77,7 @@ public:
void Register(RV64::CodeBlock& mem, std::size_t mem_size);
#elif defined(ARCHITECTURE_loongarch64)
void Register(LoongArch64::CodeBlock& mem, std::size_t mem_size);
#elif defined(ARCHITECTURE_ppc64)
#elif defined(ARCHITECTURE_powerpc64)
void Register(PPC64::CodeBlock& mem, std::size_t mem_size);
#else
# error "Invalid architecture"

2
src/dynarmic/src/dynarmic/backend/exception_handler_generic.cpp

@ -24,7 +24,7 @@ void ExceptionHandler::Register(oaknut::CodeBlock&, std::size_t)
void ExceptionHandler::Register(RV64::CodeBlock&, std::size_t)
#elif defined(ARCHITECTURE_loongarch64)
void ExceptionHandler::Register(LoongArch64::CodeBlock&, std::size_t)
#elif defined(ARCHITECTURE_ppc64)
#elif defined(ARCHITECTURE_powerpc64)
void ExceptionHandler::Register(PPC64::CodeBlock&, std::size_t)
#else
# error "Invalid architecture"

4
src/dynarmic/src/dynarmic/backend/exception_handler_posix.cpp

@ -35,7 +35,7 @@
# include "dynarmic/backend/riscv64/code_block.h"
#elif defined(ARCHITECTURE_loongarch64)
# include "dynarmic/backend/loongarch64/code_block.h"
#elif defined(ARCHITECTURE_ppc64)
#elif defined(ARCHITECTURE_powerpc64)
# include "dynarmic/backend/ppc64/code_block.h"
#else
# error "Invalid architecture"
@ -233,7 +233,7 @@ void ExceptionHandler::Register(RV64::CodeBlock& mem, std::size_t size) {
void ExceptionHandler::Register(LoongArch64::CodeBlock& mem, std::size_t size) {
impl = std::make_unique<Impl>(std::bit_cast<u64>(mem.ptr<u64>()), size);
}
#elif defined(ARCHITECTURE_ppc64)
#elif defined(ARCHITECTURE_powerpc64)
void ExceptionHandler::Register(PPC64::CodeBlock& mem, std::size_t size) {
impl = std::make_unique<Impl>(std::bit_cast<u64>(mem.ptr<u64>()), size);
}

2
src/dynarmic/src/dynarmic/common/context.h

@ -148,7 +148,7 @@
# else
# error "unknown platform"
# endif
#elif defined(ARCHITECTURE_ppc64)
#elif defined(ARCHITECTURE_powerpc64)
# if defined(__FreeBSD__)
# define CTX_PC (mctx.mc_srr0)
# define CTX_SP (mctx.mc_gpr[1])

Loading…
Cancel
Save