MerryMage
4110494ac4
emit_x64: Use boost::icl::interval_map to speed up ranged invalidation
2017-12-06 20:55:29 +00:00
MerryMage
b6b061f244
emit_x64: Remove unnecessary ABI overhead in ReadMemory, WriteMemory
2017-12-03 19:46:26 +00:00
MerryMage
f343c56268
block_of_code: Move MXCSR switching out of dispatch loop
...
Also clarify MXCSR entry/exit terminology
2017-12-03 15:39:47 +00:00
MerryMage
651460f941
Merge branch 'timing'
...
We do this to improve timing information before entering a supervior
function. We also do this to try and stay within JITted code as much
as possible, by updating the cycles we have remaining.
2017-12-03 15:20:43 +00:00
MerryMage
024fa2461c
Add AddTicks and GetTicksRemaining callbacks
2017-12-03 15:18:08 +00:00
MerryMage
6131d0e053
BlockOfCode: Detect space remaining
...
We also clear the code cache when we run out of space.
This closes #111 .
2017-12-03 14:32:30 +00:00
MerryMage
bb87d2540c
Remove unnecessary use of boost::make_optional
...
Closes #119 .
2017-11-28 20:56:54 +00:00
MerryMage
355d65ec0d
CMakeLists: Default to a Release build
2017-11-28 20:08:45 +00:00
MerryMage
5f64bf9cfa
decoder_detail: Lambda captures may be unused if iota is an empty sequence
...
Closes #120
2017-11-28 19:48:32 +00:00
MerryMage
1d75664afd
Remove UNUSED macro
2017-11-28 19:44:33 +00:00
MerryMage
67c8e6e695
microinstruction: Remove DecrementRemainingUses
2017-11-27 20:10:23 +00:00
MerryMage
44e6ce33d4
reg_alloc: Add IsLastUse optimization for UseScratch
2017-11-27 19:51:54 +00:00
MerryMage
8e45418630
reg_alloc: Remove reliance on IR::Inst::DecrementRemainingUses
2017-11-27 19:51:54 +00:00
MerryMage
92ae4c783b
emit_x86: Standardize time of DefineValue call
2017-11-27 19:51:54 +00:00
MerryMage
6776f83a0c
basic_block: Add inst address and use count to DumpBlock
...
This additional output assists with debugging.
2017-11-27 19:51:54 +00:00
MerryMage
e53d00905f
Revert "reg_alloc: Improve performance of HostLocInfo ( #112 )"
...
This reverts commit ed4964e8924abfec65d429edcdbb89eb83a17016.
While this may arguably provide a JIT-time benefit, this cannot
possibly provide a runtime benefit.
2017-11-27 19:51:54 +00:00
Mat M
87c9b0affe
CMakeLists: Derive the source file listings from targets directly ( #118 )
...
This gets rid of the need to store to individual variables before creating
the target itself, cleaning up the variables in the surrounding scope a little bit.
2017-11-26 11:39:27 +00:00
MerryMage
993946fad8
emit_x64: Perform mask creation for packed instructions in SSE
2017-11-25 19:34:30 +00:00
MerryMage
6f4affd67f
emit_x64: Eliminate conversion of GE flags
...
* We do this so that we can simplify PackedSelect.
* We also try to minimise xmm-gpr/gpr-xmm transfers in PackedSelect.
2017-11-25 17:34:39 +00:00
MerryMage
c1dd87aeeb
fuzz_arm: Test SEL alongside packed instructions
2017-11-25 17:28:51 +00:00
MerryMage
311b6609aa
Implement IR instruction PackedSelect, reimplement SEL
2017-11-25 16:33:48 +00:00
MerryMage
81c5322f40
emit_x64: Remove SSSE3 implementation of PackedHalvingAddU8
...
It is much slower than the SSE2 implementation, so there's no point keeping it around.
2017-11-25 15:39:06 +00:00
MerryMage
f050825d4d
emit_x64: Improve code emission of FPCompare{32,64}
...
Replace if-chain with table lookup
2017-11-22 17:46:46 +00:00
MerryMage
c421a137c0
VCMP and VCMPE were the other way around
...
- This was due to a misunderstanding of what the E in VCMPE means.
- The E refers to an exception being raised when a QNaN is encountered.
- Added unit tests for VCMP{E}
2017-11-22 17:45:37 +00:00
MerryMage
3e4b02dd40
skyeye: Correct assumption that VFP_REG_ZERO will always be zero
2017-11-22 17:32:05 +00:00
MerryMage
dfbd3912a4
emit_x64: pmaxuw and pminuw require SSE 4.1
...
This commit is intended to close citra-emu/citra#3137 .
pmaxuw and pminuw were used to perform unsigned comparisons; we emulate
these using a signed comparison by offsetting the inputs by 0x8000 for
CPUs that do not support SSE 4.1.
2017-11-19 23:14:56 +00:00
MerryMage
20b1ac49b1
Merge branch 'subtree'
...
Remove submodules and use subtrees instead.
The advantage of subtrees is that they would not decay due to link rot
like submodules might.
2017-11-17 11:43:25 +00:00
MerryMage
cc53307857
externals: Add xbyak subtree
...
Merge commit 'dc792fdb55013abf9ab3913608fe1a7c1c3fe5f3' as 'externals/xbyak'
2017-11-15 20:53:46 +00:00
MerryMage
dc792fdb55
Squashed 'externals/xbyak/' content from commit d512551e
...
git-subtree-dir: externals/xbyak
git-subtree-split: d512551e914737300ba35f3c049d1b40effbe76d
2017-11-15 20:53:40 +00:00
MerryMage
4b31cb4968
externals: Removed xbyak submodule
2017-11-15 20:51:52 +00:00
MerryMage
f1fe85702d
externals: Add fmt subtree
...
Merge commit '15a8975273ff2ef472939aab4a39a6c4bdc1898d' as 'externals/fmt'
2017-11-15 20:50:35 +00:00
MerryMage
15a8975273
Squashed 'externals/fmt/' content from commit 3983438
...
git-subtree-dir: externals/fmt
git-subtree-split: 398343897f98b88ade80bbebdcbe82a36c65a980
2017-11-15 20:49:14 +00:00
MerryMage
417dbe1248
externals: Removed fmt submodule
2017-11-15 20:47:41 +00:00
Mat M
185f233bf8
Common: Delete Pool's copy constructor and copy/move assignment operators ( #117 )
...
The language defines a copy constructor as:
TypeName(const TypeName&)
so this was just deleting a constructor variant that would catch most cases of attempted copies.
2017-11-12 08:52:34 +00:00
Mat M
c53e0a8768
emit_x64: Amend doxygen parameters for InvalidateCacheRange() ( #116 )
2017-11-12 08:08:23 +00:00
Mat M
c03aee63e1
externals: Update catch to 2.0.1 ( #115 )
...
Keeps the unit testing library up to date.
2017-11-11 05:55:07 +00:00
MerryMage
d3fb603287
block_of_code: Add vzeroupper instructions where AVX-SSE transitions may occur
2017-11-02 20:08:26 +00:00
MerryMage
7b232ea845
block_of_code: BlockOfCode should provide cpu info
2017-11-02 20:06:36 +00:00
yesfish
ed4964e892
reg_alloc: Improve performance of HostLocInfo ( #112 )
...
This commit changes the type of HostLocInfo::values from std::vector<Inst*> to std::forward_list<Inst*>.
2017-10-19 02:41:49 +01:00
MerryMage
148c01e08f
interface_x64: Remove is_executing assert from HaltExecution
...
In multithreaded code this can be triggered due to a race.
2017-10-14 23:35:01 +01:00
MerryMage
f6cf265bc5
block_of_code: BlockOfCode::ABI_* should be const
2017-09-29 01:35:24 +01:00
MerryMage
29471be317
Standardize location of storage-class specifiers: Place at beginning of declarations
...
Justification: C99 specifies that doing otherwise is an obsolescent feature.
2017-09-29 01:23:45 +01:00
MerryMage
b992e5f8ec
Ranged cache invalidation
...
* Fix clearing code block on a partial invalidation
* Remove unnecessary use of boost::variant
* Code cleanup
2017-09-11 00:11:05 +01:00
Lioncash
a362bffdd4
externals: Update catch to 1.10.0
...
Updates from 1.9.4.
2017-08-28 09:52:59 +01:00
Lioncash
80477b5a67
externals: update fmt to 4.0
2017-08-27 21:43:21 +01:00
MerryMage
40d0aa505c
externals: Update Xbyak to v5.52
...
Alignment bug fixed
2017-08-18 13:47:22 +01:00
MerryMage
568b52d4ba
externals: Update Xbyak to v5.51
...
Xbyak now supports multi-byte nops
2017-08-17 21:34:54 +01:00
MerryMage
1613846ab0
reg_alloc: Handle XMM registers in LoadImmediate
2017-08-16 23:11:05 +01:00
MerryMage
993e142c6b
disassembler: Fix RegList
2017-08-05 01:57:29 +01:00
MerryMage
6197bde0fc
disassembler_arm: Fix disassembly of LDRH (reg)
2017-07-30 18:45:55 +01:00