aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
AgeCommit message (Collapse)Author
2023-12-17emit_x64_vector: Add SSSE3 implementation of VUZP{1,2}.8Bzmt00
2023-12-11emit_x64_vector: Add SSE4.1 implementation of VUZP1.8Hzmt00
2023-12-11emit_x64_vector: Add SSSE3 implementation of VUZP{1,2}.4Hzmt00
2023-12-02emit_x64_vector: Add SSE4.1 implementation of VUZP{1,2}.2Szmt00
2023-11-16A32: Introduce PreCodeReadHook (#763)kynex7510
* A32: Introduce PreCodeReadHook * A32: Invert code read hook return value
2023-10-08exception_handler: connect installation to instance lifetimeLiam
2023-10-08exception_handler_posix: Support NetBSD and OpenBSDscribam
2023-08-28emit_x64_vector_floating_point: RSqrtEstimate: Add AVX implementationMerry
2023-08-28emit_x64_vector_floating_point: FPVectorMulAdd: Minimize full fallbackMerry
2023-08-28emit_x64_vector_floating_point: Implement GetNonSignMaskVectorMerry
2023-08-28emit_x64_floating_point: FPMulAdd: Inline NaN handlingMerry
2023-07-20build: set SOVERSION to major.minorAndrea Pappacoda
Dynarmic uses semantic versioning, restricting backwards-incompatible changes to major releases. This backwards compatibility, though, refers to API changes, and disregards ABI stability. Since having to maintain a compatible ABI between major releases is somewhat of a pain, and it arguably doesn't matter that much for dynarmic, setting the SOVERSION to major.minor allows for breaking ABI changes to be made between feature releases, and not only major ones. To be clear, this patch doesn't try to enforce a new policy, but just reflects how the project has handled ABI changes in the past. That is, these kind of changes have been made already. This patch comes as a fix for Debian bug <https://bugs.debian.org/1041270>.
2023-07-09exception_handler_macos: Avoid undefined behavior due to accessing ↵comex
misaligned pointer Caught by UBSan. I don't think this has a meaningful performance impact (especially since the thread state doesn't include floating-point/vector registers), but I haven't tested it.
2023-05-17spin_lock: Unlocked at initilization timemerry
2023-05-07spin_lock: Invalidate runtime generated codeMerry
Not doing this can result in cache related heisenbugs.
2023-05-07spin_lock: Use std::call_onceMerry
2023-05-05a32_get_set_elimination_pass: Appease MSVC 2022Merry
2023-04-29common: Defer spin-lock initialization.Steveice10
2023-04-27x64/block_of_code: Only commit minimum required memoryMerry
2023-03-31backend/arm64: Implement RSBmerry
2023-03-31arm64/abi: Add Xscratch2merry
2023-03-15a32_interface: remove ContextLiam
2023-03-04cmake: fix static standalone buildAlexandre Bouvier
2023-02-21emit_x64_vector: AVX512VBMI implementation of EmitVectorTableLookup64Wunkolo
2023-02-15emit_arm64: Add BlockRelocationType::MoveToScratch0Merry
2023-02-11A64: Remove more instances of use of VectorMultiply64Merry
2023-02-11backend/arm64: Add InvalidateCacheRangesMerry
2023-02-05a32_get_set_elimination_pass: Fix bugs in A32 get/set algorithmMerry
2023-02-04verbose_debugging_output: Use actual namesMerry
2023-02-04Appease clang-formatMerry
2023-02-04reg_alloc: Fix cast-qual issueMerry
2023-02-03a32_get_set_elimination_pass: Fix Set/GetVector for 64-bit registersMerry
2023-02-03verbose debugging: Ensure host fp state is preservedMerry
2023-02-03reg_alloc: Support unused values for noopt modeMerry
2023-01-20emit_x64_vector: zext TBL (3)Merry
2023-01-20emit_x64_vector: zext Vector*SaturatedNarrowTo*Merry
2023-01-20emit_x64_floating_point: zext FPFixedU32ToDoubleMerry
2023-01-20emit_x64_vector: Fix vector upper output of ↵Merry
EmitVectorSignedSaturatedNarrowToSigned
2023-01-20backend/arm64: Implement VectorMultiply64, but allow only during debuggingMerry
2023-01-20backend/arm64: Add verbose debugging outputMerry
2023-01-20backend/x64: Improve verbose debugging outputMerry
2023-01-20emit_x64_vector: Fix 64-bit TBL (zext table input)Merry
2023-01-19a32_get_set_elimination_pass: Ensure no use before rm defMerry
2023-01-19emit_arm64_data_processing: Fix flags issue in Add32 overflow variantMerry
2023-01-19a32_get_set_elimination_pass: New algorithmMerry
2023-01-18simd_table_lookup: add missing header for libc++ < 14Jan Beich
src/dynarmic/frontend/A64/translate/impl/simd_table_lookup.cpp:14:31: error: implicit instantiation of undefined template 'std::vector<Dynarmic::IR::TypedValue<Dynarmic::IR::Type::U128>>' std::vector<IR::U128> result; ^ /usr/include/c++/v1/iosfwd:251:28: note: template is declared here class _LIBCPP_TEMPLATE_VIS vector; ^ src/dynarmic/frontend/A64/translate/impl/simd_table_lookup.cpp:13:34: error: no matching member function for call to 'VectorTable' const IR::Table table = v.ir.VectorTable([&] { ~~~~~^~~~~~~~~~~ src/dynarmic/../dynarmic/ir/ir_emitter.h:313:11: note: candidate function not viable: cannot convert argument of incomplete type 'void' to 'std::vector<U64>' (aka 'vector<TypedValue<Type::U64>>') for 1st argument Table VectorTable(std::vector<U64> values); ^ src/dynarmic/../dynarmic/ir/ir_emitter.h:314:11: note: candidate function not viable: cannot convert argument of incomplete type 'void' to 'std::vector<U128>' (aka 'vector<TypedValue<Type::U128>>') for 1st argument Table VectorTable(std::vector<U128> values); ^
2023-01-16tests: Add verbose debugging output and test_readerMerry
2023-01-16Remove some unnecessary headersMerry
2023-01-15fp: Fix FPToFixed for borderline valuesMerry
2023-01-15backend/arm64: Use always_false_v in static_assertMerry