Commit Graph

3646 Commits

Author SHA1 Message Date
Matthew Parlane
e805bf6068 Only add real HID devices to HID list. 2013-11-17 21:14:22 +13:00
Jordan Cristiano
714633f311 Fixed console commands not registering. Code cleanup. 2013-11-14 22:23:55 -05:00
Jordan Cristiano
0fced651a5 More warning fixes, OSX build fix. 2013-11-14 03:11:40 -05:00
Jordan Cristiano
c3069eda28 build fix 2013-11-14 02:27:53 -05:00
Jordan Cristiano
39a4d4329d more warning fixes 2013-11-14 02:19:15 -05:00
Ryan Houdek
63a9dff3bb Windows requires memory to be included to use unique_ptr 2013-11-13 12:51:49 -06:00
Ryan Houdek
652ef24a2e Remove our two instances of auto_ptr and replace it with unique_ptr. auto_ptr has been deprecated. 2013-11-13 11:44:04 -06:00
Tillmann Karras
038ffea369 Jit64: don't flush clean FPRs 2013-11-13 08:03:18 +01:00
degasus
d78c8c21a2 jit64: enable fp instructions faddx fsubx fdivx fdivsx
all of them are now accurate enough as we handle non-ieee floats correctly
2013-11-13 06:26:50 +01:00
Tillmann Karras
cd069fdce1 Interpreter: software-based flush-to-zero
bDAZ is now called bFlushToZero to better reflect what it's actually
used for.

I decided not to support any hardware-based flush-to-zero on systems
that don't support this for both inputs _and_ outputs. It makes the code
cleaner and the intersection of CPUs that support SSE2 but not DAZ
should be very small.
2013-11-13 06:24:58 +01:00
Tillmann Karras
466a7afde3 Interpreter: support non-IEEE mode emulation
v2: fix fxsave on visual studio, thx @ rodolfo for this patch
2013-11-13 06:24:57 +01:00
Tillmann Karras
710a0ff435 Jit64: don't unnecessarily load registers 2013-11-13 06:16:24 +01:00
Tillmann Karras
ddaf29e039 Jit64: use AVX instructions in some places 2013-11-13 06:15:56 +01:00
Tillmann Karras
22b47d5b9c Jit64: Fix and re-enable psq_l for W=1
Patch by konpie:
https://forums.dolphin-emu.org/Thread-code-bug-report-based-on-3-0-735
2013-11-13 05:58:28 +01:00
Tillmann Karras
2fecb033be Jit64: micro-optimize ps_sel
Adapted from a patch by konpie:
https://forums.dolphin-emu.org/Thread-code-bug-report-based-on-3-0-735
2013-11-13 04:45:43 +01:00
Tillmann Karras
6f5650f82e Fix Bluetooth warnings 2013-11-13 04:01:24 +01:00
Tillmann Karras
268bdf19ce Fix format string warnings 2013-11-13 04:01:16 +01:00
Ryan Houdek
39ad5a2f7a Disable Fastmem on JIT64IL. JIT64IL is completely incompatible with Fastmem and doesn't need it since it has its own way to speed up memory accesses. This fixes the JIT64IL core, which I totally didn't break but was blamed for. 2013-11-12 19:37:09 -06:00
Ryan Houdek
a72b3ca20c [ARM] Don't leave my test code in the JIT core. 2013-11-12 04:22:42 +00:00
Ryan Houdek
56557c845a [ARM] Fix NEON emitter encodings. 2013-11-12 01:01:54 +00:00
Shawn Hoffman
33d56f50a4 Re-plumb window handle to the dsound backend.
Reverts parts of commit 71c01d83ab614b9e0c421d03ca694713dbabff48.
Fixes issue 6800
2013-11-07 09:24:56 -08:00
Lioncash
c33036aa01 Fix the filter for some files in the Core VS project related to the JitIL. They were in the root of the project. They should actually be in their own filter named JitILCommon. 2013-11-07 01:33:32 -05:00
degasus
1aa06b8fa4 jit: change our linking module to be able to handle arbitrary exit addresses
And also do this for all JIT backends...
2013-11-07 06:19:35 +01:00
Pierre Bourdon
ea6fd58b97 Use an unordered_set to track FIFO write adresses
Reduces CheckGatherPipe CPU consumption by 40%.
2013-11-07 03:22:32 +01:00
Tillmann Karras
cdc27e46f1 Jit64: implement ps_res
This is probably more accurate than it is allowed to be. After all, the
instructions are supposed to be "estimates".
2013-11-07 02:19:20 +01:00
Tillmann Karras
0a2a273a2e Jit64: simplify ps_sel 2013-11-07 02:02:38 +01:00
Tillmann Karras
201c4c65a5 Jit64: fix typo in ps_sel and re-enable it 2013-11-07 02:02:24 +01:00
degasus
2f7ca688ae jit64: remove dead code 2013-11-07 01:59:10 +01:00
Tillmann Karras
c29fb22cd4 Jit64: extract frsqrtex as method 2013-11-07 01:59:00 +01:00
Matthew Parlane
897bec1add [JitIL] No more terrible usage of vectors.
This is possible because of C++11.
2013-11-06 22:18:08 +13:00
Ryan Houdek
948ace9546 [ARM] Minor idle skip optimization in bx. 2013-11-05 13:05:39 +00:00
Matthew Parlane
e15f628935 Fix {Read,Write}FileToString.
We should be using binary always.
2013-11-05 00:33:41 +13:00
comex
3f1ea21e4f Fix warnings. 2013-11-03 20:54:06 -05:00
comex
21610c2e54 Run code through clang-modernize -add-override to add 'override' decls. 2013-11-03 20:54:05 -05:00
comex
c579637eaf Run code through the advanced tool 'sed' to remove trailing whitespace. 2013-11-03 20:54:05 -05:00
comex
965b32be9c Run code through clang-modernize -loop-convert to create range-based for loops, and manually fix some stuff up. 2013-11-03 20:54:01 -05:00
Rachel Bryk
a250ab0af7 Stop saving random files to ./ 2013-11-02 23:47:10 -04:00
skidau
65404e7475 Removed duplicate definition of ibuild within JitIL.h. Fixes JitIL from hanging on x64/x86. 2013-11-01 12:33:29 +11:00
comex
82729fcc8f Merge remote-tracking branch 'shuffle2/vc12'
Conflicts:
	Source/Core/Common/Common.vcxproj
	Source/Core/Common/Common.vcxproj.filters
2013-10-31 16:51:56 -04:00
comex
4c7bbd96e4 Improve ChunkFile.h:
- Add support for std::set and std:pair.

- Switch from std::is_pod to std::is_trivially_copyable, to allow for
  types that have constructors but trivial copy constructors.  Easy,
  except there are three different nonstandard versions of it required
  on different platforms, in addition to the standard one.
2013-10-31 15:40:53 -04:00
Ryan Houdek
8e73e8ae5f Wipe all traces of OpenSSL's AES implementation. Use polarssl instead. 2013-10-27 18:27:07 +00:00
Shawn Hoffman
8dcd13cca7 [vc12] std::min/max requires <algorithm> header. It should be in pch, but just add it for the single file that needs it, for now. 2013-10-26 18:04:00 -07:00
Shawn Hoffman
ccd30024b3 Update to VS2013 and a slew of build-related updates. Notes:
* Currently there is no DEBUGFAST configuration. Defining DEBUGFAST as a preprocessor definition in Base.props (or a global header) enables it for now, pending a better method. This was done to make managing the build harder to screw up. However it may not even be an issue anymore with the new .props usage.
* D3DX11SaveTextureToFile usage is dropped and not replaced.
* If you have $(DXSDK_DIR) in your global property sheets (Microsoft.Cpp.$(PlatformName).user), you need to remove it. The build will error out with a message if it's configured incorrectly.
* If you are on Windows 8 or above, you no longer need the June 2010 DirectX SDK installed to build dolphin. If you are in this situation, it is still required if you want your built binaries to be able to use XAudio2 and XInput on previous Windows versions.
* GLew updated to 1.10.0
* compiler switches added: /volatile:iso, /d2Zi+
* LTCG available via msbuild property: DolphinRelease
* SDL updated to 2.0.0
* All Externals (excl. OpenAL and SDL) are built from source.
* Now uses STL version of std::{mutex,condition_variable,thread}
* Now uses Build as root directory for *all* intermediate files
* Binary directory is populated as post-build msbuild action
* .gitignore is simplified
* UnitTests project is no longer compiled
2013-10-26 17:55:38 -07:00
skidau
41f6f6adc9 Added memchecks when the MMU is enabled. Thanks to comex for the fix.
Fixes issue 6754.
2013-10-26 14:32:03 +11:00
comex
005af7bd63 Fix build on Mavericks. 2013-10-24 16:39:46 -04:00
Tillmann Karras
69a10869bb Document FPSCR fields 2013-10-24 01:46:07 +02:00
Rachel Bryk
8aef60f6ca Allow frame limit to be set via game ini. 2013-10-23 13:45:03 -04:00
Ryan Houdek
887f8e463d [Android] Fix MIPS compiling. 2013-10-21 09:43:19 -05:00
Lioncash
1f0710caf7 Remove some more includes. 2013-10-19 19:59:03 -04:00
Lioncash
6adf3e37e2 Clean out unnecessary includes from the DSP JIT. 2013-10-19 19:59:00 -04:00
Lioncash
af1b5fe767 Woops forgot to clean out some files in the Jit64IL. All clean now. 2013-10-19 19:58:59 -04:00
Lioncash
80b4cb6cf3 Clean out includes from regular JitCommon. 2013-10-19 19:58:59 -04:00
Lioncash
3360ec013f Clean out includes in JitILCommon. 2013-10-19 19:58:58 -04:00
Lioncash
22cdc0f56e Remove some more unnecessary includes, as well as organize a little more. 2013-10-19 19:58:57 -04:00
Lioncash
97cd42f5c3 Remove some unnecessary includes as well as simplifying exisiting ones if possible. 2013-10-19 19:58:56 -04:00
comex
33ee04626d Don't define __rdtsc if x86intrin.h already does. 2013-10-19 12:40:21 -04:00
Lioncash
81964517d6 Remove a redundant assignment in Init() within PowerPC.cpp. We already assign zero to ppcState.dtlb_last. 2013-10-17 20:38:49 -04:00
Lioncash
b8a947ce0a Fix a filter in the VS project file for JitILCommon-related files. 2013-10-17 06:36:32 -04:00
comex
de1773affb Basic precompiled header support for Linux/OS X. Shaves 20-30% off full rebuild time on my system. 2013-10-17 00:07:35 -04:00
Tillmann Karras
e4a81f32d4 Document some UGeckoInstruction fields 2013-10-17 04:59:13 +02:00
Rachel Bryk
f605ea9eeb [Netplay] Allow a spectator to leave without affecting players. 2013-10-16 21:44:49 -04:00
degasus
5a212a8fe0 jit64: enable faddsx again
It was disabled because of issue 182, but as this game depeneds on FPRF, it was just 'fixed' because of the fallback to interpreter (which implements FPRF by default).
Also enables FPRF for this game via GameIni, so that the issue is still workaround.

If there are any regressions because of this commit, please try to enable FPRF in GameIni.
2013-10-17 01:43:16 +02:00
Tillmann Karras
c234dc97c0 Jit64: optimize floating-point/paired-single arith
The "else if (b != d)" branch was dead code and only works if b == d. Now
the last else block with two temporary XMM registers is not needed anymore.
2013-10-16 00:52:21 +02:00
skidau
b4513313bb Increase the trampoline cache size to cater for fastmem writes.
Fixes issue 6722.
2013-10-16 09:26:08 +11:00
Lioncash
f3af8ee0f0 Revert "Remove some unnecessary includes."
Turns out this explodes on Linux.

This reverts commit c4696568cc.
2013-10-14 04:05:38 -04:00
Lioncash
c4696568cc Remove some unnecessary includes. 2013-10-14 04:01:57 -04:00
Ryan Houdek
2f0aca2055 [ARM] Fix the JITILArm and JITArm dispatchers from comex's recent changes. 2013-10-12 08:30:26 +00:00
Ryan Houdek
0556193442 Build fix for previous commit. 2013-10-11 21:45:44 -05:00
comex
78a4dbced8 Remove more unused stuff. 2013-10-09 21:37:29 -04:00
comex
8962b9606b One shudders to imagine what inhuman thoughts lie behind that code.
(Read_Opcode_JIT and Write_Opcode_JIT read/write from unrelated memory
areas.*  Rename the latter and refactor.)

*except at the one specific exception handler where it doesn't.  I
have no idea what this is supposed to do, but it probably doesn't do
it correctly.  For now, remove the exception.
2013-10-09 21:37:29 -04:00
comex
2e32f11f03 Remove "deprecated" and unused function Read_Opcode_JIT_LC. 2013-10-09 21:37:28 -04:00
comex
5847e26d34 Minor JitCache cleanup. 2013-10-09 21:37:28 -04:00
comex
86f2e1734a Make JIT_UNLIMITED_ICACHE always on.
(1) The alternative doesn't compile.
(2) Despite "unlimited" sounding like a hack, it's actually
    significantly more correct then the alternative, which is no
    emulated icache.
(3) Easier to wrap my head around.
2013-10-09 21:37:28 -04:00
Ryan Houdek
715d5ae8a7 Merge branch 'JitArmIL'
This implements a partial JITIL based off of the JIT64IL. It's enough to run most games, albiet at a slow speed.
Implementing instructions for this IL is really simple since it basically is just enabling based on what is already in JIT64IL, and then enabling each individual IL instruction.
2013-10-09 23:16:07 +00:00
Ryan Houdek
bd79603c66 [ARM-JitArmIL] Enable a bunch of instructions. 2013-10-09 23:03:39 +00:00
Ryan Houdek
4914665429 [ARM-JITArmIL] Remove the SystemRegisters file. 2013-10-09 20:59:15 +00:00
comex
d5e40bfb01 Don't waste time looking up the block if enableBlocklink is off anyway. 2013-10-09 15:01:55 -04:00
Matthew Parlane
935ed814ea Missed a accept error handler.
Init instead of memset.
2013-10-09 23:35:29 +13:00
Matthew Parlane
f811dbb575 Fix accept() bug, which was using the wrong isRW for error conversion.
Also fixed a debug issue where local_name is used uninitialised.
2013-10-09 22:16:04 +13:00
Ryan Houdek
932586f743 [JitArmIL] Fix Windows build? 2013-10-09 00:55:43 +00:00
Ryan Houdek
4263f062b0 [JITArmIL] Fix JITIL compiling on x86. 2013-10-08 19:16:27 -05:00
Ryan Houdek
ce5dbfe7a7 [ARM-JITArmIL] Begin merging of the two IL cores in to a common source base. 2013-10-08 19:23:37 +00:00
Ryan Houdek
a0f2183424 [ARM-JITArmIL] Provide the necessary instructions to allow the JitArmIL to actually run. Disable branch instructions as well for now since one is wrong somewhere. 2013-10-08 16:42:33 +00:00
Ryan Houdek
0236ba3f86 [ARM-JITARMIL] CMP optimization. Int3 IR. DownCount added. 2013-10-07 23:25:13 +00:00
Ryan Houdek
a4eab75d15 [ARM] Beginning of JitArmIL JIT recompiler. This code is entirely based off of magumagu's work with the JIT64IL. This puts down the base needed for the recompiler. Starfield actually runs quite a few blocks being mysteriously dying while most other games just exit out due to an instruction not being done yet. A lot of this code can be tidied up and actually shared between the two IL recompilers but isn't yet done. 2013-10-07 14:25:07 +00:00
comex
d6f0ecebb4 Fix updating the register even if an exception occurred in MMU mode. 2013-10-07 02:34:38 -04:00
comex
a9908fdf09 Fix build issues on OS X i386. 2013-10-07 02:16:51 -04:00
skidau
2b08172a45 Corrected the XMM0 processing for pairedStoreQuantized in the x86 build.
Updated the PC for the fifo writes processing in the less common case.
2013-10-06 16:31:34 +11:00
Matthew Parlane
8722b9cfb5 Missing break for IOCTL_ES_DELETETITLECONTENT 2013-10-06 16:22:44 +13:00
Lioncash
a7d073b0da [Core] Simplify a loop within function Run() in Interpreter.cpp. The increment variable for the for loop is never used at all, so it's sensible to replace it with a while loop. 2013-10-05 14:38:21 -04:00
skidau
2d00c3a4f8 Added code to update the PC before doing a fastmem write. Fixes games with freezing and FIFO errors since r2a339c926e43c11f7b9acc8d3af202f0be54e2b0. 2013-10-05 23:23:49 +10:00
comex
6498a77362 Fix storeSingleFloat stack alignment. 2013-10-05 07:56:57 -04:00
skidau
8324510d65 Removed the IOSVersion check (caused some Wii games like Battalion Wars 2 not to boot). 2013-10-05 13:07:40 +10:00
skidau
b7d1c03c8a Added a check for the IOS version before overriding the OSGetResetCode() function.
Fixes issue 6700.
2013-10-05 12:41:59 +10:00
comex
a51eb5fd19 Fix idle skipping.
It incorrectly continued to test EAX after it was changed to load
directly to the assigned register.

Also switch from a flush to ABI_PushRegistersAndAdjustStack, to avoid
needless flushing in the no-idle case.
2013-10-04 20:33:39 -04:00
comex
3679f9ba60 Don't push registers before pairedStoreQuantized, that's dumb.
And fix some stuff up.  It would probably be good to unify the stack
handling some more rather than having ABI_PushRegistersAndAdjustStack do
part of it and ABI_AlignStack the rest, causing unnecessary subtract
instructions on Linux x86 (only).
2013-10-04 15:48:06 -04:00
comex
a91469ffa5 Fix stfd, which was broken in the fastmem writes commit. 2013-10-03 18:22:35 -04:00
comex
5e4665301b Finish replacing ThunkManager with ABI_PushRegistersAndAdjustStack.
As part of that, change SafeLoadToEAX to SafeLoadToReg, and have JitIL
use that, which should fix fastmem on JitIL.

This should also fix a potential stack corruption issue with x86.
2013-10-03 18:22:35 -04:00
comex
a53dc6f981 Remove profiled re-JIT support in JitIL.
It's extremely unsafe, unused (not exposed in the GUI and not present in
any gameconfigs), and mostly obviated by fastmem.  Although this type of
thing could theoretically be useful someday for fastmem support with
MMU, it's probably not the best way to do it, the existing
implementation is way too simplistic, and it can always be dug up to
provide support for a new implementation if needed.

Not like it's a big deal to keep it working, but it really seems
pointless.
2013-10-03 18:22:12 -04:00
comex
3b0c0e2500 Trap to the debugger properly after BackPatch failure. 2013-10-03 18:21:29 -04:00