Commit Graph

1625 Commits

Author SHA1 Message Date
comex
d128795594 Merge pull request #862 from comex/registersinuse
Reduce my idiocy in register saving code.
2014-08-24 16:16:32 -04:00
Dolphin Bot
f31ebd23bb Merge pull request #864 from FioraAeterna/avx2bmi
Add AVX2/BMI1/BMI2 detection support
2014-08-24 18:55:01 +02:00
Fiora
ce6d09ca5d Add AVX2/BMI1/BMI2 detection support
Also clean up the formatting in a bit of the CPU detection code.
2014-08-24 09:14:54 -07:00
comex
d19ec35363 Reduce my idiocy in register saving code.
(1) Rename ABI_ALL_CALLEE_SAVED to ABI_ALL_CALLER_SAVED, because that's
what it was actually defined as (and used as).  Derp.

(2) RegistersInUse is always used for the purpose of saving registers
before calling a C++ function in the middle of a JIT block (without
flushing).  There is no need to save callee-saved registers in this
case.  Change the name to CallerSavedRegistersInUse and mask with
ABI_ALL_CALLER_SAVED.

Nothing obvious broke when starting up a Melee game.  (I added a test
for anything actually being masked out; it happens, but in this
particular case seemed to occur at most a few dozen times per second, so
the actual performance benefit is probably negligible.)
2014-08-23 15:46:10 -04:00
Shawn Hoffman
327d35377d windows: remove now-extraneous NOMINMAX and WIN32_LEAN_AND_MEAN #defines from dolphin code.
Wrap dinput.h in a header defining DIRECTINPUT_VERSION instead of repeating it multiple places.
2014-08-23 10:48:48 -07:00
Tillmann Karras
80be585fef x64Emitter: remove redundant "Gen::" 2014-08-20 02:56:07 +02:00
Tillmann Karras
a363f4fa3e x64Emitter: make 'packed' parameter a bool 2014-08-20 02:54:30 +02:00
Shawn Hoffman
87c324c55a Add Common::Event::WaitFor(), which has the same semantics as std::condition_variable::wait_for() (with millisecond units). 2014-08-17 21:52:40 -07:00
Shawn Hoffman
375be67158 Add Common/Event.h to the VS project files. 2014-08-17 21:52:40 -07:00
Fiora
802b28daf9 x64Emitter: refactor to support longer opcodes
Also add some new SSE4 opcodes.
2014-08-17 04:48:17 -07:00
Lioncash
4759510f70 Get rid of instances of "using namespace std;" in the project 2014-08-17 02:05:33 -04:00
Lioncash
6ee2267b2d Merge pull request #771 from lioncash/32bit-cruft
Core: Remove leftover Windows 32-bit functions in MemArena.cpp
2014-08-17 01:40:23 -04:00
Lioncash
1b92c68f05 Common: Add Flag.h to the Visual Studio project. 2014-08-16 23:33:28 -04:00
Lioncash
d18d3e1f3e Common: Get rid of StdConditionVariable, StdMutex, and StdThread.
All of the compilers we support have support for these now.
2014-08-16 23:33:19 -04:00
shuffle2
2270c3e90a Merge pull request #797 from shuffle2/msvc-pch
Windows: Use a shared precompiled header for dolphin code under Source/
2014-08-16 14:58:28 -07:00
Lioncash
cf46ac7dc9 Core: Kill off Host_ShowJitResults
Another host function that can be killed off by simple wx event handling
2014-08-15 15:18:28 -04:00
Shawn Hoffman
f1b82a34b2 Windows: Use a shared precompiled header for dolphin code under Source/ 2014-08-14 23:51:13 -07:00
Shawn Hoffman
66fdbdd18d Windows: Give SCMRevGen a configuration for x64 instead of Win32. 2014-08-13 03:57:10 -07:00
Ryan Houdek
6bdc32c54a Add the VideoCommon PostProcessing class.
This class loads all the common PP shader configuration options and passes those options through to a inherited class that OpenGL or D3D will have.
Makes it so all the common code for PP shaders is in VideoCommon instead of duplicating the code across each backend.
2014-08-13 01:05:10 -05:00
Ryan Houdek
3a657fe33c Add TryParseVector to StringUtil.
Adds a nice way to have options be in a vector for results
2014-08-12 23:45:14 -05:00
shuffle2
43010818fa Merge pull request #785 from lioncash/string
Common: Fix AsciiToHex returning true on overflow values
2014-08-12 14:43:02 -07:00
shuffle2
9f4008c5bc Merge pull request #760 from lioncash/swap
Common: Use the OSX equivalent byte-swap functions
2014-08-12 14:31:32 -07:00
shuffle2
b8d126c101 Merge pull request #754 from FioraAeterna/immediateopt
x64Emitter: optimize immediate sizes
2014-08-12 14:19:31 -07:00
Lioncash
5afb9cc5c4 Common: Fix AsciiToHex returning true on overflow values
We should be checking errno against ERANGE.
2014-08-12 02:49:04 -04:00
shuffle2
36af1b518d Merge pull request #777 from shuffle2/vs2013-update3
Use official flag for detailed symbols. Require VS2013 with update 3 or later to build.
2014-08-11 20:12:52 -07:00
Shawn Hoffman
d0c3e46c80 Windows: Improve XSaveWorkaround to behave correctly when XSAVE processor feature is enabled, but AVX support isn't available for whatever reason. 2014-08-10 14:50:29 -07:00
Shawn Hoffman
5eccc08c7e Use official flag for detailed symbols. Require VS2013 with update 3 or later to build. 2014-08-10 14:47:29 -07:00
Lioncash
eb10899b53 Core: Remove leftover Windows 32-bit functions in MemArena.cpp 2014-08-10 05:35:14 -04:00
Lioncash
7bf82f1989 Core: Kill off Host_UpdateLogDisplay()
This was actually never used as far as I can tell. There was no wx event handling done whatsoever for the global ID, So this is basically a dead function.
2014-08-08 19:21:40 -04:00
lioncash
85ace9751e Common: Use the OSX equivalent byte-swap functions 2014-08-08 13:26:26 -04:00
Fiora
75b3e425fd x64Emitter: optimize immediate sizes
A nice alternative than trying to do it throughout the JIT.
2014-08-07 13:07:27 -04:00
Lioncash
0718937237 Common: Introduce the new Gekko disassembler to Common.
This moves the Gekko disassembler to Common where it should be. Having it in the Bochs disassembly Externals is incorrect.

Unlike the PowerPC disassembler prior however, this one is updated to have an API that is more fitting for C++. e.g. Not needing to specify a string buffer and size. It does all of this under the hood.

This modifies all the DebuggingInterfaces as necessary to handle this.
2014-08-04 00:45:07 -04:00
Pierre Bourdon
4c42b38de1 Merge pull request #428 from Sonicadvance1/x86_32-removal
Remove x86_32 support from Dolphin.
2014-08-03 21:17:28 -07:00
Ryan Houdek
0c24e1dcf2 Remove the rest of x86_32 support from Common. 2014-08-03 13:49:46 -05:00
Pierre Bourdon
8b26d7bf1e UnitTests: make it possible to build tests for code that has global dependencies 2014-08-02 09:34:39 -07:00
Lioncash
77c2b6829a Merge pull request #702 from lioncash/netplay-version
Common: State OS instead of 32/64 bit in the netplay lobby
2014-08-01 22:51:30 -04:00
Lioncash
4b32dcbc33 Merge pull request #707 from lioncash/strip
Common: Simplify StripTailDirSlashes
2014-08-01 16:01:37 -04:00
Lioncash
1dc5294629 Common: Simplify StripTailDirSlashes 2014-07-31 22:18:45 -04:00
Lioncash
c5188c76b3 Merge pull request #705 from Sonicadvance1/fix-memoryutil-check
Fixes a check for what mmap returns.
2014-07-31 03:06:00 -04:00
Ryan Houdek
33450c80c3 Fixes a check for what mmap returns.
On error mmap returns MAP_FAILED(-1) not null.
FreeBSD was checking the return correctly, Linux was not.
This was noticed by triad attempting to run Dolphin under valgrind and not getting a memory space under the 2GB limit(Because -1 wraps around on
unsigned obviously)
2014-07-31 00:53:00 -05:00
Pierre Bourdon
9b9817f927 x64Emitter: Fix REX encoding for SETcc
Previously using the new "lower 8 bits" registers (SIL, SPL, ...) caused SETcc
to write to other registers (for example, SETcc SIL would generate SETcc DH).
2014-07-30 06:41:29 -07:00
Lioncash
22e9d6977b Common: State OS instead of 32/64 bit in the netplay lobby 2014-07-30 02:04:17 -04:00
Lioncash
b03c12764d Really get rid of the MSVC 2005 workaround completely 2014-07-29 21:20:43 -04:00
Lioncash
4fa71dd59e Remove fakepoll.h.
It was only used for Windows XP and lower.

This also bumps the _WIN32_WINNT define in the stdafx precompiled headers to set the minimum version as Windows Vista.
2014-07-26 22:53:40 -04:00
Shawn Hoffman
cfc7bb35c2 Windows: Also look for git.exe in the registry (for Git Extensions installs). 2014-07-20 12:33:56 -07:00
Tillmann Karras
6df48ed432 x64Emitter: add CVTTPD2DQ 2014-07-15 23:53:56 +02:00
Lioncash
79eb0f8d0c Merge pull request #623 from phire/sw-xfb-clamping
Fix incorrect clamping in SWRenderer.
2014-07-15 12:04:06 -04:00
Scott Mansell
b8695a57da Fix incorrect clamping in SWRenderer.
A previous PR changed a whole lot of min/maxes to std::min/std::max
but made a mistake here and used a templated min which cast it's
arguments to unsigned instead of casting return value.

This resulted in glitchy artifacts in bright areas (See issue 7439)

I rewrote the code to use a proper clamping function so it's cleaner
to read.
2014-07-15 21:15:49 +12:00
Lioncash
8087a89afd Remove some unnecessary defines in Log.h 2014-07-14 15:51:28 -04:00
Tillmann Karras
d398e9ef61 Common: add macros for assisting branch prediction 2014-07-14 01:52:14 +02:00