aboutsummaryrefslogtreecommitdiff
path: root/src/dynarmic/tests
diff options
context:
space:
mode:
authorlizzie <lizzie@eden-emu.dev>2026-05-09 05:41:41 +0200
committercrueter <crueter@eden-emu.dev>2026-05-09 05:41:41 +0200
commiteec460ec2ef13dee7376f2854ba00da9a98b0cd5 (patch)
treec0f19f04bac33f2a7f53f0b0fadf3f167305a472 /src/dynarmic/tests
parenta6423a88cc068f8213db8707900a1d1b38b9566d (diff)
[dynarmic] remove decode matcher function handlers using std::function<>, use raw function pointers (#3920)
issues: - std::function<> is used, which is famously bad - storage of tehse in tables makes big fucking tables for no good reason - lets just store a normal pointer and stuff! :) this pr attempts to address that Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3920 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Diffstat (limited to 'src/dynarmic/tests')
-rw-r--r--src/dynarmic/tests/decoder_tests.cpp2
-rw-r--r--src/dynarmic/tests/print_info.cpp12
2 files changed, 7 insertions, 7 deletions
diff --git a/src/dynarmic/tests/decoder_tests.cpp b/src/dynarmic/tests/decoder_tests.cpp
index 2a6c0f6a4f..17ed2c0ce5 100644
--- a/src/dynarmic/tests/decoder_tests.cpp
+++ b/src/dynarmic/tests/decoder_tests.cpp
@@ -51,7 +51,7 @@ TEST_CASE("ASIMD Decoder: Ensure table order correctness", "[decode][a32][.]") {
const bool iserr = is_decode_error(*iter, instruction);
const auto alternative = std::find_if(table.cbegin(), iter, [instruction](const auto& m) {
- return m.Matches(instruction);
+ return (instruction & mask) == expect;
});
const bool altiserr = is_decode_error(*alternative, instruction);
diff --git a/src/dynarmic/tests/print_info.cpp b/src/dynarmic/tests/print_info.cpp
index 6d6109d849..988a8d294e 100644
--- a/src/dynarmic/tests/print_info.cpp
+++ b/src/dynarmic/tests/print_info.cpp
@@ -43,12 +43,12 @@
using namespace Dynarmic;
std::string_view GetNameOfA32Instruction(u32 instruction) {
- if (auto const vfp_decoder = A32::DecodeVFP<A32::TranslatorVisitor>(instruction))
- return *A32::GetNameVFP<A32::TranslatorVisitor>(instruction);
- else if (auto const asimd_decoder = A32::DecodeASIMD<A32::TranslatorVisitor>(instruction))
- return *A32::GetNameASIMD<A32::TranslatorVisitor>(instruction);
- else if (auto const decoder = A32::DecodeArm<A32::TranslatorVisitor>(instruction))
- return *A32::GetNameARM<A32::TranslatorVisitor>(instruction);
+ if (auto const vfp_decoder = A32::GetNameVFP<A32::TranslatorVisitor>(instruction))
+ return *vfp_decoder;
+ else if (auto const asimd_decoder = A32::GetNameASIMD<A32::TranslatorVisitor>(instruction))
+ return *asimd_decoder;
+ else if (auto const decoder = A32::GetNameArm<A32::TranslatorVisitor>(instruction))
+ return *decoder;
return "<null>";
}