Browse Source

fix ppc

dynarmic-ppc64
lizzie 2 days 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) add_subdirectory(nx_tzdb)
# PowerPC emitter # PowerPC emitter
if (ARCHITECTURE_ppc64)
if (ARCHITECTURE_powerpc64)
add_subdirectory(powah) add_subdirectory(powah)
endif() endif()

4
externals/cmake-modules/DetectArchitecture.cmake

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

2
externals/powah/tests.cpp

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

2
src/CMakeLists.txt

@ -8,7 +8,7 @@
include_directories(.) include_directories(.)
# Dynarmic # 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_subdirectory(dynarmic)
add_library(dynarmic::dynarmic ALIAS dynarmic) add_library(dynarmic::dynarmic ALIAS dynarmic)
endif() endif()

2
src/core/CMakeLists.txt

@ -1251,7 +1251,7 @@ if (HAS_NCE)
target_link_libraries(core PRIVATE merry::oaknut) target_link_libraries(core PRIVATE merry::oaknut)
endif() 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 target_sources(core PRIVATE
arm/dynarmic/arm_dynarmic.h arm/dynarmic/arm_dynarmic.h
arm/dynarmic/arm_dynarmic_64.cpp 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 { namespace Dynarmic::Backend::LoongArch64 {
class CodeBlock; class CodeBlock;
} // namespace Dynarmic::Backend::LoongArch64 } // namespace Dynarmic::Backend::LoongArch64
#elif defined(ARCHITECTURE_ppc64)
#elif defined(ARCHITECTURE_powerpc64)
namespace Dynarmic::Backend::PPC64 { namespace Dynarmic::Backend::PPC64 {
class CodeBlock; class CodeBlock;
} }
@ -57,7 +57,7 @@ struct FakeCall {
struct FakeCall { struct FakeCall {
u64 call_pc; u64 call_pc;
}; };
#elif defined(ARCHITECTURE_ppc64)
#elif defined(ARCHITECTURE_powerpc64)
struct FakeCall { struct FakeCall {
}; };
#else #else
@ -77,7 +77,7 @@ public:
void Register(RV64::CodeBlock& mem, std::size_t mem_size); void Register(RV64::CodeBlock& mem, std::size_t mem_size);
#elif defined(ARCHITECTURE_loongarch64) #elif defined(ARCHITECTURE_loongarch64)
void Register(LoongArch64::CodeBlock& mem, std::size_t mem_size); 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); void Register(PPC64::CodeBlock& mem, std::size_t mem_size);
#else #else
# error "Invalid architecture" # 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) void ExceptionHandler::Register(RV64::CodeBlock&, std::size_t)
#elif defined(ARCHITECTURE_loongarch64) #elif defined(ARCHITECTURE_loongarch64)
void ExceptionHandler::Register(LoongArch64::CodeBlock&, std::size_t) void ExceptionHandler::Register(LoongArch64::CodeBlock&, std::size_t)
#elif defined(ARCHITECTURE_ppc64)
#elif defined(ARCHITECTURE_powerpc64)
void ExceptionHandler::Register(PPC64::CodeBlock&, std::size_t) void ExceptionHandler::Register(PPC64::CodeBlock&, std::size_t)
#else #else
# error "Invalid architecture" # error "Invalid architecture"

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

@ -35,7 +35,7 @@
# include "dynarmic/backend/riscv64/code_block.h" # include "dynarmic/backend/riscv64/code_block.h"
#elif defined(ARCHITECTURE_loongarch64) #elif defined(ARCHITECTURE_loongarch64)
# include "dynarmic/backend/loongarch64/code_block.h" # include "dynarmic/backend/loongarch64/code_block.h"
#elif defined(ARCHITECTURE_ppc64)
#elif defined(ARCHITECTURE_powerpc64)
# include "dynarmic/backend/ppc64/code_block.h" # include "dynarmic/backend/ppc64/code_block.h"
#else #else
# error "Invalid architecture" # 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) { void ExceptionHandler::Register(LoongArch64::CodeBlock& mem, std::size_t size) {
impl = std::make_unique<Impl>(std::bit_cast<u64>(mem.ptr<u64>()), 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) { void ExceptionHandler::Register(PPC64::CodeBlock& mem, std::size_t size) {
impl = std::make_unique<Impl>(std::bit_cast<u64>(mem.ptr<u64>()), 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 # else
# error "unknown platform" # error "unknown platform"
# endif # endif
#elif defined(ARCHITECTURE_ppc64)
#elif defined(ARCHITECTURE_powerpc64)
# if defined(__FreeBSD__) # if defined(__FreeBSD__)
# define CTX_PC (mctx.mc_srr0) # define CTX_PC (mctx.mc_srr0)
# define CTX_SP (mctx.mc_gpr[1]) # define CTX_SP (mctx.mc_gpr[1])

Loading…
Cancel
Save