Commit Graph

2781 Commits

Author SHA1 Message Date
Merry
ceea80dd59 emit_x64_vector_floating_point: Implement GetNonSignMaskVector 2023-08-28 12:57:20 +01:00
Merry
92a47c8db2 emit_x64_floating_point: FPMulAdd: Inline NaN handling 2023-08-28 09:45:46 +01:00
Andrea Pappacoda
831984b519 build: set SOVERSION to major.minor
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-20 23:41:08 +01:00
comex
40636020fc exception_handler_macos: Avoid undefined behavior due to accessing 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-07-09 10:38:44 +01:00
merry
f7296572ba spin_lock: Unlocked at initilization time 2023-05-17 15:34:19 +01:00
Merry
7da378033a spin_lock: Invalidate runtime generated code
Not doing this can result in cache related heisenbugs.
2023-05-07 23:03:39 +01:00
Merry
d5c2b473a8 spin_lock: Use std::call_once 2023-05-07 15:12:05 +01:00
Merry
420a786a3f a32_get_set_elimination_pass: Appease MSVC 2022 2023-05-05 10:37:57 +01:00
Steveice10
39c59b6c46 common: Defer spin-lock initialization. 2023-04-29 23:04:00 +01:00
Merry
b1584b66b6 x64/block_of_code: Only commit minimum required memory 2023-04-27 21:22:28 +01:00
merry
c326f9b02f backend/arm64: Implement RSB 2023-03-31 10:29:31 +01:00
merry
3f6232bfdb arm64/abi: Add Xscratch2 2023-03-31 10:29:31 +01:00
Liam
4ad2dee67b a32_interface: remove Context 2023-03-15 16:06:05 +00:00
Alexandre Bouvier
b3a92ab54d cmake: fix static standalone build 2023-03-04 14:19:51 +00:00
Wunkolo
e92f69aca0 emit_x64_vector: AVX512VBMI implementation of EmitVectorTableLookup64 2023-02-21 21:56:18 +00:00
Merry
15e889fbe3 emit_arm64: Add BlockRelocationType::MoveToScratch0 2023-02-15 11:42:22 +00:00
Merry
a179e2f2bb A64: Remove more instances of use of VectorMultiply64 2023-02-11 12:09:56 +00:00
Merry
082167feeb backend/arm64: Add InvalidateCacheRanges 2023-02-11 11:58:09 +00:00
Merry
7d3b4f913b a32_get_set_elimination_pass: Fix bugs in A32 get/set algorithm 2023-02-05 17:19:08 +00:00
Merry
2636da8821 verbose_debugging_output: Use actual names 2023-02-04 14:11:56 +00:00
Merry
8c9a3e16f5 Appease clang-format 2023-02-04 14:09:24 +00:00
Merry
d796d8e93d reg_alloc: Fix cast-qual issue 2023-02-04 11:30:01 +00:00
Merry
66a4940b11 a32_get_set_elimination_pass: Fix Set/GetVector for 64-bit registers 2023-02-03 23:00:56 +00:00
Merry
890f01f036 verbose debugging: Ensure host fp state is preserved 2023-02-03 22:15:53 +00:00
Merry
fdd5192ab3 reg_alloc: Support unused values for noopt mode 2023-02-03 22:15:21 +00:00
Merry
716a2fa5fa emit_x64_vector: zext TBL (3) 2023-01-20 23:42:38 +00:00
Merry
d04989c052 emit_x64_vector: zext Vector*SaturatedNarrowTo* 2023-01-20 21:21:11 +00:00
Merry
b764c2425c emit_x64_floating_point: zext FPFixedU32ToDouble 2023-01-20 21:20:35 +00:00
Merry
43e8d0d7fc emit_x64_vector: Fix vector upper output of EmitVectorSignedSaturatedNarrowToSigned 2023-01-20 16:19:46 +00:00
Merry
e26a9769dc backend/arm64: Implement VectorMultiply64, but allow only during debugging 2023-01-20 11:53:56 +00:00
Merry
191125a208 backend/arm64: Add verbose debugging output 2023-01-20 11:52:23 +00:00
Merry
f0ebdf278c backend/x64: Improve verbose debugging output 2023-01-20 11:47:49 +00:00
Merry
c0813cf2a5 emit_x64_vector: Fix 64-bit TBL (zext table input) 2023-01-20 02:03:52 +00:00
Merry
7fb7352f55 a32_get_set_elimination_pass: Ensure no use before rm def 2023-01-19 20:49:30 +00:00
Merry
ba42318ab2 emit_arm64_data_processing: Fix flags issue in Add32 overflow variant 2023-01-19 19:51:07 +00:00
Merry
33fa44acf6 a32_get_set_elimination_pass: New algorithm 2023-01-19 19:16:46 +00:00
Jan Beich
76aa4dd665 simd_table_lookup: add missing header for libc++ < 14
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-18 19:46:36 +00:00
Merry
ffc3dce9b1 tests: Add verbose debugging output and test_reader 2023-01-16 00:42:18 +00:00
Merry
f865bbbad2 Remove some unnecessary headers 2023-01-16 00:42:18 +00:00
Merry
4f3ef50d5c fp: Fix FPToFixed for borderline values 2023-01-15 23:59:27 +00:00
Merry
f3af94bc7c backend/arm64: Use always_false_v in static_assert 2023-01-15 11:45:10 +00:00
Merry
ce1ba43fea emit_arm64_a64: Use correct bitwidth in LinkBlockFast 2023-01-15 11:07:17 +00:00
Merry
2d1edf1c80 emit_x64_floating_point: Fix register allocation bug in FPTwoOp
Erroneous use of ScratchXmm in conditional path
2023-01-15 02:29:08 +00:00
Merry
9af4b970d3 CMakeLists: Minor multi-arch support cleanup 2023-01-06 14:38:46 +00:00
Merry
6b41b5be07 CMakeLists: Support multi-architecture builds 2023-01-06 14:27:06 +00:00
Merry
c72ee5473b backend: Unify exception handlers across architectures 2023-01-06 14:24:09 +00:00
Merry
fae1d604e4 emit_arm64_memory: Use LDAR and STLR instead of barriers 2023-01-03 16:57:11 +00:00
Alexandre Bouvier
4bf4d6565e cmake: allow shared llvm linking 2022-12-31 23:14:38 +00:00
Merry
300046b60b backend/arm64/address_space: Assert that code_cache_size <= 128 MiB 2022-12-31 16:06:56 +00:00
Merry
a7523af706 CMakeLists: Add <oaknut/oaknut.hpp> to precompiled headers 2022-12-31 15:21:18 +00:00