BreadFish64
892c7904ca
merge fastmem
2020-04-07 23:22:31 -05: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
be2f78bb60
print_info: Add -exec parameter to test execution
2020-04-02 13:33:53 +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
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
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
e814b47812
A64: Add hook_hint_instructions option
2019-07-25 12:15:54 +01:00
MerryMage
534eb0fe1d
A32: Add hook_hint_instructions option
2019-07-25 12:11:39 +01:00
Lioncash
2bc8a095dd
General: Correct typos is code comments
2019-05-24 01:37:03 -04:00
Lioncash
884d759eba
A32/coprocessor: Remove lingering boost mention in documentation comment
...
This should have been changed to mention std::monostate, but was
overlooked during the transition to standardized facilities.
2019-05-18 15:10:42 -04:00
Merry
ff75a409b6
Merge pull request #497 from lioncash/boost
...
A32/coprocessor: Remove boost from public interface
2019-05-04 16:52:24 +01:00
Lioncash
ae7aa581b8
A32: Implement the ARM-mode variant of SEVL
2019-05-03 16:16:07 -04:00
Lioncash
41c1aa61df
A32/coprocessor: Remove boost from public interface
...
Removes a boost header from the public includes in favor of using the
standard-provided std::variant.
The use of boost in public interfaces is often a dealbreaker for some
people. Given we use std::optional in the header already, we can
transition over to std::variant from boost::variant.
With this removal, this makes all of our dependencies internal to the
library itself.
2019-05-03 12:43:57 -04:00
Lioncash
c93451823f
A32: Handle different variants of PLD
2019-05-02 20:48:15 -04:00
Lioncash
63c22e9fcb
A32: Allow hooking of hint instructions in ARM mode.
...
Mirrors the hooking functionality from the AArch64 frontend to make the
behavior of both consistent.
2019-05-01 22:15:49 -04:00
Lioncash
82be728033
backend/x64/a32_interface: Mark Context move constructor and move assignment as noexcept
...
Provides a more "correct" move constructor/assignment operator, since
these relevant functions shouldn't throw exceptions.
Has the benefit of playing nicely with std::move_if_noexcept and other
noexcept library facilities.
2019-02-27 10:47:47 -05:00
V.Kalyuzhny
05a2dbfce0
Switch boost::optional to std::optional
2018-10-24 15:02:39 +00:00
Lioncash
fdde4ca363
A64: Implement BRK
...
Currently, we can just implement this as part of the exception
interface, similar to how it's done for the A32 interface with BKPT.
2018-09-19 07:09:27 +01:00
MerryMage
959446573f
A64: Implement FastDispatchHint
2018-09-07 22:07:44 +01:00
MerryMage
2be95f2b3b
A32: Implement FastDispatchHint
2018-09-07 22:07:44 +01:00
MerryMage
42c0589881
A32: Add define_unpredictable_behaviour option
2018-08-26 00:48:27 +01:00
MerryMage
0b69381ff4
A64/translate: Allow for unpredictable behaviour to be defined
2018-08-16 09:59:06 +01:00
MerryMage
6d236d459f
system: Implement MRS CNTFRQ_EL0
2018-08-16 09:58:34 +01:00
MerryMage
a6432b7e5b
A64: Add ClearExclusiveState method
2018-07-04 00:05:14 +01:00
MerryMage
f915f0860c
Implement global exclusive monitor
2018-06-05 12:27:37 +01:00
Lioncash
b00f6d1044
Correct typo in DataCacheOperation enum
...
Fixes a typo for the InvalidateByVAToPoC enum entry. Given yuzu is the
only known user of 64-bit mode and it doesn't use this value, we can get
away with changing this.
2018-05-14 15:39:08 +01:00
MerryMage
b2d781da3a
system: Raise exception for YIELD, WFE, WFI, SEV, SEVL
2018-02-20 20:31:56 +00:00
MerryMage
747968416f
A64: Implement system register TPIDR_EL0
2018-02-20 17:56:20 +00:00
MerryMage
0fd75fd9cb
A64: Implement system registers FPCR and FPSR
2018-02-20 17:38:29 +00:00
MerryMage
31e370cdf4
A64: Implement system register CNTPCT_EL0
2018-02-20 16:56:05 +00:00
MerryMage
9a88fd3340
A64: Implement system register CTR_EL0
2018-02-20 16:44:13 +00:00
MerryMage
9605f28792
a64/config: Allow NaN emulation accuracy to be set
2018-02-18 13:18:22 +00:00
MerryMage
49f1de3188
Direct Page Table Access: Handle address spaces less than the full 64-bit in size
2018-02-12 21:26:23 +00:00
MerryMage
406725e533
Implement direct page table access
2018-02-12 20:51:03 +00:00
MerryMage
7a161ed35c
A64: Partially implement MRS
2018-02-12 00:06:44 +00:00
MerryMage
1ba2642742
Implement DC instructions
2018-02-11 23:12:28 +00:00
MerryMage
607b9c8c62
A64: Add Disassemble method
2018-01-28 18:03:57 +00:00
MerryMage
b96014b3b2
A32: Implement BKPT
2018-01-28 12:59:52 +00:00
MerryMage
3f6889f700
A32: Change UserCallbacks to be similar to A64's interface
2018-01-27 22:45:48 +00:00
MerryMage
d6589fe3ee
IR: Add IR instructions A64Memory{Read,Write}128
...
This implementation only works on macOS and Linux.
2018-01-24 16:18:58 +00:00
MerryMage
ed63cc7ae9
interface: Move Vector typedef to config.h
2018-01-24 16:18:58 +00:00
MerryMage
edadeeabda
A64 inferface: Use two argument static_assert
...
Don't require C++17 in the interface to the library
2018-01-13 18:06:06 +00:00
MerryMage
9ab130490b
A64: Add ExceptionRaised IR instruction
...
The purpose of this instruction is to raise exceptions when certain decode-time
issues happen, instead of asserting at translate time. This allows us to
use the translator for code analysis without worrying about unnecessary asserts,
but also provides flexibility for the library user to perform custom behaviour
when one of these states are raised.
2018-01-13 18:06:06 +00:00
MerryMage
6633a19d65
A64: Add batch register retrieval to interface
2018-01-09 18:57:06 +00:00
MerryMage
08c25c9ae7
A64: PSTATE access and tests
2018-01-09 18:57:06 +00:00
MerryMage
ef6fd92fed
A64: Backend framework
2018-01-09 18:57:06 +00:00
MerryMage
be094ff150
Final A32 refactor
2018-01-09 18:20:57 +00:00
MerryMage
3e569047a5
Label A32 specific code appropriately
2018-01-09 18:20:57 +00:00