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
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
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
MerryMage
f6f8024fb5
a32_emit_x64: Dump x64 disassembly upon fastmem patch failure
2021-05-25 21:57:29 +01: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
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