MerryMage
0be90cd187
value: Add IsIdentity function
2020-04-20 16:11:51 +01:00
MerryMage
c5148641df
A64/decoder: Use a lookup table instead of doing a linear scan
2020-04-19 21:11:03 +01:00
MerryMage
a3cd05577c
A64: Add enable_optimizations configuration option
...
Allow library users to disable optimizations for debugging reasons.
2020-04-19 21:11:03 +01:00
MerryMage
e4b9043fcb
emit_x64_floating_point: SSE2 implementation for DenormalsAreZero
2020-04-19 14:38:38 +01:00
MerryMage
8d1699ba2d
CMakeLists: option only works for boolean settings
2020-04-18 11:40:58 +01:00
MerryMage
164ce9df7a
CMakeLists: Add DYNARMIC_FRONTENDS option
...
Allows library user to select which frontends to enable
2020-04-18 10:49:52 +01:00
MerryMage
e81c3b3b95
travis: Ensure python version is >= 3.5
2020-04-18 00:04:23 +01:00
MerryMage
39cbcf1027
A32: Detect unpredictable LDM/STM instructions
2020-04-17 23:52:24 +01:00
MerryMage
4305c7428a
emit_x64: Do not clear fast_dispatch_table unnecessarily
...
Reduces invalidation overhead
2020-04-15 22:01:10 +01:00
MerryMage
1731046efb
travis: Re-enable most tests
2020-04-15 21:42:18 +01:00
MerryMage
19050b9e1c
fuzz_with_unicorn: Add large random block testing
2020-04-15 21:42:18 +01:00
MerryMage
4420758885
a64_emit_x64: Fix location descriptor generation in GenTerminalHandlers
2020-04-15 21:42:18 +01:00
MerryMage
d3241e78ee
emit_x64_data_processing: EmitMaskedShift: Use appropriately sized immediates
2020-04-15 21:42:18 +01:00
MerryMage
bb08f764b1
exception_handler_windows: Do not attempt to call cb when cb isn't callable
2020-04-13 09:55:18 +01:00
MerryMage
938e89e7fc
backend/x64: Add fastmem support to Windows exception handler
2020-04-09 15:21:56 +01:00
MerryMage
72dab403f1
backend/x64: Add POSIX exception handler with fastmem support
2020-04-08 22:42:20 +01:00
MerryMage
e4f3a78e6f
backend/x64: Add macOS exception handler with fastmem support
2020-04-08 22:03:37 +01:00
MerryMage
f18fa7edb4
a32_emit_x64: Implement fastmem
2020-04-08 22:03:37 +01:00
MerryMage
634d6dc184
a32_emit_x64: Fully wrapped memory fallbacks
...
In the same style as the A64 backend
2020-04-08 14:49:01 +01:00
MerryMage
79490e9f24
a32_emit_x64: Use r14 for page_table pointer
2020-04-08 14:11:15 +01:00
MerryMage
45c0c3a3b4
reg_alloc: Explicitly specify GPR and XMM order
...
This allows each backend to modify what registers they want to use and their preferred orderings
2020-04-08 13:19:26 +01:00
MerryMage
e52524b203
a32_emit_x64: Make {Read,Write}Memory member functions of A32EmitX64
2020-04-08 12:59:40 +01:00
MerryMage
a59a2d7661
emit_x64_saturation: Prefer changeBit to setBit
2020-04-08 12:59:40 +01:00
MerryMage
29f2267cf9
backend/x64: Make ExceptionHandler its own class
2020-04-08 12:59:40 +01:00
MerryMage
41a2e65274
backend/x64: Rename namespace BackendX64 -> Backend::X64
2020-04-08 11:46:36 +01:00
MerryMage
0973ec8640
block_of_code: Reduce jmps in dispatcher loop
2020-04-07 19:35:36 +01:00
MerryMage
b58048a5a8
block_of_code: Always specify codeptr to run from
2020-04-06 15:55:25 +01:00
MerryMage
c24b15be64
A32: Add Step
2020-04-06 15:55:24 +01:00
MerryMage
8cbba8adf9
A64: Add Step
...
Allow for stepping instruction-by-instruction
2020-04-06 15:33:49 +01:00
MerryMage
58be30f06d
appveyor: Remove DYNARMIC_USE_SYSTEM_BOOST option
...
We no longer use this as a cmake option.
2020-04-05 23:42:47 +01:00
MerryMage
3415f47579
IR: Add masked shift IR instructions
...
Also use these in the A64 frontend to avoid the need to mask the shift amount.
2020-04-05 23:42:47 +01:00
MerryMage
42722392de
cast_util: Add FptrCast
...
Reduce unnecessary type duplication when casting a lambda to a function pointer.
2020-04-04 10:57:41 +01:00
MerryMage
254f4e3659
lut_from_list: Reduce number of required template arguments
2020-04-04 10:06:55 +01:00
MerryMage
ea0cb8ca4c
travis: Temporarily disable unicorn-related tests
2020-04-04 09:01:11 +01:00
MerryMage
6a014e3569
mp: Migrate to shared version of mp library
2020-04-04 01:30:36 +01:00
MerryMage
b6476285a6
externals: Add mp
...
Merge commit '01586664ad6a11977026a59b6a656588bd4bea16' as 'externals/mp'
2020-04-04 00:33:33 +01:00
MerryMage
01586664ad
Squashed 'externals/mp/' content from commit 29cb5588
...
git-subtree-dir: externals/mp
git-subtree-split: 29cb5588da3a18ed571a0e41622900a01b9f01eb
2020-04-04 00:32:25 +01:00
MerryMage
607dd2c95e
mp/function_info: Add parameter_count_v
2020-04-02 13:33:53 +01:00
MerryMage
3315faf592
bit_util: Add CountLeadingZeros
2020-04-02 13:33:53 +01:00
MerryMage
be2f78bb60
print_info: Add -exec parameter to test execution
2020-04-02 13:33:53 +01:00
MerryMage
de63384ad4
a64_emit_x64: Reduce patchpoint sizes
2020-03-31 19:14:02 +01:00
MerryMage
a84a746831
A64: Add options for detecting misaligned loads and stores
2020-03-31 14:45:04 +01:00
Marshall Mohror
f1bfa5b5c0
A32/x64: Create a global_offset optimization for the page table ( #507 )
...
Instead of looking up the page table like:
table[addr >> 12][addr & 0xFFF]
We can use a global offset on the table to query the memory like:
table[addr >> 12][addr]
This saves two instructions on *every* memory access within the recompiler.
Original change by degasus in A64 emitter
2020-03-22 17:55:07 +00:00
MerryMage
525cac401e
ir/basic_block: Add FastDispatchHint to TerminalToString
...
Use a boost::static_visitor to ensure this is caught at compile-time in the future.
2020-03-21 13:20:46 +00:00
Lioncash
0046466107
A64/impl: Move AccType and MemOp enum into general IR emitter header
...
These will be used by both frontends in the future, so this performs the
migratory changes separate from the changes that will make use of them.
2020-03-15 22:19:16 +00:00
Lioncash
206bb7074a
externals: Update catch to 2.11.1
...
Updates our unit testing library from 2.9.1 to 2.11.1.
Keeps it up to date.
2020-01-27 14:10:20 +00:00
Merry
f6ae9e1c33
Merge pull request #505 from degasus/page_table
...
A64/x64: Create a global_offset optimization for the page table.
2019-12-31 18:52:10 +00:00
Markus Wick
f2c7c6a0d0
A64/x64: Create a global_offset optimization for the page table.
...
Instead of looking up the page table like:
table[addr >> 12][addr & 0xFFF]
We can use a global offset on the table to query the memory like:
table[addr >> 12][addr]
This saves two instructions on *every* memory access within the recompiler.
Thanks at skmp for the idea.
2019-12-31 00:08:35 +01:00
MerryMage
087a74417a
Reduce requirements to macOS 10.12
2019-08-14 21:14:23 +01:00
MerryMage
79db0c7c40
a32_emit_x64: Use std::get_if in EmitA32Coproc*
2019-08-14 21:14:21 +01:00