Gregory Hainaut
7d35e15fea
Merge pull request #1444 from PCSX2/atomic-relax
...
Atomic relax
2016-07-22 18:36:02 +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
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
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
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
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
de24ce0a8f
x86emitter: miss comas here
2016-03-28 18:10:39 +02: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
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
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
Gregory Hainaut
a66c911fed
cmake: factorize debug/dev define
2016-02-21 16:17:10 +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
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
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
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
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
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
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
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
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
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
29b0b17f50
x86emitter: add BMI1 & BMI2 instruction detection
2016-01-09 22:59:31 +01:00
Gregory Hainaut
834cc3f2c5
core|x86emitter: port basic jump instruction
2016-01-09 21:26: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
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
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
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
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
4bfb60865c
common: ifdef x64 specific code
...
gcc warning: set but unused
2015-11-12 12:10:49 +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
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
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
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
b60dd9d1fe
Merge pull request #814 from PCSX2/coverity-qa-high
...
Fix a bunches of coverity warning/errors.
2015-09-20 22:18:03 +02:00
Jonathan Li
67dc65ea91
linux: Fix _aligned_realloc implementation
...
Out-of-bounds memory is no longer accessed if the realloc size is larger.
If reallocation fails, the old memory will not be freed and a memcpy
will not take place.
This should match the Windows _aligned_realloc behaviour, except that an
extra parameter is used.
2015-09-13 21:05:33 +01:00
Miguel A. Colón Vélez
f1cb2cfa35
Fix segmentation fault with the new libstdc++ ABI.
...
Local variable goes out of scope and everything goes boom.
2015-09-12 17:35:45 -04:00
Jonathan Li
5c6915f633
utilities: Simplify _aligned_malloc wrapper
...
Windows doesn't actually use it at all, so let's exclude it from the
VS build. Also include ScopedAlloc.h into the VS project file.
2015-09-12 10:01:04 +01:00
Jonathan Li
8312e21f00
utilities: Cleanup unused memcpy defines
...
All refer to memcpy, and only memcpy_fast is used, so there's no point
keeping them.
Also remove the _memset16_unaligned function prototype since there's no
function definition for it.
2015-09-12 10:00:49 +01:00
Jonathan Li
239306e9a2
pcsx2|gsdx:linux: Fix posix_memalign
...
The AddressSanitizer can be used on Linux again. Well, PCSX2 doesn't get
very far when it's used though.
2015-09-12 09:58:00 +01:00
Gregory Hainaut
0260c9119e
common: suspicious missing comma
2015-09-11 08:54:29 +02:00
Jonathan Li
e2f1bafeef
gui:windows: Fix tooltip wrapping
...
wxWidgets 3.0 now wraps tooltips automatically on Windows, so the custom
tooltip wrapping functionality is no longer necessary.
2015-09-04 22:54:11 +01:00
Jonathan Li
cc1d50a06c
gui:windows: Show tooltips for as long as possible.
...
It'll show for 32.767s. Windows unfortunately doesn't have an infinite
value, and also uses a signed 16-bit integer for the delay.
2015-09-01 18:14:03 +01:00
Miguel A. Colón Vélez
f29dd8b927
Fix Windows XP Home vs Pro detection.
...
VER_SUITE_PERSONAL is set for XP Home therefore the check was backwards.
2015-08-26 16:02:26 -04:00
Miguel A. Colón Vélez
45fc9603e3
Recognize Win 8, 8.1 and 10.
...
https://msdn.microsoft.com/en-us/library/windows/desktop/dn481241(v=vs.85).aspx
Windows 8.1 and 10 require a manifest file or they will be reported as
6.2 which is Windows 8.
.
Also add the information for Win 8, 8.1 and 10 in the WinMisc.cpp file.
2015-08-25 21:30:27 -04:00
nE0sIghT
e1272dc2f9
Use global compiler optimization flags instead of defining them for every plugin/binary
2015-08-08 16:25:17 +03:00
Avi Halachmi (:avih)
d38d046f7a
gui: EE and VU panels: restore defaults programatically
...
The code was restoring the defaults with hardcoded values. This patch
restores the values however they're defined as defaults for AppConfig.
The code still uses hardcode values to set the highlights (bold) of the
default radio button text - using SetDefaultItem.
Note that other than these two panels, the speedhacks panel is the only other
which has a restore-defaults button, and it already does so programatically.
It's probably not worth trying to unify these three restore-defaults button
into a single system.
2015-08-06 00:38:13 +03:00
Gregory Hainaut
f4c22ce932
Merge pull request #612 from turtleli/ui-event-handling-fixes
...
gui: Dialog handling fixes and cleanup
2015-06-26 15:23:50 +02:00
Jonathan Li
2a4bd85f53
gui: Fix looping dialog event handling
...
The dialog event handling is a bit messed up. An ok/cancel event sends a
close event, which sends a cancel event and repeats. This would actually
be an infinite loop if wxWidgets didn't detect a loop.
Rework the event handling to avoid the loop and to remember the
positions of modal dialogs as well.
2015-06-25 16:46:20 +01:00
Jonathan Li
d9447de492
linux: Fix close button on minimisable modal dialogs
...
Keep Windows platform specific fixes ifdef'd to Windows only.
2015-06-25 15:45:45 +01:00
Jonathan Li
8de94a3714
Fix string handling on Windows wxWidgets 3.0
2015-06-19 22:14:49 +01:00
Gregory Hainaut
ce2b87343b
fix linux compilation sigh...
2015-06-06 00:25:26 +02:00
Jonathan Li
467e40fa81
Fix AlignedMalloc on Windows
2015-06-05 21:55:17 +01:00
Gregory Hainaut
a2a9b6252a
common: fix compilation
2015-06-05 21:18:21 +02:00