Wunkolo
9a23c09c3b
emit_x64_floating_point: AVX implementation of ZeroIfNaN
2021-05-31 13:41:05 +01:00
Wunkolo
e9c5c01eda
emit_x64{_vector}_floating_point: AVX512 implementation of ZeroIfNaN
...
Using a single `vfixupimm` to turn `QNaN`/`SNan` to `+0`
2021-05-31 13:39:56 +01:00
Wunkolo
fe5abdb3e1
backend/x64: Add vfixup constants
...
Adds compile-time `FixupLUT` function for generating the 32-bit
LUT of src->dst mappings
2021-05-31 13:39:56 +01:00
MerryMage
0a77ee1a58
tests: Format to clang-format mandated style
2021-05-31 12:54:27 +01:00
MerryMage
1d9a0415f9
github: Add clang-format action
2021-05-31 12:51:47 +01:00
MerryMage
bda1399a69
travis: Remove travis
2021-05-31 12:51:47 +01:00
merry
1672f907af
github: Add build-and-test workflow
2021-05-31 12:51:47 +01:00
Lioncash
07710c89b6
CMakeLists: Add missing EXCLUDE_FROM_ALL specifiers
2021-05-31 11:20:45 +01:00
MerryMage
8235de9829
{a32,a64}_emit_x64: Fix fast_dispatch_table_lookup call in Unpatch on W^X systems
...
fast_dispatch_table_lookup is in JITted code, and thus execution must be enabled before it can be called.
2021-05-30 22:30:51 +01:00
MerryMage
0a98e5d3d7
exception_handler_*: Simplify message for case when exception is not our fault
2021-05-30 22:22:02 +01:00
MerryMage
9815502fee
emit_x64_data_processing: operand in EmitExtractRegister is not modified
2021-05-30 22:18:21 +01:00
Markus Wick
36c3b289a0
fixup! a64/fastmem: Implement fastmem on 128 bit memory access.
2021-05-28 22:14:09 +01:00
Markus Wick
e82685223a
a64/fastmem: Implement fastmem on 128 bit memory access.
2021-05-28 18:49:31 +01:00
Markus Wick
ff01b1c6f9
a64/fastmem: Only generate abort handler if needed.
...
If fastmem fails, we call the callback from the signal handler. So this callback proxy in slowmem won't be used ever.
2021-05-28 18:49:31 +01:00
Jeremy Van de woestyne
b4ee976a6f
unit tests & various fixes
2021-05-28 18:49:31 +01:00
MerryMage
709773dcf1
a64_emit_x64: Implement fastmem for A64 frontend for 8-64 bit reads/writes
2021-05-28 18:49:31 +01:00
Merry
bbffae2f96
emit_x64_vector_saturation: AVX implementation of EmitVectorSignedSaturated
2021-05-28 15:34:49 +01:00
Merry
56e3bf57d2
emit_x64_vector_saturated: Consolidate unsigned operations into EmitVectorUnsignedSaturated
2021-05-28 15:34:49 +01:00
Merry
a76e8c8827
emit_x64_vector_saturation: Reduce esize noise in EmitVectorSignedSaturated
2021-05-28 15:34:49 +01:00
Merry
de31caca49
emit_x64_vector_saturation: AVX implementation of EmitVectorUnsignedSaturatedSub32
2021-05-28 15:34:49 +01:00
Merry
b46e6a24dc
emit_x64_vector_saturation: AVX implementation of EmitVectorUnsignedSaturatedAdd32
2021-05-28 15:34:49 +01:00
Merry
d087ef42b9
emit_x64_vector_saturation: AVX implementation of EmitVectorUnsignedSaturatedSub32
2021-05-28 15:34:49 +01:00
Merry
0a232a6fbf
emit_x64_vector_saturation: AVX2 implementation of EmitVectorUnsignedSaturatedAdd64
2021-05-28 15:34:49 +01:00
Wunkolo
57601f064b
emit_x64_vector_saturation: AVX512 implementation of EmitVectorSignedSaturated
2021-05-28 15:34:49 +01:00
Wunkolo
332c26d432
emit_x64_vector_saturation: AVX512 implementation of VectorUnsignedSaturated{Add,Sub}{32,64}
2021-05-28 15:34:49 +01:00
Wunkolo
fa8cc1ac36
backend/x64: Add constants
...
Used to redefine x86 assembly-constants without
including platform-dependent headers such as `immintrin.h`.
Currently includes vpcmp constants as well as ternary logic
utility-terms.
Removes `immintrin.h` requirement from emit_x64_vector_saturation
and updates our usage of `vpcmp` and `vpternlog` with the new constants
2021-05-28 14:13:11 +01:00
Wunkolo
e8c266d0d3
tests/A64: Add VQADD/VQSUB unit tests
2021-05-28 14:13:11 +01:00
merry
8b4c73c833
README: Update readme
...
- Add 'projects using' section
- Update guest architectures supported section
2021-05-26 17:18:06 +01:00
MerryMage
6f87951178
externals: Remove unused submodule
2021-05-25 21:59:40 +01:00
MerryMage
f6f8024fb5
a32_emit_x64: Dump x64 disassembly upon fastmem patch failure
2021-05-25 21:57:29 +01:00
MerryMage
4256d21481
common: Add x64_disassemble
2021-05-25 21:56:59 +01:00
MerryMage
731c7fa4d9
externals: Build zydis
2021-05-25 21:32:34 +01:00
MerryMage
eed33f255d
externals: Add zycore
...
Merge commit '80d62f224900ab486a5bc5a6e80ce1e25a0e38e8' as 'externals/zycore'
2021-05-25 21:28:58 +01:00
MerryMage
80d62f2249
Squashed 'externals/zycore/' content from commit 0c372cdef
...
git-subtree-dir: externals/zycore
git-subtree-split: 0c372cdefe799e99812c008a0b74537bfa5fe077
2021-05-25 21:28:55 +01:00
MerryMage
343b21ff7b
externals: Add zydis
...
Merge commit '6ee9beab3209bc301af98ee881bd15f0aeea2513' as 'externals/zydis'
2021-05-25 21:23:45 +01:00
MerryMage
6ee9beab32
Squashed 'externals/zydis/' content from commit 25193db00
...
git-subtree-dir: externals/zydis
git-subtree-split: 25193db008e8799ff59fd655c2a26b2ffd79d40d
2021-05-25 21:23:39 +01:00
Mai M
fff4d9a4c7
Merge pull request #612 from Wunkolo/cpuinfo-concise
...
cpu_info: Add CPU Name, Family, compact output
2021-05-24 15:57:23 -04:00
Wunkolo
dc7fb1f3ed
cpu_info: Add CPU Name, Family, compact output
...
Compacts and formats the output a bit to be much more
concise. Sorts CPU features by alphabetical order. Mostly
to speed up `HostFeature` testing.
2021-05-24 12:25:01 -07:00
MerryMage
17ae7f9ce1
IR: Implement IR instruction CallHostFunction
2021-05-23 15:44:57 +01:00
Wunkolo
3c693f2576
emit_x64_vector: AVX512VBMI implementation of EmitVectorTableLookup128
...
Also adds AVX512VBMI detection to host_feature
2021-05-22 22:48:31 +01:00
Wunkolo
37b24ee29e
emit_x64_vector: AVX512{VL+BW} implementation of EmitVectorTableLookup128
...
Based off of the SSE41 implementation but utilizing
embedded broadcasting, mask registers, and
the special zero-mask to default-initialize out-of-bound
indices to zero in the `is_defaults_zero` case.
2021-05-22 22:47:21 +01:00
Wunkolo
9ba5e8e52d
tests/A64: Add TBL/TBX instruction unit tests
...
Tests the TBL instruction with implementation with {1-4} register
lookups and the handling of out-of-bound indices.
Intended to target the implementation of VectorTableLookup128
2021-05-22 22:47:21 +01:00
MerryMage
53493b2024
Add .clang-format file
...
Using clang-format version 12.0.0
2021-05-22 15:07:02 +01:00
MerryMage
51b155df92
A32: Introduce PreCodeTranslationHook
2021-05-22 14:16:10 +01:00
Merry
714216fd0e
Consolidate all source files into src/ directory
2021-05-19 17:41:59 +01:00
MerryMage
c6ecc835b6
ASIMD: Implement VCVT (between half-precision and single-precision)
2021-05-16 23:48:29 +01:00
MerryMage
d93145bd04
decoder_tests: Only run ASIMD decoder test explicitly
...
The test is a 2 minute test whose result only really matters if the ASIMD decoder is modified.
2021-05-16 21:48:25 +01:00
MerryMage
9de58f2875
assert: Check for unreachable code if DYNARMIC_IGNORE_ASSERTS isn't enabled
2021-05-16 21:46:44 +01:00
MerryMage
5bf74b5f04
reg_alloc: Determine size of spill slot with sizeof
2021-05-16 21:46:10 +01:00
MerryMage
b6bff56523
translate_thumb: Update current_instruction_size in TranslateSingleThumbInstruction
2021-05-16 10:31:30 +01:00