676 Commits

Author SHA1 Message Date
MerryMage
ebaeceec37 fixup! imm: compiler bug: MSVC 19.12 2018-01-12 17:11:42 +00:00
MerryMage
0d65c187a3 tests/a64: Use format constants 2018-01-12 17:02:26 +00:00
MerryMage
3a0b7d59f0 imm: compiler bug: MSVC 19.12 with /permissive- flag doesn't support fold expressions 2018-01-12 17:01:21 +00:00
MerryMage
dd285abec5 A64/decoder: Split decoder data from header 2018-01-11 13:03:56 +00:00
MerryMage
30af089e49 ir_opt: Split off A32 specific passes 2018-01-11 13:03:56 +00:00
MerryMage
648212995c A64: Implement LDP, STP 2018-01-11 13:03:54 +00:00
MerryMage
192e7a73ea A64/location_descriptor: Fix -fpermissive warning on GCC 2018-01-10 18:56:12 +00:00
MerryMage
89bdade0a0 A64: Implement LDP, STP 2018-01-10 02:05:08 +00:00
MerryMage
16e50ca0db A32: Implement load stores (immediate) 2018-01-10 01:30:30 +00:00
MerryMage
a5caa7cd8d A64: Implement SVC 2018-01-09 21:30:13 +00:00
MerryMage
79091043f0 imm: bug: SignExtend wasn't working for T with bit size > 32 2018-01-09 21:22:17 +00:00
MerryMage
78ffd3da90 a64_emit_x64: Don't use far code for now 2018-01-09 21:21:50 +00:00
MerryMage
347a5c7171 EmitA64SetW: bug: should zero extend to entire 64-bit register 2018-01-09 21:21:15 +00:00
MerryMage
cc647ce869 EmitA64SetNZCV: bug: to_store is scratch 2018-01-09 21:20:55 +00:00
MerryMage
c029aef4da emit_x86: Fix nzcv for EmitSub 2018-01-09 18:57:07 +00:00
MerryMage
f19f014a42 A64: Implement SVC 2018-01-09 18:57:07 +00:00
MerryMage
1aa4afaa22 a64_emit_x64: Call interpreter 2018-01-09 18:57:07 +00:00
MerryMage
6633a19d65 A64: Add batch register retrieval to interface 2018-01-09 18:57:06 +00:00
MerryMage
305456b407 A64: Implement compare and branch 2018-01-09 18:57:06 +00:00
MerryMage
08c25c9ae7 A64: PSTATE access and tests 2018-01-09 18:57:06 +00:00
MerryMage
c4abd1fda1 A64: Implement branch (register) 2018-01-09 18:57:06 +00:00
MerryMage
5497fe9056 A64: Implement branch 2018-01-09 18:57:06 +00:00
MerryMage
f3e763a667 A64: Implement logical 2018-01-09 18:57:06 +00:00
MerryMage
f0c29feddb A64: Implement pcrel 2018-01-09 18:57:06 +00:00
MerryMage
8a8dcad250 A64: Implement addsub instructions 2018-01-09 18:57:06 +00:00
MerryMage
1431cedcaa A64: Implement ADD_shifted 2018-01-09 18:57:06 +00:00
MerryMage
ef6fd92fed A64: Backend framework 2018-01-09 18:57:06 +00:00
MerryMage
557fe60164 A64: Initial framework 2018-01-09 18:57:06 +00:00
MerryMage
cc0c084224 CMakeLists: CMAKE_CXX_STANDARD as no effect on MSVC until CMake 3.10
We add the /std:c++latest flag to DYNARMIC_CXX_FLAGS to fix this.
2018-01-09 18:41:22 +00:00
MerryMage
512dae0361 IR: Compile-time type-checking of IR 2018-01-09 18:20:57 +00:00
MerryMage
b88b7ecbbf IR/Value: Rename RegRef and ExtRegRef to A32Reg and A32ExtReg 2018-01-09 18:20:57 +00:00
MerryMage
dbbbf4c331 Make IR->A32 LocationDescriptor conversion explicit 2018-01-09 18:20:57 +00:00
MerryMage
be094ff150 Final A32 refactor 2018-01-09 18:20:57 +00:00
MerryMage
faf64f4a5f EmitX64: JitState type as template parameter 2018-01-09 18:20:57 +00:00
MerryMage
d95a01bcb3 Package up emit context 2018-01-09 18:20:57 +00:00
MerryMage
d67332e333 Rename JitState to A32JitState 2018-01-09 18:20:57 +00:00
MerryMage
053c58f48f backend_x64: Split A32 specific emission into separate class 2018-01-09 18:20:57 +00:00
MerryMage
42c83fadce IR: Split off A32 specific opcodes 2018-01-09 18:20:57 +00:00
MerryMage
f5402c8d82 A32: Split off A32 specific IREmitter 2018-01-09 18:20:57 +00:00
MerryMage
3e569047a5 Label A32 specific code appropriately 2018-01-09 18:20:57 +00:00
MerryMage
305fba50ba Bump requirements to C++17 2018-01-01 20:33:44 +00:00
Phanto-m
672069608f emit_x64: InvalidateCacheRanges: erase blocks after iterating through the map (#124) 2017-12-18 15:13:40 +00:00
MerryMage
ce9c265df0 EmitPackedHalvingSub{U,S}16: SSE2 implementation 2017-12-14 15:08:18 +00:00
MerryMage
13fa10e743 Merge branch 'misc'
These commits introduce context save and restore, and a small number of
optimizations that depend on their use for performance.
2017-12-12 22:07:39 +00:00
MerryMage
a7d2fac2d3 EmitPackedHalvingAddU8: Add SSE2 implementation 2017-12-12 16:11:22 +00:00
MerryMage
16ed4bd511 EmitPackedHalvingAdd{U,S}16: Add SSE2 implementation 2017-12-12 15:57:26 +00:00
MerryMage
afc47e1733 emit_x64: EmitSet{Register,ExtendedRegister32,ExtendedRegister64}: Store from current source 2017-12-12 15:28:37 +00:00
MerryMage
d1d4705364 Add re-entry prediction to avoid std::unordered_map lookups 2017-12-12 15:22:23 +00:00
MerryMage
dd07033dce emit_x64: Optimize code emitted by EmitGetCpsr 2017-12-12 14:25:22 +00:00
MerryMage
c823ecf524 interface: Allow saving and storing of contexts 2017-12-12 14:24:07 +00:00