Gregory Hainaut
8c3798e96b
core: pointers are 8B on 64 bytes
2016-01-16 14:34:00 +01:00
Gregory Hainaut
d623453451
build.sh: automatically configure wx-config on debian system
...
It is easier to alternate between 32/64 bits build
2016-01-16 14:33:49 +01:00
ramapcsx2
aafa333355
added the profiler to the visual studio solution. also added preliminary cop1 (fpu) tables, ready for implementation
2016-01-15 00:26:52 +01:00
Gregory Hainaut
9bcd9f0a73
cmake: onepad require gtk
2016-01-14 19:26:55 +01:00
Gregory Hainaut
a7a8c542f5
Merge pull request #1100 from PCSX2/recompiler-abi-wrapper
...
Recompiler abi wrapper
2016-01-14 19:21:27 +01:00
Jonathan Li
74ace74d50
gsdx-ogl: Group non-overlapped accurate blend sprite draws
...
Reduces the number of draw calls and barriers when drawing sprites.
2016-01-13 08:07:53 +00:00
Jonathan Li
f3b6829c74
gsdx-ogl: Restart collision detection algorithm for remaining sprites
...
It's useless on its own, but it prepares for the next commit.
2016-01-13 08:02:42 +00:00
Gregory Hainaut
c73d626757
build.sh: separate release/dev/dbg into separated directory
...
Avoid useless recompilation
2016-01-13 08:58:50 +01:00
Gregory Hainaut
4ac17428ac
Merge branch 'EmperorArthur-build_with_spaces'
2016-01-13 08:15:06 +01:00
Gregory Hainaut
c8da280a19
Merge branch 'build_with_spaces' of git://github.com/EmperorArthur/pcsx2 into EmperorArthur-build_with_spaces
...
Conflicts:
build.sh
2016-01-13 08:14:46 +01:00
Gregory Hainaut
d4b30620a7
pcsx2: avoid a segmentation fault due to previous hack
2016-01-12 19:35:23 +01:00
Gregory Hainaut
46a2f6ed24
interpreter: fix a subtle bug in a QFSRV
...
Math is correct but a shift of 64 bits is illegal in x86 because the cl register is masked
From the x86 spec:
The destination operand can be a register or a memory location. The count operand can be an immediate value or
the CL register. The count is masked to 5 bits (or 6 bits if in 64-bit mode and REX.W is used). The count range is
limited to 0 to 31 (or 63 if 64-bit mode and REX.W is used). A special opcode encoding is provided for a count of 1.
2016-01-12 19:29:10 +01:00
dokman
f06d055372
Now it's usable!
...
All done
ToDo:
Details of every setting
2016-01-12 10:44:36 +01:00
dokman
7fae220f18
Emulation Settings done
2016-01-12 10:26:10 +01:00
dokman
7b48923a2c
Updating with newest templates.
...
Emulation Settings
EE/IOP done
VUs done
GS done
GS Window done
Speedhacks done
Game fixes ToDo
Plugin/BIOS Selector done
2016-01-12 10:05:34 +01:00
refractionpcsx2
22de865582
Gamefix: Add Scarface - The World is Yours Gamefix, might help other games that do constant VU recompilation.
2016-01-11 23:32:33 +00:00
dokman
5f680141b4
Pushing base of translation with the newest template
2016-01-11 22:39:06 +01:00
Gregory Hainaut
3c528f0fdd
common define _32kb and _4kb
2016-01-11 18:00:25 +01:00
Gregory Hainaut
812a2e4850
recVtlb: Align dispatcher to 32B boundary
...
Better for cache coherency
2016-01-11 18:00:19 +01:00
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
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
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