Commit Graph

1351 Commits

Author SHA1 Message Date
Jordan Cristiano f96e9e1ae4 warnings and code formatting 2013-11-13 04:03:46 -05:00
Tillmann Karras ae86850a78 x64: support VEX opcode encoding
and add some AVX instructions
2013-11-13 06:12:23 +01:00
Tillmann Karras 6054129df8 x64: detect FMA support 2013-11-13 04:46:34 +01:00
Tillmann Karras 268bdf19ce Fix format string warnings 2013-11-13 04:01:16 +01:00
Ryan Houdek 7c1ac441f6 Redo 'Fixes GCC 4.9 compilation. It now supplies its own _mm_shuffle_epi8 intrinsic.' This time with support for Windows. 2013-11-12 16:34:56 -06:00
Ryan Houdek 56557c845a [ARM] Fix NEON emitter encodings. 2013-11-12 01:01:54 +00:00
Ryan Houdek d1de336879 [ARM] More NEON emitters. 2013-11-11 01:47:05 +00:00
Jordan Cristiano 3a28afd8d5 Changed thread barrier and event to use a lamba wait predicate instead of a functor. 2013-11-10 04:57:11 -05:00
Ryan Houdek e013a74cdb [ARM] More NEON emitters. 2013-11-10 05:02:32 +00:00
Ryan Houdek 56685c396a [ARM] Fix an issue with the data offset in LoadStore operations. Thanks to PPSSPP. 2013-11-05 13:05:38 +00:00
Matthew Parlane e15f628935 Fix {Read,Write}FileToString.
We should be using binary always.
2013-11-05 00:33:41 +13: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
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 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
Ryan Houdek 1eba4da21a Revert "Fixes GCC 4.9 compilation. It now supplies its own _mm_shuffle_epi8 intrinsic."
This reverts commit b2c4901b3f.

Breaks Windows build. GCC 4.9 isn't out yet anyway.
2013-10-26 19:21:00 -05:00
Ryan Houdek b2c4901b3f Fixes GCC 4.9 compilation. It now supplies its own _mm_shuffle_epi8 intrinsic. 2013-10-26 19:05:31 -05:00
Ryan Houdek e3febb1603 [Android] Fix MIPS compiling. 2013-10-21 09:52:43 -05:00
Lioncash 4b774ef99a Fix my fix. 2013-10-20 16:42:30 -04:00
Lioncash 448c19bce1 Fix an issue where my recent changes would cause compilation to fail on some distros of Linux.
Note that before pushing those changes, they were initially tested in a branch, and passed the compilation testing. Sorry that I didn't catch this before.
2013-10-20 16:32:40 -04:00
Lioncash b3da5c5d58 Really fix the Linux build this time.
Dammit size_t :(
2013-10-19 19:59:05 -04:00
Lioncash a5a21e7f44 Fix Linux build.
Turns out Hash.h needs Common.h
2013-10-19 19:59:04 -04:00
Lioncash 8b10d5b481 Add header cstdint to CommonTypes.h 2013-10-19 19:59:03 -04:00
Lioncash 1f0710caf7 Remove some more includes. 2013-10-19 19:59:03 -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 b11cf1fa10 Fix config file saving on Windows. 2013-10-15 17:20:00 -04:00
comex 72c1e143f3 Try to atomically save config files. 2013-10-15 02:59:25 -04: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 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 f5e1b4659a [ARM] Clean up LSL, LSR, and ASR emitters, we don't need a separate instruction for each to support registers. 2013-10-09 22:57:31 +00:00
Rachel Bryk 99c89ae109 Fix unicode support for File::Rename() on windows.
Partial fix of issue 6721.
2013-10-09 15:33:21 -04:00
Ryan Houdek 7dd8deecec [ARM] Update the ArmEmitter with a bunch of NEON emitters. This adds around 47 instruction emitters if I counted correctly. None well tested at this point. On going to add all the NEON emitters. 2013-10-08 10:17:01 +00:00
comex a9908fdf09 Fix build issues on OS X i386. 2013-10-07 02:16:51 -04:00
comex 21a114ec28 ...Forgot the XMM regs for x86. 2013-10-05 01:17:34 -04:00
comex 144d7e5500 Fix build-breaking typo. 2013-10-05 01:08:08 -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 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
Lioncash 1ec4894bc5 [Common] Abstract out the decode5A3Image and decodeCI8Image functions in BannerLoaderGC, BannerLoaderWii, and GCMemcard into ColorUtil.cpp. Makes for less copied code and remains functionally the same. 2013-10-02 18:18:54 -04:00
Ryan Houdek 3c53f2e5e0 [Android] Fix Fastmem on Android 4.2 2013-09-29 20:53:32 -05:00
comex 1a008b9e62 Fix use of ABI_GetAlignedFrameSize. 2013-09-29 16:36:26 -04:00
comex ccbf2ac21a Match ABI_AlignStack with ABI_RestoreStack properly.
The relevant function is entirely unused, so it shouldn't have any
effect.
2013-09-29 14:59:13 -04:00
comex ecca0045a9 Fix Imm8 check.
(I blame whoever made it take a u8 despite logically being a s8.)
2013-09-25 14:29:17 -04:00
comex ebe4448749 Save only the registers that need to be saved rather than going through ProtectFunction. 2013-09-25 03:15:53 -04:00
comex 2a339c926e Fastmem writes for x86-64. 2013-09-25 03:15:53 -04:00
Ryan Houdek eb6ed3e42a [ARM] Change all floating point loadstores to fastmem implementations except lfs since all floating point accesses tend to be to RAM space. lfs tends to get used to write quickly to the gatherpipe and other places, look at the JIT64 implementation to see how to make it quicker. 2013-09-24 05:41:58 +00:00
comex 4cdce55615 Don't define _M_IX86 on ARM(!).
Also define _M_* in a common location, and clean up code that these
changes break (including DSPJit files that assume X86 yet are compiled
on ARM for some reason...)
2013-09-24 01:30:41 -04:00
comex 2f384c75d2 Only include scmrev.h from Version.cpp.
This way less code has to be rebuilt whenever that file gets
regenerated.
2013-09-24 01:14:56 -04:00