Browse Source
[dynarmic] Remove last FPT LUT table, removing around 40kb worth of unused functions
[dynarmic] Remove last FPT LUT table, removing around 40kb worth of unused functions
Signed-off-by: lizzie <lizzie@eden-emu.dev>lizzie/dynarmic-ltu-fpt
5 changed files with 35 additions and 80 deletions
-
1src/dynarmic/src/dynarmic/CMakeLists.txt
-
1src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_vector_floating_point.cpp
-
1src/dynarmic/src/dynarmic/backend/x64/emit_x64_floating_point.cpp
-
57src/dynarmic/src/dynarmic/backend/x64/emit_x64_vector_floating_point.cpp
-
55src/dynarmic/src/dynarmic/common/lut_from_list.h
@ -1,55 +0,0 @@ |
|||||
// 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 |
|
||||
*/ |
|
||||
|
|
||||
#pragma once |
|
||||
|
|
||||
#include <initializer_list> |
|
||||
#include <map> |
|
||||
#include <type_traits> |
|
||||
|
|
||||
#include <mcl/mp/metafunction/apply.hpp> |
|
||||
#include <mcl/mp/typelist/list.hpp> |
|
||||
#include <mcl/type_traits/is_instance_of_template.hpp> |
|
||||
|
|
||||
#ifdef _MSC_VER |
|
||||
# include <mcl/mp/typelist/head.hpp> |
|
||||
#endif |
|
||||
|
|
||||
namespace Dynarmic::Common { |
|
||||
|
|
||||
// prevents this function from printing 56,000 character warning messages |
|
||||
#ifdef __GNUC__ |
|
||||
#pragma GCC diagnostic push |
|
||||
#pragma GCC diagnostic ignored "-Wno-stack-usage" |
|
||||
#endif |
|
||||
#ifdef __clang__ |
|
||||
#pragma clang diagnostic push |
|
||||
#pragma clang diagnostic ignored "-Wno-stack-usage" |
|
||||
#endif |
|
||||
|
|
||||
template<typename Function, typename... Values> |
|
||||
inline auto GenerateLookupTableFromList(Function f, mcl::mp::list<Values...>) { |
|
||||
#ifdef _MSC_VER |
|
||||
using PairT = std::invoke_result_t<Function, mcl::mp::head<mcl::mp::list<Values...>>>; |
|
||||
#else |
|
||||
using PairT = std::common_type_t<std::invoke_result_t<Function, Values>...>; |
|
||||
#endif |
|
||||
using MapT = mcl::mp::apply<std::map, PairT>; |
|
||||
static_assert(mcl::is_instance_of_template_v<std::pair, PairT>); |
|
||||
const std::initializer_list<PairT> pair_array{f(Values{})...}; |
|
||||
return MapT(pair_array.begin(), pair_array.end()); |
|
||||
} |
|
||||
|
|
||||
#ifdef __GNUC__ |
|
||||
#pragma GCC diagnostic pop |
|
||||
#endif |
|
||||
#ifdef __clang__ |
|
||||
#pragma clang diagnostic pop |
|
||||
#endif |
|
||||
|
|
||||
} // namespace Dynarmic::Common |
|
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue