Gregory Hainaut
e3d5eb5a4e
core: convert xCALL to xFastCall
...
SuperVU wasn't converted (unlikely to be ported to 64 bits)
A couple of calls weren't converted because they require extra work
but there are not mandatory (debug/MTVU/...)
2016-01-11 09:21:45 +01:00
Gregory Hainaut
859d62d2a7
ee|iop: use xScopedStackFrame to handle dynarec frame
...
* Rework a bit MVU to support xScopedStackFrame. Potentially
stack frame can be optimized (save 5 instructions)
* I removed the recompiler stack check. Address sanitizer is more efficient anyway
2016-01-11 09:21:45 +01:00
Gregory Hainaut
6e66bea152
x86emitter: improve the various abi wrapper
...
V2:
* Add various option to handle the different frame
* Basic x86-64 port (untested so likely completely broken)
v3:
Create an templated xImpl_FastCall object
v4:
clang compilation fix
2016-01-11 09:21:32 +01:00
Gregory Hainaut
a6eb871b42
pcsx2: use a common general intrin include
...
Avoid issue with various compiler conversion
Fix build with GCC4.8
2016-01-11 09:13:52 +01:00
Derek "Turtle" Roe
a09b42e046
Revert title case
2016-01-10 19:55:30 -06:00
Derek "Turtle" Roe
c85713850d
Revert change
2016-01-10 19:53:43 -06:00
Derek "Turtle" Roe
3823b1a6fc
Update MTVU speedhack commit
2016-01-10 19:48:49 -06:00
Gregory Hainaut
52b4604d3b
iop: remove unused iPsxMem.cpp file
2016-01-10 18:41:18 +01:00
Akash
aade5278d8
PCRTC: Better handling of CRTC height saturation
2016-01-10 21:47:59 +05:30
Gregory Hainaut
afdf5cdfe2
x86emitter: remove old unused macro
...
Add some notes for a GCC "bug"
2016-01-10 16:49:50 +01:00
Gregory Hainaut
41d13dc2c6
vtlb: remove SetBaseAddr
...
Base address is given in the constructor
2016-01-10 14:31:49 +01:00
Gregory Hainaut
9bcd34349f
Merge branch 'recompiler-prof'
2016-01-10 14:15:42 +01:00
Gregory Hainaut
1c4b430984
profiler: plug recompiler with new perf infra
...
Only EE/IOP support by block profiling
v2: cast wxString with ToUTF8 (windows)
2016-01-10 13:43:08 +01:00
Gregory Hainaut
92d7639267
profiler: add functions to plug linux Perf Event on JIT
...
Basically it creates a /tmp/perf-`pid`.map file which will contains
a mapping of the x86 code with the EE/IOP/VU code
* You need to enable the profiler with a define
* You can split the profiling by block (inside a recomp buffer)
v2: add new file to VS xml files
v3: remove useless include
2016-01-10 13:42:59 +01:00
Jonathan Li
8977673fdf
ci: reduce AppVeyor workload
...
Don't compile with VS2013 if VS2015 compilation fails.
Build only SSE2 and AVX2 GSdx variants.
2016-01-10 12:11:49 +00:00
Derek "Turtle" Roe
25a4636d0a
Update some links and fix some more errors
2016-01-09 23:01:37 -06:00
Derek "Turtle" Roe
80589dfeb2
Update notes
2016-01-09 21:27:18 -06:00
Derek "Turtle" Roe
76ca2aab29
Fix some typos and fix screenshots not lining up correctly
2016-01-09 18:22:16 -06:00
Derek "Turtle" Roe
429005559d
More updates
2016-01-09 18:20:20 -06:00
Derek "Turtle" Roe
e193a48b75
Small updates
2016-01-09 18:09:45 -06:00
Derek "Turtle" Roe
09b975ab46
Add screenshots back in and update the requirements
2016-01-09 18:07:07 -06:00
Derek "Turtle" Roe
582a834b89
Fix some more grammatical errors and punctuation, and some small updates
2016-01-09 17:17:50 -06:00
Derek "Turtle" Roe
1ae9c0858a
Fix a punctuation error and remove title case
2016-01-09 17:12:02 -06:00
Derek "Turtle" Roe
5211c95b81
Fix some more things in the README and remove low-res screenshots
2016-01-09 17:10:36 -06:00
Gregory Hainaut
e75d3f759f
ee:profiler: add instructions counters
2016-01-09 23:29:03 +01:00
Gregory Hainaut
5b08bda5b8
ee:profiler: count EE memory access
2016-01-09 23:29:03 +01:00
Gregory Hainaut
0e1188565e
ee:profiler: count EE instruction execution
...
Based on microVU_Profiler.h
It remains to emit all the opcode to use it properly
2016-01-09 23:29:03 +01:00
Gregory Hainaut
50c7cb1717
x86emitter: implement some BMI instructions
...
Only a couple of one to do some memory profiling
2016-01-09 23:29:01 +01:00
Gregory Hainaut
9e13a7bdaa
x86emitter: add support for the VEX opcode
2016-01-09 22:59:31 +01:00
Gregory Hainaut
29b0b17f50
x86emitter: add BMI1 & BMI2 instruction detection
2016-01-09 22:59:31 +01:00
Gregory Hainaut
d57466608e
linux: pretty print dump
...
allow to replace 0xBADA55 address with nice name such as v0_b0
2016-01-09 22:59:31 +01:00
Gregory Hainaut
c80037bb2f
debug: add a new function to dump EE block
...
Give both EE and x86 code.
Don't rely on global variable. The dump still dump the content of the register.
Of course value will be wrong if you don't dump it at the start of the block.
It help to detect register/memory access
the cpu struct address is also printed to easily postprocess the x86 memory pointer
(see next commit)
2016-01-09 22:59:31 +01:00
Gregory Hainaut
dd097fe361
cmake: clang, please compile my code quietly
2016-01-09 22:57:43 +01:00
Gregory Hainaut
fd56195b2d
x86emitter: drop old register define
2016-01-09 21:28:10 +01:00
Gregory Hainaut
5c0c9a60e9
core: use ecx directly
2016-01-09 21:26:25 +01:00
Gregory Hainaut
834cc3f2c5
core|x86emitter: port basic jump instruction
2016-01-09 21:26:25 +01:00
Gregory Hainaut
b09295fc7c
core: use xRegister32 for _allocX86reg
2016-01-09 21:26:25 +01:00
Gregory Hainaut
4ddc4778e4
ee: use xRegister32 for 1st argument of _psxMoveGPRtoR
2016-01-09 21:26:25 +01:00
Gregory Hainaut
3570467838
core: inline LogicalOp* functions
2016-01-09 21:26:25 +01:00
Gregory Hainaut
9b7b9bc407
fix compilation issue due to bad renaming
...
:(
2016-01-09 21:26:25 +01:00
Gregory Hainaut
9eb73e1ef0
core: rely on register.GetId() instead of define
2016-01-09 21:15:46 +01:00
Gregory Hainaut
743e615224
core: overload _freeX86reg with xRegister32
2016-01-09 21:15:25 +01:00
Gregory Hainaut
6291910b02
ee: use xRegister32 for 1st argument of _eeMoveGPRtoR
2016-01-09 21:15:12 +01:00
Gregory Hainaut
8737db97e7
core: remove allocation error check
...
1/ Allocation can't fail anymore
2/ Avoid to convert it to new register syntax
2016-01-09 21:14:05 +01:00
Gregory Hainaut
60a9463e7a
x86emitter: remove unused legacy function
...
And mark the remaining one as deprecated
Clang only as it relies on C++14
2016-01-09 21:13:29 +01:00
Gregory Hainaut
fcdbae6806
core: massively sed old emitter syntax to the new one
...
It misses jump & FPU. Jump need to be handled manually.
Syntax isn't perfect yet because of various casts. But it will allow to have a
single emitter syntax and rely on type safety on the future.
Conflicts:
pcsx2/x86/iR3000Atables.cpp
pcsx2/x86/ix86-32/iR5900-32.cpp
2016-01-09 20:56:07 +01:00
Gregory Hainaut
bd1d3724c1
core: manually convert few functions to new emitter
...
Remaining part will be done by a sed scripts
2016-01-09 20:39:32 +01:00
Gregory Hainaut
a9a26b93f9
ee: directly call EMMS from dispatcher
...
Until we completely remove MMX from the recompiler
2016-01-09 19:57:28 +01:00
Gregory Hainaut
c121bccb03
pcsx2: delete old asm file
2016-01-09 18:45:34 +01:00
Gregory Hainaut
39b77c6fd3
cmake: remove unused asm file
...
Code was ported (inlined asm/recompiler)
2016-01-09 15:48:58 +01:00