Gregory Hainaut
1a9a65d4d0
common: use = default instead of trivial destructor
...
Strangely clang-tidy didn't report them.
Commit was done with a sed to it need careful review.
2017-05-13 10:38:35 +02:00
Gregory Hainaut
b951e24024
common: remove throw specifier on destructor
...
By default in C++11 destructors are noexcept.
Besides throw is deprecated
2017-05-13 10:38:35 +02:00
Gregory Hainaut
94b50b85e7
core: use = default instead of trivial copy constructor
2017-05-13 10:38:35 +02:00
Gregory Hainaut
9e101c9ef0
common: use = default instead of trivial constructor/destructor
...
reported by clang-tidy
Note: drop throw() specifier as it is the 'default' in C++11 for
destructor
2017-05-13 10:38:35 +02:00
Gregory Hainaut
b9e62be3c1
modernize: use std::make_unique instead of std::unique_ptr
...
I didn't update GSdx and cdvdGigaherz because we need to pull
common include files
2017-05-03 12:03:38 +02:00
Gregory Hainaut
756176118b
common: add make_unique for C++11
...
v2: fix windows compilation
v3: fix copyright date
2017-05-03 12:03:38 +02:00
Gregory Hainaut
a378e307b3
common: drop pthread TLS emulation
...
thread_local is supported by all C++11 compliant compiler
Keep a way to disable TLS for shared object to avoid issue of DTV
slot shortage.
2017-04-14 17:18:20 +02:00
KousukeItsagame
11aebe465f
common: Replace __threadlocal with C++11 thread_local
2017-04-13 19:59:00 +02:00
Gregory Hainaut
da1bb43618
cmake: Add various missing file in CMakeLists.txt
...
Add some windows code path. It would reduce the burden to port Cmake to windows.
(sill miss 3rdparty/some plugins/...)
2017-02-16 20:11:57 +01:00
Gregory Hainaut
23d081ab21
common: remove an old gcc workaround
2017-02-01 18:24:51 +01:00
Gregory Hainaut
6d7b1f9dbd
common: move ssappendf in DisR59000asm.cpp
...
Legacy function to print EE opcode. It doesn't worth an extra file.
2017-02-01 18:24:51 +01:00
Gregory Hainaut
965fccaff0
common: use C++11 version vssappendf
...
* use std::vector instead of VLA
* remove windows code (optimization is useless here)
2017-02-01 18:24:51 +01:00
Gregory Hainaut
bccc3ef253
Merge pull request #1770 from np511/gcc-cleanup
...
Cleanup GCC warnings - still needs some work
2017-01-30 15:28:33 +01:00
np511
de6216b37b
Remove warnings about ISO C++11 conformance
2017-01-29 09:06:10 -05:00
Gregory Hainaut
6f9feee759
common: init m_vtune_id
2017-01-22 16:45:49 +01:00
Gregory Hainaut
e3d1871f86
MTVU: small thread scheduling improvement
...
* Use yield to avoid a spin loop during WAIT
* Don't flush the full buffer when we miss space
2017-01-18 19:11:10 +01:00
Jason Brown
fce2814735
Added callbacks for OSD Log and Monitor. Added wrappers in PCSX2 main for callbacks. Added some basic info calls (e.g. Saving loading FPS)
2017-01-03 10:43:56 +01:00
Gregory Hainaut
632b4971de
common: remove memset duplicates
...
Use standard memset instead of memset_8
Move memzero/memset8 in a common OS file.
2016-12-16 20:45:22 +01:00
Jonathan Li
415090d249
common: Avoid wchar_t in pxTextWrapper
...
wchar_t is 16-bits on Windows, which can't actually properly fit all
Unicode characters.
Use the wx3.0.x wxTextWrapper approach of using iterators that increment
by actual characters to fix the issue, and also switch to using the
std::string style functions in wxString.
2016-12-10 22:30:27 +00:00
Akash
b86518ef24
CDVD: Convert CDVD_SourceType into enum class
...
* Add a template function for underlying type conversions of enumerations
2016-12-10 12:35:57 +00:00
Gregory Hainaut
031b6e6372
common: improve vtune merge support
...
Mapping the full buffer is killer on Vtune (either crash or requires a huge processing time).
Instead keep the same ID for code in the same buffers.
I think all buffers are correctly mapped now but I still miss the frame pointer
for VU code.
2016-12-09 09:28:19 +01:00
Gregory Hainaut
b9369e7c00
pcsx2: remove the reserve feature of recompiler memory
...
Cons:
* requires ~180MB of physical memory (virtual memory is the same so it
doesn't impact the 4GB limit)
From steam: 98.81% got at least 2GB of RAM. 83.62% got at least 4GB of RAM.
That being said, it might not really increase RAM requirements as OS could put the
new allocation in the swap.
Pro:
* code is much easier
* remove at least half of the signal listener
* last but not least, it is way easier for profiler/debugger
2016-12-09 09:28:19 +01:00
Gregory Hainaut
0453e5cad8
cmake: improve vtune integration
...
Year is included in the path so search in order 2018/2017/2016
Not ideal but at least all logic is inside the FindVtune module
2016-12-09 09:28:19 +01:00
Gregory Hainaut
f41bb8db5e
common: forget to format common properly
...
Moral of the story, don't rely on the commit hook when it isn't installed correctly ;)
2016-11-29 22:59:06 +01:00
Gregory Hainaut
310181b97f
common: remove a gcc 4.6 hack
...
Not supported anymore
2016-11-29 22:59:06 +01:00
Gregory Hainaut
c9db1c6c4b
vtune: plug PCSX2 core + add missing profiling (VU/VIF/TLB)
...
Doesn't fully work yet
* Unknown stack frame
* Outside any known module
Potential root cause:
* Nvidia driver
* VU code as ebp is required for emulation so likely no frame
2016-11-28 19:07:04 +01:00
Jonathan Li
008fea5d89
common|cdvdgigaherz: Fix API sign mismatch
...
The typedef and function declaration don't quite match.
2016-11-22 21:26:41 +01:00
Gregory Hainaut
30a5922a0b
pcsx2: reduce std padding to 1 for small screen
2016-11-19 21:52:08 +01:00
Gregory Hainaut
0e2ec9c2cb
pcsx2 gui: reduce the padding to 2 for low cost display
2016-11-19 11:27:20 +01:00
Gregory Hainaut
9c598fcd01
common: finally spot the text size bug
...
GetBestWrappedSize (hence the BestSize) computes the size of
the wrapped text based on box side minus padding.
So the width of the widget is already the good size for text wrapping
2016-11-19 11:21:07 +01:00
Gregory Hainaut
4ee942aba2
pcsx2 gui: use pxGetFixedFont helper instead of wxFont constructor
2016-11-19 11:19:24 +01:00
Clang Format
1fba5cb580
reformat main common directory
...
Disable some reformat around emitter registers declaration and a massive cases.
2016-11-12 16:52:49 +01:00
Gregory Hainaut
5596f69c0e
pcsx2 gui: use git desribe as version name
...
Shorter than date and give all the useful info
Require windows test
close #1043
2016-11-08 22:44:39 +01:00
Gregory Hainaut
b282909c9e
common: avoid silly compiler warning due to define redefinition
...
comma was updated in plugings (due to clang reformat)
2016-09-08 19:20:24 +02:00
Gregory Hainaut
1a8825b374
pcsx2|common|gsdx: use empty() instead of .size() ==/!= 0 check
...
Enhance readability reported by clang tidy
2016-08-21 17:20:13 +02:00
Jonathan Li
c9a1097579
console: Remove buffered and wxerror console writers
...
Both haven't been used for a long time, and don't seem to hold any
advantages over the default stdout console writer.
2016-08-17 22:07:42 +01:00
Gregory Hainaut
bf0e5dc5bd
Merge pull request #1516 from PCSX2/emitter-manual-void-cast
...
pcsx2: manually cast function pointer to void*
2016-08-17 18:56:55 +02:00
Gregory Hainaut
19ceea4f1e
Merge branch 'strict-aliasing'
2016-08-17 18:53:08 +02:00
Gregory Hainaut
cc68776069
pcsx2: manually cast function pointer to void*
...
Templace is nicer but give a hard time to compiler.
New version compile in both gcc&clang without hack
v2: add an uptr cast too for VS2013 sigh...
v3: use an ugly function pointer cast to please VS2013
2016-08-17 09:53:30 +02:00
Gregory Hainaut
44bbdbe49d
common: use free directly instead of an Alloc(0)
...
Easier to understand the intent. And avoid false positive in coverity
2016-08-15 15:51:22 +02:00
Gregory Hainaut
2700f06fe7
Merge branch 'pcsx2-verbose-thread-error'
2016-08-14 22:31:28 +02:00
Gregory Hainaut
9d8135cf1c
x86emitter: allow strict aliasing optimization
2016-08-14 21:01:40 +02:00
Gregory Hainaut
2cc98191f0
common: allow strict aliasing optimization
2016-08-14 21:01:40 +02:00
Gregory Hainaut
e8e66ec4b5
x86emitter: use memcpy to avoid aliasing issue
...
Code is only called once anyway.
2016-08-14 20:48:45 +02:00
Gregory Hainaut
5ad4cbace7
onepad|common: fix GCC warning type limit
2016-08-12 19:30:14 +02:00
Gregory Hainaut
078577c7c5
common: try to print a nice error message when pthread_create is bad
2016-08-12 10:05:14 +02:00
Jonathan Li
af60501fb6
windows: Remove unused solution files and property sheets
...
The solution files are unused and for ancient Visual Studio versions -
GSDumpGUI has its own solution file, and bin2cpp is included in the main
solution file.
The property sheets have either fallen out of use or were never used in
the first place.
2016-08-04 23:09:08 +01:00
Jonathan Li
ed47dca8a1
x86emitter:windows: Make cpu detection/affinity 64-bit compatible
...
Use DWORD_PTR since that works on both 32-bit and 64-bit builds. And
remove some empty unused functions.
Fixes a 64-bit compilation issue.
2016-07-24 19:05:18 +01:00
Jonathan Li
f04dfe43a8
utilities:windows: Restrict memcmp_mmx to 32-bits
...
Fixes a 64-bit compilation issue.
2016-07-23 10:52:09 +01:00
Jonathan Li
ac7e7a79c3
utilities:windows: Remove memset32 assembly
...
It's unused, and it doesn't compile in 64 bits.
2016-07-23 02:21:21 +01:00
Jonathan Li
768ed80ece
utilities:threading:windows: Use intrinsic pause
...
Fixes a 64-bit compile error.
2016-07-23 02:21:13 +01:00
Gregory Hainaut
5cf2688c0c
common: remove useless x86_intrin.h
...
Yeah one less licence in the project :)
2016-07-22 18:47:51 +02:00
Gregory Hainaut
7d35e15fea
Merge pull request #1444 from PCSX2/atomic-relax
...
Atomic relax
2016-07-22 18:36:02 +02:00
Jonathan Li
f8605dda61
common|pcsx2: Tidy/standardise VS project
...
Combine all the different configurations together so the project files
are more generic and maintainable.
Also standardise the layout so all the project files will be similar and
all have the same standard elements (even if empty).
Add 64-bit configurations.
2016-07-19 23:25:12 +01:00
Jonathan Li
7277074d9e
windows: Fix incremental linking property sheet
...
Don't use "-dbg" target suffix - both Devel and Debug builds use the
property sheet, so it's incorrect.
Also don't set optimise references to false - it's incompatible with
incremental linking and causes compile failures.
2016-07-19 23:25:12 +01:00
Lena
5a17b95901
x86_intrin.h: fix build using GCC ( #1468 )
...
__GNUG__ is not defined while compiling this file,
this causes the build to fail.
Replacing this with __GNUC__ fixes this.
2016-07-19 23:13:24 +01:00
Gregory Hainaut
6e306ee44f
common: move _xgetbv with cpuid intrin
...
Besides, code comes from Gabest and not reactOS
2016-07-17 10:25:00 +02:00
Gregory Hainaut
e872552fdc
spu2x|common: s/jASSUME/pxAssume/ allow to remove code and __debugbreak intrinsic
2016-07-17 10:24:29 +02:00
Gregory Hainaut
c56ca4a0fa
common: include cpuid.h on unix
...
I tested both clang and gcc.
2016-07-17 10:24:29 +02:00
Gregory Hainaut
10ea05bc6f
common: remove old atomic wrapper
...
Use cross-platform std::atomic instead
2016-07-14 18:29:41 +02:00
Gregory Hainaut
812e41d578
common: relax atomic of m_IsBeingDeleted
...
Avoid the memory fence in the constructor
2016-07-14 18:29:41 +02:00
Gregory Hainaut
ca46921796
MTVU: use acquire/release semantics for atomic operation
...
* Avoid the generation of memory barrier (mfence)
* Based on the fact that it used to work on previous code without any
barrier
v2:
* keep basic code in reset path
* use relaxed access for isBusy. The variable doesn't carry load/store
dependency but is instead an hint to optimize semaphore post
2016-07-14 18:29:40 +02:00
Akash
72661e7c16
PCSX2-Core: Clean up some warnings on MSVC
...
x86emitter : Convert variable type from u8 to bool.
recVTLB: Cast "sign" to bool to prevent a warning.
R5900OpcodeImpl: Cast all the values in array to u64 instead of s64.
2016-06-30 16:49:18 +05:30
Jonathan Li
79d019b5bb
utilities: Don't use TLS buffers in FastFormatString classes ( #1430 )
...
The TLS buffers used by the FastFormatUnicode and FastFormatAscii
classes seem to be responsible for PCSX2 not terminating properly on
Windows under certain conditions (using MTVU before commit
1111e03901
, using CDVDgigaherz without a
disc, possibly other conditions).
When PCSX2 shut downs and the FastFormatBuffers are being cleaned up,
the call to pthread_key_delete() would end up calling
WaitForSingleObject(e, INFINITE) and waiting indefinitely for an event
to trigger. It never does get triggered (for reasons unknown) and
therefore PCSX2 doesn't terminate properly.
Remove the usage of TLS buffers in the FastFormatString classes - it
fixes the termination issue on Windows and doesn't seem to have much
effect on performance.
2016-06-29 13:13:51 +01:00
Jonathan Li
3904c67e6e
utilities: Use Bind instead of Connect
2016-06-17 00:03:58 +01:00
Jonathan Li
c10728319b
utilities: Use Bind compatible event declarations/definitions
2016-06-16 23:49:34 +01:00
FlatOutPS2
f1ba9c9d6a
PCSX2-WX: MainFrame keyboard navigation improvement ( #1388 )
...
Adding shortcuts to all the menu options, that only some of the options
in the Config tab already had.
Also update translations so menus are still localised (well, mostly).
2016-06-08 21:48:16 +01:00
Jonathan Li
7c205d7a1e
windows: Don't use __declspec(dllexport) for plugin exports
...
Using __declspec(dllexport) causes duplicate export warnings to be
generated when compiling 64-bit builds. Name mangling also occurs on
functions that are exported this way, so it doesn't actually work with
the plugin system, which uses unmangled names.
The module definition file exports the functions without name mangling
and is sufficient on its own.
2016-06-05 22:57:42 +01:00
Jonathan Li
b20433c0be
windows: Remove user.props references from all projects
...
find . -name *.vcxproj -exec sed -i -e '/user.props/d' {} \;
Microsoft recommends against using .user files. From
https://msdn.microsoft.com/en-us/library/669zx6zc.aspx :
"The best practice is to delete the reference to them in Property
Manager to ensure that your projects operate independently of any
per-user, per-computer settings. This is important to ensure correct
behaviour in a SCC (source code control) environment."
If you cannot compile SPU2-X after this commit (since that still relies
on the old DirectX SDK), you'll need to fix your build environment.
2016-05-29 12:21:52 +01:00
Jonathan Li
36cd1ae3cc
windows: Remove parameter from prebuild command
...
It's unused. Also convert to using SolutionDir instead of Svnwhatever.
2016-05-28 23:25:08 +01:00
Jonathan Li
5f6658ae9a
common:freebsd: Kill some warnings
2016-05-20 22:32:41 +01:00
Jonathan Li
7aa6564dcc
common:freebsd: Fix compilation
2016-05-20 22:32:41 +01:00
Jonathan Li
280ca1dd85
utilities: Add FreeBSD thread name implementation
2016-05-20 22:32:41 +01:00
Jonathan Li
f78d1a4018
utilities: Remove wx2.8 code and uses of wxMAJOR_VERSION
2016-04-29 00:09:47 +01:00
adamantike
a0eca54f96
Trivial fix on wxFont style/weight usage
2016-04-24 13:25:56 -03:00
Jonathan Li
5035c8bd48
utilities: always include wx/crt.h on Linux
...
The header is necessary if the wx3.0 package isn't compiled with
wx2.8 backwards compatibility.
2016-04-23 13:57:47 +01:00
Jonathan Li
dda44519c1
pcsx2|utilities: Use non-deprecated wxFont stuff
2016-04-23 13:57:42 +01:00
Gregory Hainaut
c44f605b5e
x86emitter: gcc 6 compilation fix
...
Fix #1297
2016-04-18 19:27:06 +02:00
Jonathan Li
0ab7b6340d
Merge pull request #1275 from AdmiralCurtiss/memcard-plugin-switch-filter-reset
...
Move folder memcard filter management into the actual folder memcard class to fix #1179 and similar.
2016-04-06 23:59:36 +01:00
Gregory Hainaut
8ee9295f39
x86emitter: increase size of union capabilities
2016-04-04 21:04:41 +02:00
Gregory Hainaut
ee08a6fc53
Merge pull request #1270 from PCSX2/monolithic-build
...
Monolithic build
2016-04-03 11:20:07 +02:00
Admiral H. Curtiss
97a68becb9
Handle filter management in the folder memcard class rather than outside.
...
This prevents desync between what is assumed to be the active filter and
what is actually the active filter, fixing errors like #1179 where the
memory cards are closed and reopened for whatever reason.
2016-04-02 15:22:11 +02:00
Gregory Hainaut
791a0ce702
common: initialize scalar field of pxThread
...
CID 147022
v2: initialize all member in initializer list
2016-03-30 19:55:45 +02:00
Gregory Hainaut
37de84d55f
x86emitter: initialize scalar field
...
CID:147038
2016-03-30 19:50:41 +02:00
Gregory Hainaut
f010f9458b
plugin: add define to select builtin plugin
2016-03-30 09:54:34 +02:00
Gregory Hainaut
de24ce0a8f
x86emitter: miss comas here
2016-03-28 18:10:39 +02:00
Jonathan Li
e760a9566a
windows: Move EmbeddedImage.h to utilities project file
2016-03-16 20:41:21 +00:00
Jonathan Li
a487aaf952
Merge pull request #1232 from turtleli/nonxp-toolkit
...
windows: Switch to Non-XP compatible toolkits
2016-03-16 20:34:27 +00:00
Gregory Hainaut
0ef8ddb2a2
Merge pull request #924 from kust2708/onepad-gui
...
Onepad GUI for Linux - New wxWidget interface
2016-03-15 20:23:44 +01:00
Jonathan Li
b516c1001a
windows: Set _WIN32_WINNT to 0x0600 (Windows Vista)
2016-03-13 13:41:16 +00:00
Jonathan Li
9ed9b2d8cd
windows: Switch to DefaultPlatformToolset aka non-XP toolsets
...
Basically I ran
find . -name "*.vcxproj" -exec sed -i -e 's/_xp//' {} \;
This will likely break XP, but it paves the way on Windows for a PCSX2
that does not require the DirectX redistributables to be installed for
Windows 8, 8.1 and 10 users. Windows Vista and 7 users will still require
the DirectX redistributable files for XInput and XAudio, though PCSX2
should still be capable of running if a user does not actually use either
of them.
2016-03-13 12:04:28 +00:00
Gregory Hainaut
3d5c1b4ef8
Core|Common: restore old interlocked add/sub behavior
...
interlocked* returns the new value whereas fetch_add/sub returns the old value.
2016-02-29 21:43:56 +01:00
Gregory Hainaut
e57a75ac55
Merge pull request #1202 from PCSX2/atomic-v2
...
Atomic v2
2016-02-28 22:08:29 +01:00
Gregory Hainaut
610bf8a277
Common: delete most of the deprecated atomic API
2016-02-28 15:29:31 +01:00
Gregory Hainaut
5ca92ecd67
Common: port code to std::atomic
2016-02-28 15:29:31 +01:00
Gregory Hainaut
ca8955daf3
MTVU: port ScopedLockBool to std::atomic
2016-02-28 15:29:31 +01:00
Gregory Hainaut
60fe26ff2f
common:threading: Port NonblockingMutex to std::atomic_flag
2016-02-28 15:29:00 +01:00
Gregory Hainaut
89fad4d3ad
common: port ScopedPtrMT to std::atomic
...
v2: s/NULL/nullptr/
v3: tentative fix for MSVC
// ScopedPtrMT.h(91, 0): error C2593: 'operator ==' is ambiguous
2016-02-28 15:29:00 +01:00
Jonathan Li
2d4e2fb8cb
windows: spu2-x does not use the emitter
...
So let's not specify it as a build dependency.
Also remove some unnecessary manual library linkage and remove the
wsWidgets GUI property sheet, which does nothing useful.
2016-02-28 11:08:08 +00:00
Jonathan Li
bfeb3e801a
gsnull: Remove GSsetWindowInfo
...
PCSX2 doesn't actually use it.
GSnull also seems a bit behind the current GS plugin API - perhaps it
should be removed.
2016-02-28 02:45:59 +00:00
Gregory Hainaut
a66c911fed
cmake: factorize debug/dev define
2016-02-21 16:17:10 +01:00
Pierre "Piorrro" GRASSER
30d1c0e0b5
Typo correction #2
...
I forgot to edit the other strings, last time.
2016-02-18 13:49:56 +01:00
kust2708
823a37aed7
OnePad : New GUI based on gwWidget
...
Buttons done, configuration initialization done.
Still need to add Gamepad and Joysticks configuration frames.
Require png file for the moment (the embedded picture will be fixed after).
New Onepad GUI based on wxWidget (Main frame almost finish)
Background picture is now embedded
Button binding works
Loading and saving works
Need to add feedback and gamepad, joysticks configuration frame
Modification of the onepad CMakeList.txt
Automatic generation of images headers using perl script
Modification of the test feedback function
2016-02-14 17:26:31 +01:00
Pierre "Piorrro" GRASSER
d7b40433db
Typo correction
2016-02-14 09:30:49 +01:00
Jonathan Li
e92636ab1a
utilities: Remove ScopedPtr and pxObjPtr implementation
...
Both are now unused.
2016-02-08 22:31:45 +00:00
Jonathan Li
a74677acf7
utilities: Convert ScopedPtr to unique_ptr
2016-02-08 22:31:45 +00:00
Jonathan Li
92bb849e7c
Use unique_ptr instead of ScopedPtr for exceptions
2016-02-08 22:31:45 +00:00
Jonathan Li
115b14bc94
cdvd: Replace ScopedPtr with unique_ptr
2016-02-08 22:31:45 +00:00
Gregory Hainaut
5611333c29
PCSX2: remove reporting of mmx/3dnow
2016-02-08 09:16:52 +01:00
Gregory Hainaut
5140a2e107
x86emitter: remove MMX support
2016-02-08 09:13:24 +01:00
Gregory Hainaut
d59e4ca4d1
intrinsic: add rotate support for clang....
2016-02-01 18:46:10 +01:00
Jonathan Li
04a8efd8c3
pcsx2|common: Use _WIN32 for Windows preprocessor macro
...
It's predefined, unlike WIN32 and _WINDOWS (and other variants), which
are defined in the property sheets.
2016-01-27 22:41:45 +00:00
Jonathan Li
50c7775e47
utilities: Use C99+ size definitions on Windows
...
Also remove a LONG definition for Linux - it's unused.
2016-01-27 22:41:45 +00:00
Gregory Hainaut
53e24a8e30
x86emitter: fix an useless gcc warning on int/uint cast
2016-01-27 10:27:34 +01:00
Gregory Hainaut
6dd83d3cba
x86emitter: there are 16 int registers for all sizes.
2016-01-21 22:34:13 +01:00
Gregory Hainaut
9e773ff980
Merge pull request #1123 from PCSX2/emitter-Trex
...
Emitter trex
2016-01-21 22:32:37 +01:00
Gregory Hainaut
a2a23579bd
Merge pull request #1122 from PCSX2/emitter-64b
...
Emitter 64b
2016-01-21 22:31:01 +01:00
Gregory Hainaut
1a700145ec
x86emitter: remove unused FPU opcode
...
Future code would rely on SSE anyway
2016-01-20 10:23:23 +01:00
Jonathan Li
3c7e45ccc8
utilities: Remove ScopedArray implementation
...
It's now unused.
2016-01-17 22:54:22 +00:00
Jonathan Li
e8596f0430
pcsx2: Rearrange Console colour enum order
...
Preparation for next commit - The default isn't bold, so it's slightly
neater to have it at the start.
2016-01-17 22:06:32 +00:00
Gregory Hainaut
41a80fce20
x86emitter: finally support 64 bits instructions
...
Note: a couple of instructions don't support REX prefix. Some
exception ought to be implemented later
2016-01-17 17:02:38 +01:00
Gregory Hainaut
40438cf2bd
x86emitter: port couple of simd instrusction to xOpWrite0F template
2016-01-17 16:59:44 +01:00
Gregory Hainaut
9ac22ee9aa
x86emitter: rewrite remaining function to use generic template
2016-01-17 16:42:39 +01:00
Gregory Hainaut
fc5e293ef6
x86emitter: rewrite move to use generic template
2016-01-17 13:44:29 +01:00
Gregory Hainaut
25cd35147e
x86emitter: rewrite groups to use generic template
2016-01-17 12:34:44 +01:00
Gregory Hainaut
a9864a5619
x86emitter: create xOpAccWrite handy template for special accumulator opcode
2016-01-17 12:34:28 +01:00
Gregory Hainaut
d2436fa86d
x86emitter: remove unused function
2016-01-17 12:07:41 +01:00
Gregory Hainaut
16057d8b04
x86emitter: inc/dec are illegal on x86_64
2016-01-17 12:07:03 +01:00
Gregory Hainaut
f2ecfc99ad
x86emitter: align EmitRex interface on EmitSibMagic
2016-01-17 12:06:08 +01:00
Gregory Hainaut
e50e9a5e65
x86emitter: sed/32orLess/64orLess/
2016-01-17 00:29:19 +01:00
Gregory Hainaut
395d43fd9c
x86emitter: jump: use base type directly
...
which fix 16 bits call (no prefix)
2016-01-17 00:21:05 +01:00
Gregory Hainaut
968af6148e
x86emitter: extend SSE instruction type
2016-01-17 00:21:05 +01:00
Gregory Hainaut
4bc9cbc24f
x86emitter: extend lea/bswap
2016-01-17 00:21:05 +01:00
Gregory Hainaut
eb4db2152c
x86emitter: add x64 to push/pop
2016-01-17 00:21:05 +01:00
Gregory Hainaut
ef21a8dbd0
x86emitter: extend group8 type
2016-01-17 00:21:05 +01:00
Gregory Hainaut
39a6bda52d
x86emitter: extend test & bitscan type
...
Factorize the code to support any types
2016-01-17 00:21:05 +01:00
Gregory Hainaut
e285036455
x86emitter: shift: extend it to 64 bits type
2016-01-17 00:21:05 +01:00
Gregory Hainaut
fdaf0e9979
x86emitter:group: uses base type
...
Add 64 bits support for free ;)
Note: 64b still requires the REX prefix
2016-01-17 00:21:05 +01:00
Gregory Hainaut
e2602b3967
x86emitter:move: factorize type and extend it to 64 bits
...
It's still missing the REX prefix support
2016-01-17 00:21:05 +01:00
Gregory Hainaut
41f509873d
x86emitter: extend xIndirect32orLess to support 64 bits
...
It would be renamed later to avoid conflict with pending updates
2016-01-17 00:12:31 +01:00
Gregory Hainaut
39dc8368fa
x86emitter: add GetPrefix16 helper
2016-01-17 00:12:21 +01:00
Gregory Hainaut
be0b8cf2f5
x86emitter: implement some function to emit the REX prefix
...
Same fashion as EmitSibMagic
2016-01-17 00:10:21 +01:00
Gregory Hainaut
53b5ecf34a
x86emitter: add the new x86_64 registers set
2016-01-17 00:10:21 +01:00
Gregory Hainaut
366f793cf0
core: use xRegisterLong instead of xRegister32
...
Code needs to work with xAddressReg however the x32 inheritance doesn't
exits anymore on 64 bits.
Note: it might be possible to uses some kind of autoconversion with
xRegister32or64. Could be a future improvement.
2016-01-17 00:10:21 +01:00
Gregory Hainaut
1328865279
x86emitter: xAddressReg size will depend on the arch
...
Note: displacement are never 8B. The max is 4B which is sign extended to 8B.
So we can't store a pointer into it anymore.
Add xRegisterLong that will be x64 on 64 bits and x32 on 32 bits
2016-01-17 00:10:21 +01:00
Gregory Hainaut
a865ba8cf5
x86emitter: add various type for 64 bits
2016-01-17 00:10:21 +01:00
Gregory Hainaut
2fea78a6c4
x86emitter: remove not virtual inherited function
...
IsSIMD isn't virtual
2016-01-17 00:10:21 +01:00
Gregory Hainaut
6ec7d2c340
x86emitter: ease template stuff
2016-01-16 14:34:00 +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
a7a8c542f5
Merge pull request #1100 from PCSX2/recompiler-abi-wrapper
...
Recompiler abi wrapper
2016-01-14 19:21:27 +01:00
Gregory Hainaut
3c528f0fdd
common define _32kb and _4kb
2016-01-11 18:00:25 +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
afdf5cdfe2
x86emitter: remove old unused macro
...
Add some notes for a GCC "bug"
2016-01-10 16:49:50 +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
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
fd56195b2d
x86emitter: drop old register define
2016-01-09 21:28:10 +01:00
Gregory Hainaut
834cc3f2c5
core|x86emitter: port basic jump instruction
2016-01-09 21:26:25 +01:00
Gregory Hainaut
743e615224
core: overload _freeX86reg with xRegister32
2016-01-09 21:15:25 +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
de2b97c640
linux compilation fix
2016-01-08 22:35:55 +01:00
Gregory Hainaut
74db92bee4
Merge pull request #978 from juhalaukkanen/apple_osx_master_merge
...
OSX 32bit build
2016-01-08 20:09:37 +01:00
Gregory Hainaut
4f28403c03
Merge pull request #972 from PCSX2/clean-gcc-opt-cmake
...
cmake: reenable a couple of missing gcc optimization
2016-01-08 19:32:18 +01:00
Gregory Hainaut
fb1a19f157
x86emitter: clean unused legacy type
...
Note: no need to check -1 on register allocation failure (a exception will be fired)
2015-12-02 19:09:43 +01:00
Gregory Hainaut
21445fe0d0
x86emitter: Add several architecture dependant wrapper
...
* A nice object to create the stack frame
* Various xStdCall/xFastCall to emulate standard & fast call
2015-12-02 19:06:52 +01:00
Juha Laukkanen
7edf747e84
Darwin/OSX Mutex & MAP_ANON vs. MAP_ANONYMOUS.
...
OSX compilation fix: mutex: Windows
2015-12-02 05:00:23 +02:00
Juha Laukkanen
fc3ff48777
Darwin/OSX SysMessage stub & __POSIX__ define.
2015-11-30 12:18:44 +02:00
Jonathan Li
52be531b8e
utilities:windows: Use standard memset for memset_8
...
aka commit 2194685
for Windows
2015-11-29 11:46:59 +00:00
Jonathan Li
57ad97d212
x86emitter: Remove bool_to_char
...
It was unused.
2015-11-29 10:58:32 +00:00
Jonathan Li
4d97089990
x86emitter: Fix Windows AVX2 detection
...
Technically it did work, but it was undefined behaviour. Use __cpuidex,
which allows setting ecx as well.
Also fix the _xgetbv intrinsic - I have no idea how PCSX2 even
compiled on Windows.
2015-11-29 10:57:51 +00:00
Gregory Hainaut
9aec4229d5
x86emitter: support AVX2 (linux only?)
...
Nah kidding, it is only the cpu detection for the log
x86 Features Detected:
SSE2.. SSE3.. SSSE3.. SSE4.1.. SSE4.2.. AVX.. AVX2.. FMA
2015-11-28 23:40:15 +01:00
Gregory Hainaut
02186d5a54
x86emitter: always use fxsave intrinsic/asm
2015-11-28 22:19:42 +01:00
Gregory Hainaut
d5efd6eacb
x86emitter: remove the never called SIMD_ExceptionTest function
2015-11-28 22:02:08 +01:00
Jonathan Li
a59a90c734
common:windows: Add unicode compatible functions
...
It's not great, but it will work.
2015-11-25 20:03:44 +00:00
Juha Laukkanen
f813b9e25b
Darwin/OSX semaphore & thread & os backend.
2015-11-17 19:30:20 +02:00
Gregory Hainaut
21857ec12d
Merge pull request #967 from PCSX2/remove-lazy-allocation
...
Reduce lazy allocation
2015-11-15 00:12:07 +01:00
Gregory Hainaut
d5830ef708
cmake: reenable a couple of missing gcc optimization
2015-11-14 09:54:09 +01:00
Gregory Hainaut
abb4cb4810
plugin API: use const char* insead of char*
...
I hope it doesn't change the ABI
v2: fix GSnull/zzogl/zerogs
v3: duplicated code on windows...
2015-11-12 12:11:42 +01:00
Gregory Hainaut
4bfb60865c
common: ifdef x64 specific code
...
gcc warning: set but unused
2015-11-12 12:10:49 +01:00
Gregory Hainaut
26774a2fe0
recompilers: always allocate the first block
...
Avoid several annoying SIGSEGV at startup
2015-11-12 10:35:10 +01:00
Gregory Hainaut
7565bcc789
ee: drop SpatialArrayReserve allocator
...
Let's the kernel manage the memory either with builtin lazy allocation or
swapped memory.
Avoid to handle SIGSEGV manually (nicer for debug) and removes 250 lines of code.
2015-11-12 10:35:10 +01:00
Jonathan Li
44d89308c9
Revert "Revert "gsdx|spu2-x: Use atlcomcli.h for CComPtr definition""
...
This reverts commit 9bb990e9ed
.
Fight! Ahem...
2015-11-09 20:55:07 +00:00
Jonathan Li
9bb990e9ed
Revert "gsdx|spu2-x: Use atlcomcli.h for CComPtr definition"
...
This reverts commit 0eb771c2a6
.
The buildbot apparently cannot find atlcomcli.h. Oh joy.
2015-11-08 20:46:41 +00:00
Jonathan Li
49ff324882
Merge pull request #955 from turtleli/replace-comptr-h
...
gsdx|spu2-x: Use atlcomcli.h for CComPtr definition
2015-11-08 13:27:28 +00:00
Gregory Hainaut
870e799baa
memcpy: remove AMD copyright
...
memcmp comes from zerofrog (him or external) but likely not AMD
https://www.cs.virginia.edu/stream/FTP/Contrib/AMD/memcpy_amd.asm
2015-11-07 15:57:34 +01:00
Jonathan Li
0eb771c2a6
gsdx|spu2-x: Use atlcomcli.h for CComPtr definition
...
VS2013/VS2015 community includes it, so everything will still compile
for everyone.
Also delete common/include/comptr.h.
2015-11-06 18:52:33 +00:00
Jonathan Li
08dfa20da1
utilities:linux: Add function to change stdout stream
...
stdout is not necessarily at stdout - at least not after I'm done with it.
2015-10-31 13:50:02 +00:00
Jonathan Li
618ef8b549
pcsx2:linux: Use narrow characters for stdout
...
Things seem to break when you mix wide and narrow characters.
Plugins messages sent to stdout are now viewable.
2015-10-29 19:09:49 +00:00
Gregory Hainaut
2194685d76
memset-linux: use std memset for memset_8
...
This memset is only used in the init (to clear the page that will
contains the dynarec dispatcher
2015-10-28 14:25:12 +01:00
Akash
cfd02bff53
Utilities: Initialize all class members
...
CID 147010 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR)4. uninit_member: Non-static class member Enabled is not initialized in this constructor nor in any functions that it calls.
2015-10-25 14:11:34 +05:30
Gregory Hainaut
4f86cca306
common: don't return a boolean for an assert
...
It might help to fix those 2 coverity reports.
CID 151744 (#1 of 1): Useless call (USELESS_CALL)
side_effect_free: Calling EnumAssert(id) is only useful for its return value, which is ignored
CID 151745 (#1 of 1): Useless call (USELESS_CALL)
side_effect_free: Calling EnumAssert(id) is only useful for its return value, which is ignored.
2015-10-17 11:49:04 +02:00
Avi Halachmi (:avih)
75b2406997
macros: fix pxReleaseCode (was inverted), add pxNonReleaseCode
...
pxReleaseCode was not used at the code so nothing is affected.
pxNonReleaseCode will be used at the next commit.
2015-10-07 04:08:09 +03:00
Gregory Hainaut
927dd827ce
common: make DESTRUCTOR_CATCHALL macro really exception safe
...
Console.Error() can trigger some exceptions (like out of memory)
v2:
Add a default fallback catch(...) in case someone badly add a new
exception in the codebase
2015-09-25 18:41:19 +02:00
Gregory Hainaut
2eb73644e9
pcsx2|common: use DESTRUCTOR_CATCHALL to catch exception in various destructor
...
Allow to print a nice error message instead of a brutal abort in case of
massive failure
2015-09-23 09:47:27 +02:00
Gregory Hainaut
8083b2c754
common: init values in the constructors of SpatialArrayReserve and pxStaticText
2015-09-23 09:47:27 +02:00
Gregory Hainaut
2c914b9b8f
common:FastFormatString: remove unimplemented m_Length
2015-09-23 09:47:27 +02:00
Gregory Hainaut
a6c29a5061
common: always set a default color in trace log
2015-09-23 09:47:27 +02:00
Gregory Hainaut
3064d0c300
common: init m_handled in the SrcType_PageFault constructor
...
Coverity:
CID 147021 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)i
2. uninit_member: Non-static class member m_handled is not initialized in this constructor nor in any functions that it calls.
2015-09-23 09:47:27 +02:00