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 |
|
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 |
|