2111 Commits

Author SHA1 Message Date
SachinVin
a7c08a6240 backend/a64: Devirtualize functions for a64 2020-04-07 23:07:03 -05:00
SachinVin
2d9d104719 backend/a64: Port block_range_info 2020-04-07 23:07:03 -05:00
SachinVin
01a943c3d3 CMakeModules\DetectArchitecture.cmake: Refactor ARCHITECTURE to DYNARMIC_ARCHITECTURE
Don't rely on super-project's definition of ARCHITECTURE
2020-04-07 23:07:03 -05:00
SachinVin
3eced9ffc3 [HACK] A32/exception_generating: Interpret undefined instructions 2020-04-07 23:07:03 -05:00
SachinVin
0a945f8c0b [HACK] CMakeLists: Do not build A64 tests on AArch64 2020-04-07 23:07:03 -05:00
MerryMage
c0993253e5 fuzz_thumb: Add [JitA64] tag to supported instructions 2020-04-07 23:07:03 -05:00
SachinVin
8c5b94bae0 backend/A64: Port a32_jitstate 2020-04-07 23:07:03 -05:00
MerryMage
4f416ca0ee code_block: Support Windows and fix munmap check 2020-04-07 23:07:03 -05:00
SachinVin
67f3a1aef9 ir_opt: Port a32_merge_interpreter_blocks 2020-04-07 23:07:03 -05:00
SachinVin
3c3c0dd8b0 assert: Use __android_log_print on Android 2020-04-07 23:07:03 -05:00
SachinVin
42c187c179 CMakeLists: xbyak should only be linked on x64 2020-04-07 23:06:46 -05:00
SachinVin
f35bd519b3 a64_emitter: Fix ABI push and pop 2020-04-07 23:05:41 -05:00
SachinVin
0ca5a5cc1a a64_emitter: More style cleanup 2020-04-07 23:05:41 -05:00
SachinVin
8581a98e4f a64_emitter: Style cleanup 2020-04-07 23:05:41 -05:00
BreadFish64
b5c3b6302f Backend/A64: add jitstate_info.h 2020-04-07 23:05:41 -05:00
BreadFish64
3848532de2 Backend/A64: Add Dolphin's ARM emitter 2020-04-07 23:05:41 -05:00
BreadFish64
59ed378522 Add aarch64 CI 2020-04-07 23:05:41 -05: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
MerryMage
8c6cab482f CMakeLists: Put -Wfatal-errors behind a CMake flag 2019-08-14 20:50:36 +01:00
MerryMage
af8e6c4127 test_arm_instruction: Revive some old tests 2019-07-28 21:31:05 +01:00
MerryMage
156cfa97db constant_propagation_pass: Handle GetCarryFromOp for MostSignificantWord 2019-07-28 21:28:02 +01:00
MerryMage
6921ef5632 a32_interface: Remove unused TransferJitState function 2019-07-28 21:23:16 +01:00
MerryMage
3aecba9833 a32_jitstate: Only transfer required state
Importantly, reset exclusive state upon transfer.
2019-07-28 18:59:44 +01:00
MerryMage
0e7b6b1a60 A32/Thumb: Correct behaviour for UDF and Unpredictable instructions
Raise an exception instead of calling the interpreter and ASSERT-ing respectively.
2019-07-27 19:56:18 +01:00
MerryMage
1b17d1e7bd fuzz_arm: Test MSR and MRS instructions against unicorn
* Add always_little_endian option to mach unicorn behavior.
* Correct CPSR.Mode = Usermode
2019-07-27 19:54:57 +01:00
MerryMage
993784faa3 print_info: Add support for printing A32 instructions 2019-07-27 16:33:19 +01:00