From 6b0197700508374e6bd1021e9cae8956db291c13 Mon Sep 17 00:00:00 2001 From: lizzie Date: Mon, 17 Nov 2025 22:50:05 +0100 Subject: [PATCH] [dynarmic] force-disable perfmap on non-platforms (#3031) removes some annoying generated stubs with just a `retq`... Signed-off-by: lizzie lizzie@eden-emu.dev Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3031 Reviewed-by: Caio Oliveira Reviewed-by: crueter Co-authored-by: lizzie Co-committed-by: lizzie --- .../src/dynarmic/backend/x64/perf_map.cpp | 19 ++++--------------- .../src/dynarmic/backend/x64/perf_map.h | 10 +++++++--- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/src/dynarmic/src/dynarmic/backend/x64/perf_map.cpp b/src/dynarmic/src/dynarmic/backend/x64/perf_map.cpp index 88691dbffc..a0b5c4fdde 100644 --- a/src/dynarmic/src/dynarmic/backend/x64/perf_map.cpp +++ b/src/dynarmic/src/dynarmic/backend/x64/perf_map.cpp @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + /* This file is part of the dynarmic project. * Copyright (c) 2018 MerryMage * SPDX-License-Identifier: 0BSD @@ -8,12 +11,10 @@ #include #include -#ifdef __linux__ - +#if defined(__linux__) && !defined(__ANDROID__) # include # include # include - # include # include # include @@ -79,16 +80,4 @@ void PerfMapClear() { } // namespace Dynarmic::Backend::X64 -#else - -namespace Dynarmic::Backend::X64 { - -namespace detail { -void PerfMapRegister(const void*, const void*, std::string_view) {} -} // namespace detail - -void PerfMapClear() {} - -} // namespace Dynarmic::Backend::X64 - #endif diff --git a/src/dynarmic/src/dynarmic/backend/x64/perf_map.h b/src/dynarmic/src/dynarmic/backend/x64/perf_map.h index c119ac3513..2d7530a6b0 100644 --- a/src/dynarmic/src/dynarmic/backend/x64/perf_map.h +++ b/src/dynarmic/src/dynarmic/backend/x64/perf_map.h @@ -14,15 +14,19 @@ namespace Dynarmic::Backend::X64 { +#if defined(__linux__) && !defined(__ANDROID__) namespace detail { void PerfMapRegister(const void* start, const void* end, std::string_view friendly_name); } // namespace detail - template -void PerfMapRegister(T start, const void* end, std::string_view friendly_name) { +void PerfMapRegister(T start, const void* end, std::string_view friendly_name) noexcept { detail::PerfMapRegister(std::bit_cast(start), end, friendly_name); } - void PerfMapClear(); +#else +// Resolve to no-op (compiler thinks fmt has side effects) +template inline void PerfMapRegister(T, const void*, std::string_view) noexcept {} +inline void PerfMapClear() noexcept {} +#endif } // namespace Dynarmic::Backend::X64