Commit graph

1464 commits

Author SHA1 Message Date
Mat M
8c4df46580 FPSCR: Make value constructor explicit (#13)
Maintains consistency between the PSR helper.
2016-09-03 12:48:31 +01:00
Mat M
3e03524658 assert: Use attribute specifier syntax with non MSVC compilers (#12) 2016-09-03 12:48:07 +01:00
MerryMage
cc3e7e71aa bit_util: std::bitset-based BitCount implementation
Suggestion by @lioncash.
2016-09-02 22:00:48 +01:00
Mat M
5aa4f753b6 load_store: Add checks for unpredictability to other singular store instructions (#11) 2016-09-02 21:10:28 +01:00
MerryMage
e8764c129f bit_util: Implement BitCount portably 2016-09-02 19:05:49 +01:00
Mat M
6ec651498d arm: Add PSR helper type (#3) 2016-09-02 17:34:33 +01:00
Mat M
00d0f4d5ff load_store: Add correctness checks for STRD variants (#7)
STRD doesn't allow the use of the PC in either Rt or Rt2
2016-09-02 17:32:02 +01:00
Mat M
d16badbc04 get_set_elimination_pass: Replace decltype with direct type retrieval (#9) 2016-09-02 17:30:21 +01:00
Mat M
1e781d911a reg_alloc: const correctness (#8) 2016-09-02 17:30:01 +01:00
MerryMage
ba04be5071 travis: Build on OS X 2016-09-02 17:08:09 +01:00
MerryMage
b3743e9453 Revert "arm_types: Don't use std::hash<u64>() for LocationDescriptorHash"
This reverts commit 519c714dbc.
2016-09-02 14:33:56 +01:00
MerryMage
519c714dbc arm_types: Don't use std::hash<u64>() for LocationDescriptorHash
Apple Clang (clang-600.0.54 on x86_64-apple-darwin13.4.0) complains with:

implicit instantiation of undefined template 'std::__1::hash<unsigned long long>'
2016-09-02 12:45:09 +01:00
MerryMage
320db36219 CMakeLists: Add DYNARMIC_TESTS option so one can turn off testing 2016-09-02 12:29:19 +01:00
MerryMage
f1c988aa8d CMakeLists: Lower cmake version requirement from 3.4.1 to 3.2 2016-09-02 12:26:47 +01:00
MerryMage
e83a2bacad Added Travis CI script 2016-09-02 12:22:27 +01:00
Mat M
a465b2ddbc ir_emitter: Fix typo. ClearExlcusive -> ClearExclusive (#5) 2016-09-02 12:17:22 +01:00
Mat M
ea157dfd52 translate_arm: const-correctness (#6) 2016-09-02 12:17:02 +01:00
MerryMage
711b3e29d3 interface: Allow ClearCache to be called at any time 2016-09-02 10:59:33 +01:00
MerryMage
78f584c50a Merge branch 'master' of MerryMageGithub:MerryMage/dynarmic 2016-09-02 10:57:52 +01:00
bunnei
728b4ca0d4 tests: Fix compile errors. (#4) 2016-09-02 08:51:03 +01:00
MerryMage
27acd8e187 Update documentation (2016-09-01) 2016-09-01 20:24:41 +01:00
Mat M
fb6d838bd9 dynarmic: Remove poison_memory ClearCache parameter (#1)
Unused since the switch to Xbyak
2016-09-01 09:47:09 +01:00
Mat M
7e3c981974 translate: Forward declare LocationDescriptor (#2) 2016-09-01 09:46:35 +01:00
MerryMage
4321e829d1 callbacks: Add user_arg argument to InterpreterFallback 2016-09-01 02:00:08 +01:00
MerryMage
3b5c43b427 Optimization: Read page-table directly for memory access 2016-09-01 00:58:02 +01:00
MerryMage
57169ec093 abi: Implement ABI_PushCallerSaveRegistersAndAdjustStack and ABI_PopCallerSaveRegistersAndAdjustStack 2016-09-01 00:57:22 +01:00
MerryMage
702e181b35 backend_x64/abi: Reversing XMM list leads to incorrect ordering 2016-08-31 23:06:49 +01:00
MerryMage
b10c438e8e jitstate: Remove code argument from ResetRSB 2016-08-31 21:57:33 +01:00
Lioncash
ea6a4e82b5 block_of_code: Make CallFunction accept function pointers only 2016-08-31 21:51:44 +01:00
MerryMage
249a2be786 Add LICENSE.txt 2016-08-31 21:50:05 +01:00
Lioncash
37d64f0c86 hostloc: Simplify static_assert 2016-08-28 22:10:23 +01:00
Lioncash
e1ed160768 test_arm_disassembler: More tests
Adds tests for
- Half-word multiply and multiply accumulate instructions
- Multiply and multiply accumulate instructions
- Synchronization primitive instructions
2016-08-28 22:06:52 +01:00
Lioncash
f2bf795876 intrusive_list: Interface changes
- Remove the root pointer from iterators.

This is unnecessary, since the only way to get a valid iterator is
either from a node itself (it transiently becomes an iterator via the
underlying interface), or through the iterator interface for the list.
This should also result in better code generation, as each increment or
decrement of an iterator is now branchless.

- Remove iterator_to

This is actually a pretty dangerous function, since it would immediately
create an iterator into the list using the given item, even if it's not
actually part of the list. This was only left around due to lack of
type handling around constructors.

- Add other overloads for erase() and remove()

Now handles iterators, pointers, and references.
2016-08-28 20:56:40 +01:00
Lioncash
d164184b1e test_arm_disassembler: Add more data processing instruction tests 2016-08-28 20:28:32 +01:00
MerryMage
7912a79fa5 emit_x64: align before emitting blocks 2016-08-27 11:04:43 +01:00
MerryMage
41c8dabf0b block_of_code: nop should probably default to a size of 1 2016-08-27 10:57:48 +01:00
MerryMage
dca3b2f079 Implement VMRS and VMSR 2016-08-26 22:47:54 +01:00
MerryMage
814348371e emit_x64: EmitX64::Emit: block.Location() returns by value 2016-08-26 19:43:29 +01:00
Lioncash
79545661b3 intrusive_list: De-duplicate some iterator code
These increment/decrement variants can just leverage the other
overloads.
2016-08-26 19:15:11 +01:00
MerryMage
4f6ea715b2 emit_x64: EmitX64::Emit doesn't need descriptor argument 2016-08-26 19:14:25 +01:00
Lioncash
32c24d2cb3 Use 'false' instead of '0' in asserts 2016-08-26 18:52:08 +01:00
MerryMage
ba31f43672 reg_alloc: UseDefOpArgXmm: default value for argument desired_location should be any_xmm, not any_gpr 2016-08-26 18:50:08 +01:00
MerryMage
7fedf04e79 reg_alloc: Deduplicate constants in RegAlloc::HostCall that were already defined by abi.h 2016-08-26 18:43:50 +01:00
MerryMage
59a8e14d1c reg_alloc: Correct OpArg::setBit for Reg 2016-08-26 15:23:38 +01:00
MerryMage
065c53ebfc emit_x64: Make ZeroIfNaN64 branchless 2016-08-26 15:23:08 +01:00
MerryMage
9901ed0f51 block_of_code: Optimize nops 2016-08-26 13:46:19 +01:00
Lioncash
0102951bdd Convert formatting over to fmtlib 2016-08-26 13:13:19 +01:00
Lioncash
ee4b30eee4 externals: Add fmt as a submodule 2016-08-26 13:13:19 +01:00
MerryMage
ed3a686d1d Implement public header files 2016-08-26 00:44:50 +01:00
MerryMage
656d4f7252 emit_x64: inhibit_emission is obsolete
Not used anymore; unused ever since intrusive lists were introduced.
2016-08-25 23:24:16 +01:00