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
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
comex
f81df136c2
Add an explicit error message for outdated GCC, and remove some commented out code.
2013-09-23 15:01:38 -04:00
comex
c8c83f7b8a
Remove FifoQueue iterator and RemoveThreadsafeEvents.
...
No point making a whole iterator class for the sake of a function that
doesn't need to exist.
2013-09-22 23:14:42 -04:00
comex
e82c9e616d
operator= is a function too! std::forward is still appropriate.
...
Fix the potentially unsafe use of std::move I added to FifoQueue.
2013-09-22 21:15:58 -04:00
comex
17e753faf3
Fix FifoQueue's atomicity on ARM.
...
Theoretically.
2013-09-22 16:08:09 -04:00
comex
c3b9f3556f
Make CoreTiming's threadsafe events lock-free.
...
Not sure if this actually helps in practice, but might help in
pathological cases, and almost certainly can't hurt.
2013-09-22 16:08:01 -04:00
comex
7fe440340f
Improve Atomic.h:
...
- For GCC, use intrinsics that will work on ARM.
- Add AtomicExchangeAcquire.
- Make Atomic{Load,LoadAcquire,Store,StoreRelease} work for any suitable type.
2013-09-22 16:07:45 -04:00
comex
6209067daa
Fix stack misalignment fix.
2013-09-22 15:48:27 -04:00
Rachel Bryk
9a6f28fce4
Revert "Fix stack misalignment issues."
...
This reverts commit d334a9bc23
.
This breaks single core.
2013-09-22 14:29:35 -04:00
comex
d334a9bc23
Fix stack misalignment issues.
...
- Call ABI_AlignStack even on x86-64.
- Have ABI_AlignStack respect the difference in current alignment
between the root JIT function, which has a prolog, and
ProtectFunction thunks, which do not. This was causing many games
to crash on start on OS X. Since this might otherwise mean changing
the stack pointer before every call...
- Have one prolog/epilog function rather than two (one of which
definitely did not do what it was thought to do), and make it
actually work like a normal one, so that the stack frame shows up
properly in the debugger. There should be no performance impact.
2013-09-20 16:46:48 -04:00
Lioncash
86d70cee15
Turns out CVTSD2SI in x64Emitter.cpp should actually use 64 bits instead of 32. Thanks for pointing that out hk.konpie.
2013-09-20 14:50:27 -04:00
Ryan Houdek
6fc2117503
[ARM] Enable VMOV to move from double VFP reg to two ARM registers.
2013-09-18 17:21:22 -05:00
Lioncash
d03fb11188
Fix an incorrect opcode for an SSE instruction in x64Emitter.cpp. CVTSD2SI should write 0x2D, not 0xF2.
...
Also format the NormalSSEOps enum.
2013-09-18 07:43:31 -04:00
Ryan Houdek
06062d5744
[ARM] Fix VSQRT/VCMP/VCMPE/VCMPE0/VCMP0 emitters when using the high 16 double registers.
2013-09-17 22:08:23 +00:00
Pierre Bourdon
e34d8aee1d
Add * to the characters leading a verbatim line (used in Gecko codes comments)
2013-09-17 16:50:44 +02:00
Lioncash
38c7d38800
Fix two wrong opcodes in the x64Emitter. PEXTRW and PINSRW were actually writing PCMPGTB opcodes. Thanks for the help Sintendo.
2013-09-16 15:59:31 -04:00
Ryan Houdek
7d410ec95c
[ARM] VRSQRTE NEON emitter.
2013-09-16 12:58:20 +00:00
Ryan Houdek
beb41a8f56
[ARM] Add NEON VORR and fix encoding on NEON VEOR. Remove VMRS_APSR because it is the same as VMRS(PC)
2013-09-16 07:49:16 +00:00
Pierre Bourdon
f0fc611f15
Add a hacky check for text file size in ReadFileToString. Fixes issue 6455.
2013-09-16 06:57:44 +02:00
Pierre Bourdon
037199c326
Look for portable.txt in the exe directory and activate portable mode if it exists
2013-09-16 05:46:07 +02:00
Pierre Bourdon
2c350a5e6b
Fix INIFile ignoring the last line of files
2013-09-16 05:28:14 +02:00
Pierre Bourdon
24e9aedc14
Merge branch 'global-user-directory'
...
Please read https://wiki.dolphin-emu.org/index.php?title=Controlling_the_Global_User_Directory
for documentation about this feature.
Thanks to neobrain and RachelB for their work on this change, and thanks to
everyone who helped test it.
2013-09-14 19:24:27 +02:00
Pierre Bourdon
501eafb407
Overlay local gameinis over global gameinis instead of copying.
...
Huge megacommit because a lot of things needed to be modified to make this
possible.
2013-09-14 17:46:41 +02:00
Ryan Houdek
81d7986202
[ARM] Add LSRS emitters, and ASR{S} register emitters. Fixes encoding in LSR emitter.
2013-09-14 09:06:49 +00:00
Pierre Bourdon
cf4c39d2be
IniFile: Support extending the list of loaded keys and sections with data from other ini files.
...
Changes a lot of parsing code which previously was not aware of the notion of
key/value, and operated only with raw lines. Now key/value is the default and
lines are handled as raw only if they do not contain =, or they start with $ or
+ (for Gecko/AR compatibility).
2013-09-14 06:08:31 +02:00
Pierre Bourdon
aa202c2e21
Move global gameinis from User to Sys. Get rid of SHARED_USER.
2013-09-14 06:08:30 +02:00
Pierre Bourdon
86e765f3eb
Move Themes/ from User to Sys. Only Gameinis remain.
2013-09-14 06:08:30 +02:00
Pierre Bourdon
b587af3ea3
Change the initial user directory creation to stop special casing Windows
2013-09-14 06:08:29 +02:00
Rachel Bryk
dfcef6890e
Use global user directory on windows.
...
Can override by setting HKCU\Software\Dolphin-emu\LocalUserConfig to true.
2013-09-14 06:08:29 +02:00
Jordan Woyak
ef1d33647f
Improve the ArraySize function a bit now that c++11 isn't forbidden there. Error messages should be friendlier now.
2013-09-12 12:57:13 -05:00
comex
b9c1af04ad
Replace the one use of CompileTimeAssert with static_assert (already used elsewhere).
2013-09-11 20:58:47 -04:00
Jordan Woyak
fde3815d34
Replace ARRAYSIZE macro with another ugly macro. At least this will throw an error for a non-array and won't conflict with Windows macro names.
2013-09-11 19:19:36 -05:00
Ryan Houdek
c1aa80cefa
[ARM] Add support for double registers in VMOV(immediate). Add VEOR and VSTR1. Fix some minor encoding bugs.
2013-09-08 21:56:17 +00:00
Ryan Houdek
e6af4970d8
[ARM] Use NEON for loading the values from psq_l, gives a minimal performance increase. This change also begins a new NEONXEmitter for having cleaner support for NEON.
2013-09-08 07:07:15 +00:00
Ryan Houdek
d0d053a9f9
Fix for old libc version on bionic. Old versions would crash if the second argument was NULL.
2013-09-04 02:04:31 -05:00
comex
4c3230bcde
Remove accessType from BackPatch's signature in favor of getting it from DisassembleMov.
...
It isn't easily accessible with sigaction or Mach exceptions (well,
requires an additional system call in the latter), and isn't necessary.
(and get rid of the enum, because it's only used once, and the comments
are more expressive than enum names)
2013-09-02 16:55:22 -04:00
Ryan Houdek
e7157e7c52
[Android] Fix fastmem and enable.
2013-09-02 04:10:21 -05:00
comex
35b8dfbe0c
A few more warnings.
2013-09-01 23:33:35 -04:00
comex
4f5729dd59
MSVC warnings.
2013-09-01 22:59:32 -04:00
comex
fd7cf5bb71
A bunch of trivial changes to fix clang warnings.
2013-09-01 22:58:33 -04:00
comex
a6f6695ecd
Work around MSVC bug, and make it less likely to happen again. Ew.
...
MSVC insisted on using a copy assignment where a move was intended and
ought to be used. This would have been caught, because the class in
question inherits from NonCopyable, which declares a move assignment
operator, which is supposed to delete the implicitly declared copy
assignment operator, but of course MSVC didn't do that either, causing a
class that should have been safe to be unsafe.
2013-09-01 00:04:50 -04:00
comex
04c41c1d38
Fix loading DLC using IOCTL_ES_OPENTITLECONTENT & /dev/es state save.
...
(Intertwined enough that's it's easier to do in one patch.)
(1) /dev/es did not support state save, which could cause crashes and
incorrect behavior after loading.
(2) NANDContentLoader tried to read all of a title's contents into
memory when it was first opened. Two issues:
- If any contents were missing, it bailed out. However, with DLC,
only some of the contents may be downloaded, as determined by the
permission bits in the ticket. Instead, return an appropriate error
when a content is accessed that doesn't exist on the filesystem
(don't bother checking the permission bits though).
- Everything was loaded into memory - even if it consisted of 3 GB of
songs, which caused Dolphin to lag out for quite a while (and would
fail on 32-bit). Instead, open content on demand.
2013-08-31 01:38:52 -04:00
comex
4d6d4a97e4
Make NonCopyable use rvalue references.
...
This is required to be able to move objects that inherit from it.
(Note that this patch also #ifs out the class for the externals that
include it yet are compiled in pre-C++11 mode. It shouldn't matter,
since those externals don't use it.)
2013-08-31 01:38:49 -04:00
Ryan Houdek
710ac04084
[ARM] Fix the VMOV encoding to encode the destination VFP register correctly.
2013-08-30 05:13:43 -05:00
Ryan Houdek
2c1337eb5f
[ARM] Support both hardfp and softfp with lfs and lfd. Fixes these two instructions on Android since it uses softfp calling conventions. This adds a emitter for moving from two ARM Registers to a double VFP reg.
2013-08-30 09:38:11 +00:00
Ryan Houdek
8bb16d8e98
[Android] Android NDK now supports full implementations of std::mutex, std::thread, and std::conditional_variable so there is no need to have our own implementations there now.
2013-08-29 22:29:33 -05:00
comex
2de2e774fe
Use pthread_setname_np.
...
This makes SetCurrentThreadName actually work (name shows up in
debugger) on non-Windows.
2013-08-29 16:30:32 -04:00
Ryan Houdek
160d72a9ae
[Android] Add in a static libiconv library so non English games don't crash Dolphin Mobile.
2013-08-29 04:43:31 -05:00
Matthew Parlane
b34a5faee7
More cleaning.
2013-08-28 01:07:43 +12:00
Matthew Parlane
75c398118f
Fix headings and more.
2013-08-28 00:57:08 +12:00
Matthew Parlane
15f8603d1f
Merge branch 'master' into wii-network
...
Conflicts:
Source/Core/Common/Src/CommonPaths.h
Source/Core/Common/Src/FileUtil.cpp
2013-08-26 00:50:57 +00:00
Rachel Bryk
18749bad68
Actually allow the dump and logs folders to be set outside of user/
2013-08-25 01:35:32 -04:00
Rachel Bryk
8882f89bbc
Allow user folder to be set via command line.
...
Clean up GetUserPath(), to allow setting any path with it.
2013-08-24 23:15:55 -04:00
Pierre Bourdon
73be79f4e0
Fix trailing whitespaces in all files where some were added
2013-08-25 02:49:58 +02:00
Matthew Parlane
b6e054a2be
Merge branch 'master' into wii-network
...
Conflicts:
Source/Core/Core/Core.vcxproj
Source/Core/Core/Core.vcxproj.filters
Source/Core/Core/Src/CoreParameter.cpp
Source/Core/DolphinWX/Dolphin.vcxproj
Source/Core/DolphinWX/Dolphin.vcxproj.filters
2013-08-23 00:51:12 +12:00
Pierre Bourdon
20e82ec08c
Fix the fix to AVX support detection
...
Should be xgetbv(0) & 6 == 6, not just & 6. Thanks to tueidj for pointing this
out.
2013-08-22 01:08:14 +02:00
Ryan Houdek
60ccb2f44d
[Android] Fix Android 4.3 from crashing on my devices. This was annoying to find.
2013-08-21 00:12:53 -05:00
Pierre Bourdon
377202b9f6
Correctly check for AVX support in x64CPUDetect
...
It's not enough to check for the CPUID bit to know if AVX is supported since
AVX requires OS support (new set of registers == more registers to be saved
when context switching). If the OS does not support, the cpuid bit will still
be set but using YMM registers will cause an illegal exception fault.
2013-08-20 01:25:10 +02:00
Ryan Houdek
9bded1382c
[ARM] Add ASR/ASRS and UMULLS emitters.
2013-08-19 06:26:34 +00:00
Ryan Houdek
367f294ed2
[Android] Make sure to unallocate the correct memory size in MemArena.
2013-08-16 04:55:43 -05:00
Matthew Parlane
59e060aba2
Missed some VS build options.
2013-08-16 21:42:31 +12:00
Matthew Parlane
9de7611ff9
Merge branch 'master' into wii-network
...
Conflicts:
CMakeLists.txt
Source/Core/Core/Core.vcxproj
Source/Core/DolphinWX/Dolphin.vcxproj
Source/Core/DolphinWX/Dolphin.vcxproj.filters
Source/Dolphin_2010.sln
Source/VSProps/Dolphin.Win32.props
Source/VSProps/Dolphin.x64.props
2013-08-16 19:17:07 +12:00
Matthew Parlane
d6ec6ae97a
Fix polarssl on Windows.
2013-08-16 00:24:10 +12:00
Matthew Parlane
d8b39b9dcf
Support PolarSSL on *nix
...
Removed unneeded PolarSSL directories.
Remove duplicate sha1 and md5 files.
Define out SSL test file writing.
Fix format string bug and warning.
2013-08-15 23:36:17 +12:00
Matthew Parlane
fede38985e
Replace OpenSSL with PolarSSL
...
Works on windows, not yet cmake.
2013-08-15 20:47:47 +12:00
Jasper St. Pierre
3380e47ca7
MemArena: Free memory for 64-bit machines
...
Make the logic here a lot simpler. Patch contributed by Google Code
user plbl4ster.
2013-08-14 20:34:15 -04:00
Pierre Bourdon
ffdd79df36
Move VideoBackendBase from Common to VideoCommon
2013-08-14 23:16:46 +02:00
Jasper St. Pierre
b5c2737c9f
IniFile: Don't parse comments after the [Section] brackets
...
This is non-standard behavior. We won't fail to parse, but we now
won't write them back out either.
2013-08-11 11:32:10 -04:00
Jasper St. Pierre
0eaea5f4df
IniFile: Remove support for comments anywhere but the beginning of lines
...
The MS INI parser and most other INI parsing libraries APIs only support
comments at the beginning of lines. Right now, some Game INI files use sections
like:
[OnFrame]#Add memory patches here
But these section headers are parsed separately, so this should not break
them.
2013-08-11 11:30:52 -04:00
Jordan Woyak
a279001472
Remove "-0" from stable version numbers in a more foolproof manner for vs and cmake builds.
2013-08-10 17:19:19 -05:00
Rachel Bryk
90d454d22f
Remove -0 from stable release version numbers.
2013-08-08 23:59:53 -04:00
Pierre Bourdon
9ea01aa7a8
Use a multibyte-neutral codepage when calling *printf on Windows.
...
More explanation in code comments.
Fixes issue 4046.
2013-08-09 00:17:48 +02:00
NeoBrainX
72abe7c654
Fix a stack corruption in ExtendedTrace.
...
Fixes issue 6454.
2013-08-08 20:29:20 +02:00
Lioncash
9d0554e4a6
Free two memory leaks in ArmCPUDetect.cpp
...
Char pointers aren't freed after use.
Fixed this in PPSSPP a few days ago. Forgot to check here for the same thing until now.
2013-08-06 18:17:54 -04:00
Ryan Houdek
ca7fb9f38e
[ARM] Fix VCVT F32<->F64 encoding.
2013-08-03 00:48:44 +00:00
Ryan Houdek
ab0f42636d
[ARM] Push new ArmEmitter changes from PPSSPP. Mostly Fixes a few VFP/NEON instruction encodings.
2013-08-02 23:18:44 +00:00
Jasper St. Pierre
52482115e1
Move in-game keybinding handling to a central location
...
Instead of handling it separately in every backend.
2013-07-21 23:17:16 -04:00