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
MerryMage
976a098bf6
jit_state: Split off CPSR.NZCV
2017-12-12 14:24:07 +00:00
MerryMage
cfdc8d882f
jit_state: Split off CPSR.Q
2017-12-12 14:23:34 +00:00
MerryMage
2e6eda226c
jit_state: Split off CPSR.{E,T}
...
This allows us to improve code-emission for PopRSBHint. We also improve
code emission other terminals at the same time.
2017-12-12 14:23:34 +00:00
MerryMage
809ca5fcc2
jit_state: Split off CPSR.GE
2017-12-12 14:23:34 +00:00
MerryMage
e1daadff81
jit_state: Hide cpsr implementation
2017-12-12 14:23:34 +00:00
MerryMage
5b23e5b52e
emit_x64: Make RSB a stack
2017-12-12 14:23:32 +00:00
MerryMage
2577803203
emit_x64: Arguments to MostSignificantBit and IsZero are 32-bit
2017-12-09 16:26:11 +00:00
MerryMage
199e79cead
block_of_code: Remove vzeroupper
2017-12-09 16:26:03 +00:00
MerryMage
a2bd9a0e12
emit_x64: Reduce mxscr operations in EmitGetFpscr and EmitSetFpscr
2017-12-09 16:25:58 +00:00
MerryMage
96ad17ffc2
CMakeLists: Fixup boost
...
* boost is part of the public interface.
* Consider boost a system library so warnings from boost do not cause a build failure.
* If the parent project defines boost, use that.
2017-12-08 15:15:52 +00:00