Scott Mansell
f84577b90b
LogManager: Move android logcat code into the proper place.
2015-10-04 02:18:06 +13:00
Scott Mansell
5f8a67250f
Bitset: Make bool() operator explicit.
2015-10-04 01:37:32 +13:00
Scott Mansell
18142eddb4
LogManager: Remove unused define.
2015-10-04 00:38:47 +13:00
Scott Mansell
6153424b8c
LogManager: replace set of LogListener pointers with bitset.
...
Mostly so we can iterate over which LogListeners are enabled without
having to aquire a lock.
2015-10-04 00:38:34 +13:00
Scott Mansell
83fa504cd9
Bitset: Make cast overrides const
2015-10-04 00:36:58 +13:00
Scott Mansell
58d893e56f
Merge pull request #3075 from waddlesplash/no-regexp
...
FileSearch: Don't use RegExes, just do string comparisons.
2015-10-02 04:00:23 +13:00
Lioncash
c6678687b0
ChunkFile: Provide additional helpers for C-style arrays
...
Gets rid of magic numbers in cases where the array size is known at compile time.
This is also useful for future entries that are stack allocated arrays as these
functions prevent incorrect sizes being provided.
2015-09-30 19:45:46 -04:00
Tillmann Karras
2f6f30a939
Fix -Wuninitialized warnings
2015-09-29 04:27:27 +02:00
Rohit Nirmal
3b75f45cf6
Fix building with PCH disabled.
2015-09-28 11:51:08 -05:00
ghost
cd19d5392e
SaveState: Fix for race condition ("wait" didn't actually waited for file to flush/close).
...
g_compressAndDumpStateSyncEvent was Set() before destruction of file object (i.e. before flushing changes and closing file).
Also, adds Common::ScopeGuard wrapper for RAII.
2015-09-27 21:40:32 +03:00
waddlesplash
5643fe5d1f
FileSearch: Don't use RegExs, just do string comparisons.
...
Nothing used the RegEx feature of FileSearch, and GCC < 4.9
doesn't support C++11 RegEx properly, so get rid of it.
2015-09-27 13:25:51 -04:00
Lioncash
cc036ca86c
Common: Remove other Common prefixed headers from Common.h
2015-09-26 18:51:58 -04:00
Lioncash
19ac565e0d
Common: Move asserts to their own header
2015-09-26 18:51:27 -04:00
Lioncash
867df74b52
Common: Remove strdup define
...
It's not used anywhere.
2015-09-26 18:50:42 -04:00
Lioncash
1d42db2439
Common: Move NonCopyable to its own header
2015-09-26 18:50:35 -04:00
Lioncash
bb927ad738
Atomic_GCC: Throw out old code
2015-09-26 15:59:36 -04:00
Lioncash
d67ea484f7
Common: Get rid of compiler semantic asserts
...
They were never used.
2015-09-26 15:57:13 -04:00
Tillmann Karras
ac5f56df7e
mbedTLS: adapt Dolphin's Visual Studio files
2015-09-25 03:46:41 +02:00
Lioncash
7890b38c15
x64Emitter: Remove unimplemented function prototype in OpArg
2015-09-22 19:54:46 -04:00
Lioncash
6e5f60bab7
x64Emitter: Make single argument constructor explicit
2015-09-22 19:51:14 -04:00
Scott Mansell
c9836ff592
EGL: Don't depend on VideoCommon or Core
2015-09-22 00:36:48 +12:00
Scott Mansell
72249b8085
GLX: Don't depend on Core or VideoCommon
2015-09-22 00:36:47 +12:00
Scott Mansell
01ed925fec
AGL: Don't depend on VideoCommon
2015-09-22 00:36:46 +12:00
Scott Mansell
93f6563789
WGL: Don't depend on Core/VideoCommon
2015-09-22 00:36:45 +12:00
Scott Mansell
95f3c956a8
Move GL interface code out of the OpenGL video backend.
2015-09-22 00:36:45 +12:00
CastellaFactory
1f83a3d146
[Netplay:Traversal] Add "Force Netplay Listen Port" feature that was in old netplay branch
2015-09-20 20:15:13 +09:00
Lioncash
cfa43f64bf
x64Emitter: Remove pointer cast
...
No more ubsan asserts in the JIT and x64 emitter code paths when running starfield.
2015-09-17 09:35:13 -04:00
Tillmann Karras
b8f3519e49
Fix -Wunused-private-field warning
2015-09-16 23:31:53 +02:00
Lioncash
2c5c99ec71
Common: Get rid of a few pointer casts
2015-09-15 12:28:59 -04:00
Lioncash
56560403bd
BreakPoints: Remove unimplemented function declarations
2015-09-14 11:50:34 -04:00
Ryan Houdek
f121d7a8cd
Merge pull request #3026 from lioncash/constexpr
...
MathUtil: Make Clamp and IsPow2 constexpr functions.
2015-09-12 02:28:38 -04:00
Lioncash
3f4852a03d
MathUtil: Convert IsPow2 into a constexpr function
2015-09-12 01:26:05 -04:00
Lioncash
b9e360df7b
MathUtil: Convert Clamp into a constexpr function
2015-09-12 01:18:28 -04:00
Tillmann Karras
63c9fdd074
VertexLoaderX64: fix 2GB warnings
...
Unlike the CPU JIT, the vertex loader JIT already emits
position-independent code, so all we need to do is disable the warning.
2015-09-12 01:24:47 +02:00
flacs
c5685ba53a
Merge pull request #2972 from lioncash/align
...
General: Replace GC_ALIGN macros with alignas
2015-09-11 17:00:13 +00:00
Lioncash
19459e827f
Partially revert "General: Toss out PRI macro usage"
2015-09-11 09:49:00 -04:00
Scott Mansell
ef4974b6a2
Remove unused log type.
2015-09-10 18:39:32 +12:00
Scott Mansell
0ed1e977cc
Rearrange the logtypes into something closer to alphabetical order.
...
Also fix up a few of the long names.
2015-09-10 18:39:08 +12:00
Scott Mansell
de9310fe70
Split OpenGL errors into a separate logtype from Video errors.
...
Allows them to be enabled/disabled separately.
2015-09-10 18:38:45 +12:00
flacs
0c381d6547
Merge pull request #2975 from lioncash/emit
...
x64Emitter: Simplify/compress some conditionals
2015-09-08 18:44:54 +00:00
Markus Wick
81c07d4919
Merge pull request #2990 from lioncash/noncopy
...
Common: Alter semantics of the NonCopyable mixin
2015-09-08 11:08:58 +02:00
Ryan Houdek
2ad26ab3e9
[AArch64] Fix Test&Branch to relative location instructions.
...
Wasn't masking by the size of the offset encoding so negative values were killing the instruction
Missed commiting this in my integer gatherpipe PR.
Fixes crashing on AArch64.
2015-09-07 13:38:58 -05:00
Lioncash
53465e329a
Common: Alter semantics of the NonCopyable mixin
...
Uses delete to make the unimplemented functions detectable at compile time
and not link time if they are used.
The move constructor and assignment operator are removed as moves are not
copies, but transfers of ownership, which isn't suited for this class.
2015-09-06 13:45:08 -04:00
Lioncash
f194ee6223
x64Emitter: Simplify/compress some conditionals
2015-09-06 13:28:36 -04:00
Lioncash
8ce04f9a65
General: Replace GC_ALIGN macros with alignas
...
Standard supported alignment -> out with compiler-specific.
2015-09-06 12:53:51 -04:00
Scott Mansell
be4caa3dc0
Merge pull request #2961 from lioncash/printf
...
General: Toss out PRI macro usage
2015-09-06 21:02:22 +12:00
Scott Mansell
d52d8bf935
Merge pull request #2982 from lioncash/unique
...
Common: Remove StdMakeUnique.h
2015-09-06 21:01:48 +12:00
Lioncash
4fc71e9708
Common: Remove StdMakeUnique.h
2015-09-06 04:09:53 -04:00
Scott Mansell
a26cac87fc
Merge pull request #2959 from rohit-n/build-pch
...
Fix building with PCH disabled.
2015-09-06 19:59:49 +12:00
Lioncash
633be0387d
General: Remove unimplemented function prototypes
2015-09-05 22:01:07 -04:00
Lioncash
8fdb013d54
General: Toss out PRI macro usage
...
Now that VS supports more printf specifiers, these aren't necessary
2015-09-05 16:02:35 -04:00
Rohit Nirmal
8aed7589ae
Fix building with PCH disabled.
2015-09-04 10:34:45 -05:00
Lioncash
0d0dd075ef
CommonFuncs: Remove define for snprintf
...
VS 2015 implements snprintf
2015-09-04 03:13:02 -04:00
Lioncash
a11ae2cf30
CommonFuncs: Remove SLEEP macro
...
There's already a function in Thread for this.
2015-09-04 02:43:38 -04:00
shuffle2
272302be82
Merge pull request #2950 from lioncash/bf
...
BitField: Enable ifdef'd out code for Windows
2015-09-03 22:56:55 -07:00
Lioncash
3f1b488a12
CommonFuncs: Replace ArraySize define with constexpr equivalent
2015-09-03 23:47:14 -04:00
Lioncash
102a2a975d
BitField: Enable ifdef'd out code for Windows
2015-09-03 22:06:15 -04:00
Shawn Hoffman
66a3951c3b
[windows] Add workaround(HACK) for vs2015 implementating a conformant std::is_trivially_copyable...
...
see https://github.com/dolphin-emu/dolphin/pull/2218
2015-09-03 04:39:06 -07:00
Shawn Hoffman
bea18eedc4
[windows] remove various workarounds which were required for vs2013
2015-09-03 04:39:05 -07:00
Shawn Hoffman
30702c17b6
[windows] When making scmrev.h, also look for msysgit explicitly. VS2015 packages it.
2015-09-03 04:39:04 -07:00
Shawn Hoffman
aa7208e270
[windows] Update projects to vs2015.
2015-09-03 04:23:01 -07:00
Ryan Houdek
d495ad5104
[AArch64] Make TST reg, reg emitter alias
2015-08-31 14:03:32 -05:00
Ryan Houdek
d003934b8a
Merge pull request #2929 from Sonicadvance1/aarch64_optimize_gpr_flush
...
Aarch64 optimize gpr flush
2015-08-31 10:55:45 -05:00
Ryan Houdek
f2c17436ab
[AArch64] Fix issue in emitter.
...
Loadstore pairs support only signed offsets, not unsigned.
2015-08-30 23:05:59 -05:00
Ryan Houdek
b907576510
[AArch64] Support profiling by cycle counters if they are available to EL0
2015-08-30 10:25:16 -05:00
Lioncash
310bb46967
Hash: Narrow define scope
2015-08-29 02:57:35 -04:00
Markus Wick
54f882704a
Merge pull request #2914 from JosJuice/fix-volumedirectory
...
Fix VolumeDirectory
2015-08-26 22:12:23 +02:00
JosJuice
d276d1abbb
Fix VolumeDirectory
...
Fixes the regression from a225426
and clarifies a related comment.
2015-08-26 19:21:09 +02:00
Tillmann Karras
ee4a12ffe2
Jit64: some byte-swapping changes
2015-08-26 05:41:18 +02:00
flacs
6015e2d812
Merge pull request #2900 from aroulin/x64emitter-rcp
...
x64Emitter: add RCPPS and RCPSS SSE instructions
2015-08-26 05:05:53 +02:00
Ryan Houdek
4fa23abbe1
[AArch64] Implement MOVI and ORR(imm) in the NEON emitter.
2015-08-23 15:34:53 -05:00
aroulin
0a0e012fab
x64Emitter: add RCPPS and RCPSS SSE instructions
2015-08-23 16:59:27 +02:00
Ryan Houdek
cc3fb7e7b4
Merge pull request #2883 from degasus/master
...
Profiler: Sort output by total time
2015-08-22 17:52:54 -05:00
Lioncash
a69755d9ee
x64Emitter: Remove pointer casts from Write{8,16,32,64} functions
...
This also silences quite a few ubsan asserts from firing when the emitter is being used.
2015-08-21 18:09:48 -04:00
Lioncash
caec42135d
MathUtil: Remove IsNAN and IsINF
...
These aren't necessary, since the stdlib provides equivalents.
2015-08-21 15:05:43 -04:00
Lioncash
a59f00a5e4
x64Emitter: Remove unused code
2015-08-20 23:05:20 -04:00
Lioncash
b903921b14
x64Emitter: Make WriteModRM and WriteSIB private
...
These shouldn't be public.
2015-08-20 19:29:40 -04:00
degasus
17932935d9
Profiler: Sort output by total time
2015-08-20 11:50:43 +02:00
Lioncash
822cf2bcbf
IniFile: Mark getter functions as const
2015-08-19 22:27:18 -04:00
flacs
b0c9d73465
Merge pull request #2842 from Tilka/bmi2_flags
...
x64Emitter: don't check flags for most BMI2 ops
2015-08-19 21:38:09 +02:00
degasus
9bfff0d461
JitArm64: Fix jit clearing
...
We have to reset m_lastCacheFlushEnd on clearing.
2015-08-15 11:41:01 +02:00
Tillmann Karras
022286fb90
x64Emitter: don't check flags for most BMI2 ops
...
With the exception of BZHI, BMI2 instructions don't affect flags, so
don't check if they're locked.
2015-08-14 23:39:17 +02:00
Tillmann Karras
5e9fe4cd13
x64Emitter: check for immediates in BMI ops
2015-08-14 21:25:41 +02:00
degasus
878f919f63
JitArm64: Fastmem: fixup map & lookup
2015-08-14 11:24:03 -05:00
Ryan Houdek
d5c99a5b48
Add support for a CodeBlock holding a child.
...
This is required to make sure two code spaces are relatively close to one another.
In this case I need the AArch64 JIT codespace and its farcode space to be within 128MB of one another for branches.
2015-08-12 12:57:06 -05:00
Lioncash
144ea9f4aa
Arm64Emitter: Fix encoding of '2-reg misc' variant of FCMEQ
2015-08-10 19:48:36 -04:00
Ryan Houdek
922d476dab
[AArch64] Fix FCMGE instruction encoding.
...
Fixes a crash when ps_sel is used (PSO 1&2 intro movies).
2015-08-09 14:54:55 -05:00
Tillmann Karras
439fb26b9b
x64Emitter: add MOVSLDUP/MOVSHDUP
2015-08-06 10:39:43 +02:00
flacs
0aad44c980
Merge pull request #2753 from Tilka/fix_warnings
...
Fix some warnings
2015-08-04 18:54:31 +02:00
Tillmann Karras
5a05187b3b
Fix some warnings
...
reorder, sign-compare, pessimizing-move
2015-08-04 10:58:24 +02:00
Lioncash
3a450f72f8
CPUDetect: Remove a memset call on the this pointer
2015-07-28 23:44:18 -04:00
skidau
ad68de59bc
Merge pull request #2665 from AdmiralCurtiss/relative-memory-card-paths
...
GameCube Config: Store paths relatively when selected file is within Dolphin's directory. (Windows)
2015-07-20 14:09:36 +10:00
degasus
6f38d1baa1
CodeBlock: Add a shared IsAlmostFull function
...
This function shall keep care about the low watermark of code space.
If we ran out of space, the JITs shall clear their block cache.
2015-07-15 08:53:05 +02:00
degasus
b8dd68beef
JitArm64: Far Code Cache
2015-07-12 09:41:32 +02:00
Yuri Kunde Schlesner
5c264281eb
Common: Remove redundant masking in BitField
...
For the signed case, the shifts already remove the rest of the value, so ANDing by the mask is redundant.
2015-07-11 22:30:01 -04:00
Yuri Kunde Schlesner
c334a6ca65
Common: Fix mask generation in BitField
2015-07-11 22:28:09 -04:00
Admiral H. Curtiss
e9b3f1154d
IniFile: Use a formatting for floats that makes them survive round-trips to a decimal string and back in all cases.
...
See https://randomascii.wordpress.com/2012/03/08/float-precisionfrom-zero-to-100-digits-2/
2015-07-11 21:12:06 +02:00
Admiral H. Curtiss
a48f2add68
StringUtil: Always use the default C locale for StringFromFormat() instead of a system-specific one.
2015-07-11 16:30:32 +02:00
Rohit Nirmal
c38ae5236e
Fix building with PCH disabled.
2015-07-08 13:52:43 -05:00
Jeffrey Pfau
c9a25f9484
Common: CallLambdaTrampoline can return a value
...
As it is currently written, CallLambdaTrampoline does not return a
value. However, some of the functions that are being wrapped may
return a value that the JIT is expected to understand. A compiler
*cough cough clang* may opt to alter %rax after the wrapped lambda
returns, e.g. popping a previous value, which can clobber the
return value. If we actually have a return value, then the compiler
must not clobber it.
2015-07-04 00:57:41 -07:00
Lioncash
d09d59007a
Arm64Emitter: Add a missing const specifier for an array table
2015-07-02 11:09:44 -04:00
Ryan Houdek
b174f99b17
Merge pull request #2662 from Tilka/interpreter
...
Interpreter: turn SNaNs into QNaNs
2015-07-01 01:09:43 -05:00
Ryan Houdek
afc3d30f5c
[AArch64] Implement BFI & UBFIZ in the emitter.
...
Also fixes a bug in the UBFX instruction emitter. Naughty Naughty PPSSPP, not testing emitter functions you add.
2015-06-29 19:00:22 -05:00
Lioncash
daa205990f
Use emplace() instead of insert() where applicable for maps.
2015-06-28 19:52:40 -04:00
Admiral H. Curtiss
df70f50fdf
GetExeDirectory() shouldn't return paths with /../ in the middle.
2015-06-26 23:51:40 +02:00
Tillmann Karras
b78310bbe5
Interpreter: simplify fres
2015-06-26 09:29:18 +02:00
Jules Blok
da7ec75350
Merge pull request #2643 from comex/fix-do-file-search
...
Fix DoFileSearch returning the passed-in directories themselves.
2015-06-25 15:20:16 +02:00
Tillmann Karras
a725c06425
Logging: trigger _assert_() in release builds
2015-06-24 15:16:55 +02:00
Tillmann Karras
5b23182793
Common: drop GEKKO define
...
Afaict, it was used to build parts of Dolphin with DSPSpy, but that's
been broken forever, so lets clean up a little bit.
2015-06-24 12:13:41 +02:00
Tillmann Karras
de3c01dc2a
x64FPURoundMode: fix comments
2015-06-23 02:17:36 +02:00
comex
acd6cb79a4
Fix DoFileSearch returning the passed-in directories themselves.
...
Fixes https://code.google.com/p/dolphin-emu/issues/detail?id=8697&can=3
2015-06-21 16:07:56 -04:00
Lioncash
fa7d93690e
Hash: Remove the HashFNV prototype
...
It has no function definition.
2015-06-20 21:23:25 -04:00
Ryan Houdek
87b45de634
Merge pull request #2606 from Sonicadvance1/aarch64_optimize_psq_st
...
[AArch64] Optimize paired quantized stores.
2015-06-14 19:03:50 -05:00
Matthew Parlane
6d9711c02c
Merge pull request #2599 from Sonicadvance1/aarch64_clean_cpudetect
...
[AArch64] Clean up our CPUDetect.
2015-06-14 15:19:03 +10:00
Jeffrey Pfau
b6d1512587
Common: Use more portable invocation of shm_open
2015-06-13 21:52:47 -07:00
Jeffrey Pfau
7085fcc8d6
Fix FreeBSD build
2015-06-13 21:52:47 -07:00
Ryan Houdek
5dc148159f
[AArch64] Implement {U, S}QXTN{,2}
...
Also split out XTN to XTN and XTN2.
2015-06-13 23:16:17 -05:00
Matthew Parlane
f32cede086
Revert "x64: build a Position-Independent Executable (PIE)"
2015-06-14 16:06:26 +12:00
Lioncash
74b359e390
Arm64Emitter: Remove unused variable from EncodeLoadStoreRegisterOffset
2015-06-13 14:27:15 -04:00
Ryan Houdek
0af5bdcf1d
[AArch64] Clean up our CPUDetect.
...
Drops ARMv7 feature detection.
2015-06-13 08:04:23 -05:00
Ryan Houdek
3d2b116323
[AArch64] Implement a couple instructions in the emitter.
...
Implements LD2R.
Implements LD1R/LD2R with post-indexing support.
Implements vector min/max instructions.
2015-06-09 18:10:56 -05:00
Tony Wasserka
6833c203a6
Make make_scmrev.h.js recognize "stable" as a stable branch.
2015-06-09 20:03:25 +02:00
Jules Blok
d5788f75a3
Merge pull request #2533 from degasus/syncgpu
...
Fifo: Rewrite SyncGPU
2015-06-09 09:43:26 +02:00
Fog
519d2549dd
Fix File Extension Search Being Case Sensitive
2015-06-08 21:39:00 -04:00
Ryan Houdek
ffe085f5ea
[AArch64] Implement CRC32 texture hashing.
...
In a particular hashing heavy scene in Crazy Taxi the Murmur3 hash used 3.11% CPU time.
The new CRC32 hash in the same scene used 1.86%
This was tested on a Nvidia SHIELD Android TV with Cortex-A57s.
This will be a bit slower on the Nexus 9, the Denver CPU core is a bit slower with CRC32 texture hashing than Murmur3 texture hashing.
2015-06-08 19:16:50 -05:00
degasus
d31bed8b79
Fifo: Rewrite SyncGpu
...
The new implementation has 3 options:
SyncGpuMaxDistance
SyncGpuMinDistance
SyncGpuOverclock
The MaxDistance controlls how many CPU cycles the CPU is allowed to be in front
of the GPU. Too low values will slow down extremly, too high values are as
unsynchronized and half of the games will crash.
The -MinDistance (negative) set how many cycles the GPU is allowed to be in
front of the CPU. As we are used to emulate an infinitiv fast GPU, this may be
set to any high (negative) number.
The last parameter is to hack a faster (>1.0) or slower(<1.0) GPU. As we don't
emulate GPU timing very well (eg skip the timings of the pixel stage completely),
an overclock factor of ~0.5 is often much more accurate than 1.0
2015-06-08 23:16:24 +02:00
Ryan Houdek
3a3b782f3c
[AArch64] Detect AES/SHA1/SHA2/CRC32 in CPUDetect.
2015-06-08 01:20:24 -05:00
Ryan Houdek
59e2225f7d
Remove ARMv7 support.
2015-06-07 22:44:13 -05:00
Ryan Houdek
e8ae0f8c3c
Merge pull request #2562 from Sonicadvance1/aarch64_optimize_gatherpipe
...
[AArch64] Optimize gatherpipe stores
2015-06-07 23:23:11 -04:00
Ryan Houdek
8c2e5e2860
Merge pull request #2555 from Sonicadvance1/aarch64_rebase_ppsspp_emitter
...
[AArch64] Upstream PPSSPP's emitter changes.
2015-06-07 23:23:04 -04:00
Ryan Houdek
c79dd40e72
Merge pull request #2529 from JosJuice/ini-skip-bom
...
Skip reading UTF-8 BOM at the beginning of INI files
2015-06-07 23:13:53 -04:00
Matthew Parlane
9e1aab663f
Revert "SDL: handle SDL_QUIT event"
2015-06-08 13:43:39 +12:00
Ryan Houdek
8ae12d8005
[AArch64] Add ASIMD LDR/STR with register offset
2015-06-07 19:53:05 -05:00
Ryan Houdek
05b72c5d31
[AArch64] Upstream PPSSPP's emitter changes.
...
Requires a minor change to in the JIT to make sure everything still works.
2015-06-07 19:50:21 -05:00
Ryan Houdek
588de63f9c
Merge pull request #2141 from Tilka/position_cache
...
zfreeze: cache vertex positions
2015-06-07 16:44:40 -04:00
flacs
cab9f7b4da
Merge pull request #2548 from endrift/jit-nulls
...
Common: Add null checks when adding and removing breakpoints
2015-06-07 12:44:41 +02:00
Tillmann Karras
5ddd2cef6c
zfreeze: cache vertex positions
...
Suggested by degasus.
2015-06-07 12:13:00 +02:00
Jeffrey Pfau
1214161ad9
Common: Add null checks when adding and removing breakpoints
2015-06-07 03:03:35 -07:00
flacs
d3e47dfcf5
Merge pull request #2496 from Tilka/fma4
...
Jit64: add FMA4 support to fmaddXX
2015-06-06 17:31:55 +02:00
flacs
726fc58b49
Merge pull request #2531 from lioncash/vs
...
Common: Fix a typo in the VS project file.
2015-06-06 07:18:22 +02:00
Lioncash
3239a204db
Common: Fix typos in BlockingLoop.h
2015-06-05 23:37:37 -04:00
Tillmann Karras
9ec5a4544f
SDL: handle SDL_QUIT event
...
Using SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS which installs a signal
handler for SIGINT and SIGTERM. There will be a way to prevent this in
2.0.4 but for now we'll need to handle SDL_QUIT.
2015-06-05 19:34:06 +02:00
Lioncash
da9a858dcb
Common: Fix a typo in the VS project file
2015-06-05 13:27:14 -04:00
JosJuice
990d61b786
Skip reading UTF-8 BOM at the beginning of INI files
2015-06-05 18:32:58 +02:00
Lioncash
fe77505d4d
Jit: Make IsInCodeSpace() const
2015-06-04 20:52:53 -04:00
Lioncash
4f276ede0f
Arm64Emitter: Make GetReg() const
2015-06-04 20:43:22 -04:00
Tillmann Karras
d4538c762f
MemoryUtil: get executable pages near static data
...
and clean up a bit.
2015-06-03 21:44:31 +02:00
Tillmann Karras
a0597f0d62
Jit64: turn 32 bit addresses into offsets
2015-06-03 21:44:31 +02:00
comex
0c5aa54606
Merge pull request #2470 from degasus/syncgpu
...
Common: Blocking Loop (extracted from Fifo.cpp)
2015-06-02 20:19:00 -04:00
comex
35ca27f1cd
Fix bug where Gecko codes would be "enabled by default"
...
Actually caused by IniFiles::GetLines leaving the output vector in its
old state if the section wasn't found, and Gecko::LoadCodes not checking
the return value. Fix by moving lines->clear() up.
2015-06-02 19:04:04 -04:00
comex
a3b3f0522b
Merge pull request #1556 from comex/project-moration
...
Rudimentary version of Wii IPC determinism. Ported from my old udpnet branch.
2015-06-02 18:38:19 -04:00
Tillmann Karras
8db6588bb9
XEmitter: add FMA4 instructions
2015-06-02 19:19:52 +02:00
flacs
d36df5b1b4
Merge pull request #2468 from JosJuice/honor-logging-startup
...
Honor logging settings at startup
2015-06-01 23:56:15 +02:00
Ryan Houdek
210d7c4d54
Merge pull request #2486 from Tilka/x86_32
...
Jit64: drop more x86_32 left-overs
2015-05-31 13:06:19 -04:00
Tillmann Karras
eb057d49a0
x64Emitter: drop duplicate enum & unused wrappers
...
Keep the more explicit version of the two SSECompare enums.
And the unused CMP* wrappers wouldn't exactly make the code more
readable anyway.
2015-05-31 08:32:31 +02:00
Tillmann Karras
a6004f8274
Jit64: drop more x86_32 left-overs
2015-05-31 05:28:40 +02:00
degasus
bfa61105d5
Common: Update BlockingLoop to only use one atomic.
...
This merges two atomic<bool> into one atomic<int>.
We did move the bit from one bool to another, now we can use operator--.
2015-05-30 12:58:09 +02:00
degasus
02a3a063c3
Fifo: Extract syncing loop
...
It's now a new helper function within common.
2015-05-30 12:58:09 +02:00
Lioncash
e3a6191f02
x64Emitter: Pass some OpArg parameters by const reference
...
Considering OpArg is a struct, passing by value creates unnecessary copies.
2015-05-29 01:13:29 -04:00
Lioncash
810a04db58
x64Emitter: Remove 'Gen::' namespace prefix from some parameters
...
The emitter is already within the Gen namespace, so this isn't necessary.
2015-05-29 01:05:09 -04:00
Lioncash
84ed196c14
x64Emitter: Adjust position of reference and pointer indicators
...
Matches the coding style.
2015-05-29 01:04:45 -04:00
comex
45b07cbdcd
Fix determinism issues with Wiimote netplay.
...
- Change the Wiimote emulation SYSCONF R/W to use the temporary NAND if in use.
- Fix up SysConf API so this actually works.
Kind of a hack. Like I said, this can be cleaned up when configuration
is synced...
2015-05-28 19:19:00 -04:00
comex
dc91e8b607
Add a mode to use a dummy Wii NAND.
...
Eventually, netplay will be able to use the host's NAND, but this could
still be useful in some cases; for TAS it definitely makes sense to have
a way to avoid using any preexisting NAND.
In terms of implementation: remove D_WIIUSER_IDX, which was just WIIROOT
+ "/", as well as some other indices which are pointless to have as
separate variables rather than just using the actual path (fixed, since
they're actual Wii NAND paths) at the call site. Then split off
D_SESSION_WIIROOT_IDX, which can point to the dummy NAND directory, from
D_WIIROOT_IDX, which always points to the "real" one the user
configured.
2015-05-28 19:14:42 -04:00
comex
a0a80c9a9c
Fix CopyDir to not require source and dest paths to end with "/".
2015-05-28 19:14:42 -04:00
comex
a225426510
Rewrite FileSearch and improve ScanDirectoryTree.
...
- FileSearch is now just one function, and it converts the original glob
into a regex on all platforms rather than relying on native Windows
pattern matching on there and a complete hack elsewhere. It now
supports recursion out of the box rather than manually expanding
into a full list of directories in multiple call sites.
- This adds a GCC >= 4.9 dependency due to older versions having
outright broken <regex>. MSVC is fine with it.
- ScanDirectoryTree returns the parent entry rather than filling parts
of it in via reference. The count is now stored in the entry like it
was for subdirectories.
- .glsl file search is now done with DoFileSearch.
- IOCTLV_READ_DIR now uses ScanDirectoryTree directly and sorts the
results after replacements for better determinism.
2015-05-28 19:14:42 -04:00
JosJuice
6fb8ce58d6
Honor logging settings at startup
...
https://code.google.com/p/dolphin-emu/issues/detail?id=7959
2015-05-28 09:28:23 +02:00
Matthew Parlane
3135b4f3e4
Merge pull request #2461 from lioncash/barrier
...
Thread: Remove unused Barrier class
2015-05-27 13:21:14 +10:00
Lioncash
23c11b3f27
Thread: Remove unused Barrier class
2015-05-26 19:25:59 -04:00
degasus
ebad10f2a1
Common: Fix IsTriviallyCopyable macro for GCC 5
...
Based on quarthex's patch in PR #2440
2015-05-26 19:50:14 +02:00
Markus Wick
a6412fb41e
Merge pull request #2162 from degasus/prefetch_tex
...
CustomTexture: prefetch all available textures
2015-05-26 13:30:26 +02:00
Markus Wick
5d3a248811
Merge pull request #2455 from lioncash/fifo
...
FifoQueue: Use atomics instead of volatile members
2015-05-26 12:26:36 +02:00
Lioncash
de5038849e
FifoQueue: Use atomics instead of volatile members
2015-05-26 05:34:47 -04:00
Rohit Nirmal
dbe54e63ed
Fix building with PCH disabled.
2015-05-25 22:26:43 -05:00
Ryan Houdek
7c04c76a26
Merge pull request #2421 from Tilka/jit_stuff
...
Jit64: fixes + less code
2015-05-25 23:08:24 -04:00
Ryan Houdek
69963dc4b0
Merge pull request #2274 from degasus/disable_bbox
...
Disable bbox
2015-05-25 08:46:12 -04:00
Tillmann Karras
30ebb2459e
Set copyright year to when a file was created
2015-05-25 13:22:31 +02:00
Tillmann Karras
cefcb0ace9
Update license headers to GPLv2+
2015-05-25 13:22:31 +02:00
Tillmann Karras
268f52e054
Add missing license headers
2015-05-25 13:11:47 +02:00
Tillmann Karras
6d9986846c
Simplify some more license headers
2015-05-25 13:11:41 +02:00
degasus
ac0e304159
Jitregister: fix common-core dependency
2015-05-25 09:33:34 +02:00
Lioncash
88e1850231
GekkoDisassembler: Fix typecast for the second printf param for mtfsf
2015-05-24 01:54:04 -04:00
Lioncash
612118e8e5
GekkoDisassembler: Fix disassembly of mtfsf's FM field
2015-05-24 01:51:07 -04:00
Tillmann Karras
6593ba7ecc
XEmitter: add BLENDPS/BLENDPD
2015-05-21 12:33:36 +02:00
Tillmann Karras
ad6b522c3b
XEmitter: fix L bit in VEX prefix
2015-05-20 09:34:27 +02:00
Fiora
22317ac74c
Merge pull request #2417 from Tilka/vex
...
XEmitter: VEX-related cleanup
I'm merging this solely because of the FMA3 error message
2015-05-18 16:23:23 -07:00
Tillmann Karras
c2c31086ae
XEmitter: restructure WriteVEXOp wrappers
2015-05-17 18:44:56 +02:00
Tillmann Karras
ae8efaa6a3
XEmitter: add VBLENDVPD and VCMPPD
2015-05-17 18:42:36 +02:00
Tillmann Karras
18e9241637
XEmitter: rename WriteVex to WriteVEX
2015-05-17 09:35:53 +02:00
Tillmann Karras
9e3f4df733
XEmitter: rename WriteRex to WriteREX
2015-05-17 09:35:53 +02:00
degasus
562b9d4a9f
VideoCommon: Abort texture prefetching on low RAM
...
There is no nice way to correctly "detect" the "used" memory, so we just say
we're fine to use 50% of the physical memory for custom textures.
This will fix out-of-memory crashes, but we still might run into swapping issues.
2015-05-16 15:39:36 +02:00
Tillmann Karras
7f57e27a65
x64CPUDetect: fix AVX2/BMI1/BMI2/HTT detection
...
On non-Windows platforms, ECX was not being initialized to 0.
2015-05-14 23:14:34 +02:00
Ryan Houdek
379f9feebd
Fix non-PCH build.
2015-05-10 20:16:05 -05:00
Lioncash
76bbd46829
Core: Remove some header inclusions in header files
...
Replaces them with forward declarations of used types, or removes them entirely if they aren't used at all. This also replaces certain Common headers with less inclusive ones (in terms of definitions they pull in).
2015-05-08 22:38:59 -04:00
comex
2264e7b087
Use a fake exception to exit early in case of memory breakpoints.
...
Change TMemCheck::Action to return whether to break rather than calling
PPCDebugInterface::BreakNow, as this simplified the implementation; then
remove said method, as that was its only caller. One "interface" method
down, many to go...
2015-04-24 22:37:54 -04:00
comex
b84f6a55ab
Automatically disable fastmem and enable memcheck when there are any watchpoints.
...
- Move JitState::memcheck to JitOptions because it's an option.
- Add JitOptions::fastmem; switch JIT code to checking that rather than
bFastmem directly.
- Add JitBase::UpdateMemoryOptions(), which sets both two JIT options
(replacing the duplicate lines in Jit64 and JitIL that set memcheck
from bMMU).
- (!) The ARM JITs both had some lines that checked js.memcheck
despite it being uninitialized in their cases. I've added
UpdateMemoryOptions to both. There is a chance this could make
something slower compared to the old behavior if the uninitialized
value happened to be nonzero... hdkr should check this.
- UpdateMemoryOptions forces jo.fastmem and jo.memcheck off and on,
respectively, if there are any watchpoints set.
- Also call that function from ClearCache.
- Have MemChecks call ClearCache when the {first,last} watchpoint is
{added,removed}.
Enabling jo.memcheck (bah, confusing names) is currently pointless
because hitting a watchpoint does not interrupt the basic block. That
will change in the next commit.
2015-04-24 22:37:53 -04:00
comex
b3aaa46d42
Merge pull request #2088 from Sintendo/diecmp
...
Emit 'TEST reg, reg' for 'CMP reg, 0' automatically
2015-04-23 16:34:23 -04:00
comex
ad95454d04
Merge pull request #2223 from phire/imm
...
Cleanup OpArg, make immediates more explicit.
2015-04-23 01:53:18 -04:00
Lioncash
b0613bb1c8
General: Apply the const specifier where applicable
2015-04-15 02:04:03 -04:00
comex
5fff97f3f4
Fix printf width in TraversalServer.
2015-04-13 02:26:52 -04:00
degasus
ef6bdf674f
Common: Remove TLS usage in GetLastErrorMsg
...
Just return std::string as this code isn't performance critical.
2015-04-07 22:42:21 +02:00
Jordan Cristiano
4051da75e4
Made cycle count atomic to avoid using a mutex
2015-03-31 04:09:33 -04:00
Lioncash
eacf741051
DolphinWX/Common: Change some find_first_of usages to find
...
It's unnecessary to use find_first_of when all you're searching for is a single character.
2015-03-24 08:32:44 -04:00
Sintendo
c19482c9a3
Add function to emit CMP, or TEST when possible
...
Also, a spelling mistake.
2015-03-22 17:22:27 +01:00
magumagu
52aeab3d0e
Merge pull request #2240 from lioncash/emitter
...
x64Emitter: Remove emitter pointer parameter from WriteNormalOp.
2015-03-20 22:09:11 -07:00
Lioncash
fab7add718
x64Emitter: Remove emitter pointer parameter from WriteNormalOp.
...
It only ever passed the equivalent of the class' this pointer. May as well get rid of it.
2015-03-20 23:28:36 -04:00
skidau
39c41f5c70
Merge pull request #2192 from Tilka/sse2
...
VertexLoaderX64: support SSE2 as a fallback
2015-03-21 12:58:24 +11:00
magumagu
31add72dee
Merge pull request #2237 from lioncash/round
...
x64FPURoundMode: Make a look-up table static
2015-03-19 10:59:22 -07:00
Lioncash
e57201eb71
x64FPURoundMode: Make a look-up table static
...
Since it's only a look-up table, this doesn't need to be recreated every time the function is called.
2015-03-19 09:07:36 -04:00
Tillmann Karras
9793fed742
XEmitter: add PUNPCKLQDQ
2015-03-18 12:09:06 +01:00
mathieui
8201a52cec
Traversal: Use a decent PRNG instead of rand()
...
we don’t need cryptosecure random, but having a uniform distribution is
always better.
2015-03-18 10:16:11 +01:00
mathieui
e0ef8fc03f
NetPlay: Make the enet interrupts work
...
Otherwise, it would work but any async sending would be delayed by 4ms or
wait until the next packet was received.
Also increase the client timeout to 250ms, since enet_host_service is now
really interrupted.
2015-03-18 10:16:11 +01:00
mathieui
44d7207a1c
NetPlay: add a Common/ENetUtil namespace
...
Move WakeupThread in it
2015-03-18 09:23:44 +01:00
Ryan Houdek
297012ddd7
Fix Wii configuration path being incorrect.
...
On loading the NANDRoot from the config, if it isn't set it will still attempt to be set.
So on the invalid empty path, just don't set it.
2015-03-17 21:27:40 -05:00
Scott Mansell
858ff69c01
Make OpArg.offset and operandReg private.
...
Also cleaned up WriteRest function.
2015-03-17 18:49:30 +13:00
Scott Mansell
6262a9bcbe
Make immediates more explicit
...
Instead of just casting OpArg::offset when needed, add some
accessor functions.
Also add some safety asserts to catch any mistakes.
2015-03-17 18:49:26 +13:00
Lioncash
c73cac3ee9
Merge pull request #2220 from shuffle2/win-con-listener
...
[windows] Replace ConsoleListener, which was not actually used.
2015-03-16 02:03:27 -04:00
Shawn Hoffman
78be0ab9ad
[windows] Just kill ExtendedTrace.
...
The code is not really worth saving, and afaik it has never actually been helpful.
2015-03-15 22:30:38 -07:00
Shawn Hoffman
0a79b6d5a7
[windows] Remove ConsoleListener, which was not actually used.
...
Replace it with the DebuggerLogListener.
2015-03-15 22:11:18 -07:00
Ryan Houdek
5e0b9179db
Merge pull request #2186 from Sonicadvance1/aarch64_optimize_paired_slowmem
...
[AArch64] Optimize slowmem paired stores.
2015-03-15 14:37:21 -05:00
Ryan Houdek
bcc434095d
Merge pull request #2212 from Sonicadvance1/fix_user_paths
...
Fix user directories at times doing stupid things.
2015-03-15 09:45:02 -05:00
Ryan Houdek
aaf04aeaca
Fix user directories at times doing stupid things.
...
With my previous changes Dolphin would fail to create the user directory if it didn't exist, and would dump all the configuration options in to the cwdir.
This was a bit more complicated to fix in a clean fashion, so I took to moving around code concerning user directories.
Instead of having GetUserPath serve a dual purpose of both getting and setting our user directories, break out to a new SetUserPath function.
GetUserPath will know only get the configured user path.
SetUserPath will set our user paths and setup the internal user path state.
This ending up being a lot cleaner overall, which is nice. Also less mind bending when attempting to read the code.
So now we won't dump all of our configuration in to the cwdir if ~/.dolphin-emu isn't found.
Fixes issue 8371.
2015-03-15 09:19:48 -05:00
Ryan Houdek
5e6d49d96b
Merge pull request #2209 from magumagu/remove-hle-opcode
...
Remove remnants of old fake opcodes.
2015-03-15 07:13:07 -05:00
Rohit Nirmal
48ec42d4a0
Core: Change NULLs to nullptrs.
2015-03-14 20:20:41 -05:00
magumagu
87dcda5785
Remove remnants of old fake opcodes.
...
These are illegal opcodes, and should be treated as such.
2015-03-14 16:59:12 -07:00
Markus Wick
ec8a074690
Merge pull request #2153 from degasus/enet
...
enet: Search for shared library
2015-03-14 17:23:27 +01:00
skidau
5dc23a93b6
Merge pull request #2169 from magumagu/rect-clamp
...
Fix clamping for rectangles.
2015-03-12 13:31:51 +11:00
Ryan Houdek
f6511c3ba5
[AArch64] Add an assert to SMOV in the emitter.
...
SMOV doesn't have an encoding for moving a 32bit element to a 32bit GPR.
One should use UMOV if they want that.
2015-03-08 12:29:45 -05:00
Ryan Houdek
a9622c247b
Merge pull request #2146 from Sonicadvance1/aarch64_optimize_fpr_push_pop
...
[AArch64] Optimize FPR pushing and popping.
2015-03-08 08:51:45 -05:00
magumagu
863a4c9ce0
Fix clamping for rectangles.
...
Clamping a rectangle correctly requires fully clamping all four
coordinates in the general case.
This should fix issue 6923, sort of; at least, it fixes the part where a
rectangle ends up with a nonsensical height after being clamped.
2015-03-04 17:15:29 -08:00
Ryan Houdek
fbdee7b15f
[AArch64] Handle FPR island registers in a less dumb way.
2015-03-03 00:30:05 -06:00
Tillmann Karras
a5ea6c6e93
enet: fix Visual Studio files
2015-03-02 22:20:37 +01:00
degasus
691b690afe
enet: Search for shared library
2015-03-02 22:18:57 +01:00
Ryan Houdek
f1a9db9bdc
[AArch64] Stop violating the AAPCS64 so much.
2015-03-02 11:21:15 -06:00
Ryan Houdek
fad46729b0
[AArch64] Implemented paired pushing/popping for the VFP.
...
A bit more efficient if we are only pushing two VFP registers.
We can probably be a bit more efficient in the future by mixing paired loadstores in to the other paths as well.
2015-03-02 06:27:47 -06:00
Ryan Houdek
39e357d62d
[AArch64] Implement VFP loadstore paired in the emitter.
2015-03-02 06:27:17 -06:00
Ryan Houdek
8b8310d28c
[AArch64] Optimize FPR pushing and popping.
...
Previously on FPR pushing and popping we would do a single STR/LDR per quad FPR we wanted to push/pop.
In most of our cases when we are pushing and popping VFP registers they will be consecutive registers that will save more efficiently using the NEON
loadstores that can do up to four quad registers.
So this can potentially cutting instructions down to ~1/4th the amount of instructions if the registers are all consecutive.
On the Cortex-A57 this is basically just an icache improvement, but on the Nvidia Denver this may be optimized to be more efficient. Either way it's a
win.
2015-03-02 06:27:13 -06:00
Tillmann Karras
88264f5712
Fix -Wswitch warning
2015-03-01 16:17:32 +01:00
skidau
1dcd0ad879
Merge pull request #2129 from Sonicadvance1/shuffle_user_dir
...
Move user directory detection location to UICommon.
2015-02-27 14:07:06 +11:00
Ziek
779f275486
Added TraversalServer.cpp to Core/Common
2015-02-25 18:28:27 -08:00
Ziek
619a3a5171
Added all of enet lib, changed Cmake files accordingly
2015-02-25 18:28:27 -08:00
Ziek
a629555e6b
Added Gui elements in Netplay Setup Diag so a person can choose a traversal server
...
Fixed bug with UPnP so that it will grab the proper address and protocal
Fixed bug that caused dolphin to freeze when host codes were to large
2015-02-25 18:28:26 -08:00
Ziek
1dea3780a7
Fixed issue where players were not disconnecting correctly
2015-02-25 18:28:26 -08:00
Ziek
074d688884
Change netplay initial gctime to be determined by the hosts initial time
2015-02-25 18:28:26 -08:00
Ziek
4cdc307b87
Moved Traversal Client code over from old netplay
...
Moved over gui code for copying host code
added gui to netplay diag setup to switch between direct and traversal connection
2015-02-25 18:28:25 -08:00
Lioncash
7408de7e79
Merge pull request #2058 from Stevoisiak/Codemaid-Cleanup-Take2
...
Basic Formatting/Whitespace Cleanup
2015-02-25 18:07:56 -05:00
magumagu
b1fbf205ec
Merge pull request #2122 from Tilka/intrinsics
...
Intrinsics: drop custom _mm_shuffle_epi8()
2015-02-25 10:48:34 -08:00
Stevoisiak
93b16a4a2d
Formatting/Whitespace Cleanup
...
Various fixes to formatting and whitespace
2015-02-25 10:48:21 -05:00
Markus Wick
d6ccbb1f9c
Merge pull request #2004 from randomstuff/stringutil-c-locale
...
Use the C locale for non-Windows CharArrayFromFormatV() and StringFromFormat()
2015-02-25 13:17:04 +01:00
Ryan Houdek
ca6e154f0b
Fix a bug on user path re-assignment.
...
The Load directory wasn't being properly reassigned when the user path changed, which causes a bunch of issues with things loading from the wrong
place when using the -U option in Dolphin.
2015-02-25 05:45:25 -06:00
Ryan Houdek
db06f058e4
Move user directory detection location to UICommon.
...
The UI should decide on where it wants the user directory, not our core system.
This is in anticipation of some upcoming work on Android which will need proper user directory setting.
2015-02-25 03:31:59 -06:00
Tillmann Karras
dd818a3831
Intrinsics: drop custom _mm_shuffle_epi8()
...
We don't actually use it, because of reasons.
2015-02-24 19:37:16 +01:00
Tillmann Karras
7056f6308a
Fix a -Wunused-result warning
2015-02-24 10:29:59 +01:00
Tillmann Karras
daf4aa0947
Common: move _M_SSE macro to Intrinsics.h
2015-02-24 01:06:25 +01:00
Tillmann Karras
9aa463c590
Common: move _mm_shuffle_epi8 to Intrinsics.h
2015-02-24 01:06:24 +01:00
Tillmann Karras
f298f00e1b
Clean up the intrinsics #ifdef mess
2015-02-24 01:02:36 +01:00
Tillmann Karras
56795efd42
Common: add single header for all intrinsics
2015-02-24 01:01:10 +01:00
Tillmann Karras
387777ed72
Fix VTune static library dependencies
...
Since libcommon.a is also the last library to be linked, this has the
totally hacky but useful side-effect that it doesn't require people to
modify CMake files for temporarily adding VTune code to other Dolphin
libraries.
2015-02-22 20:49:30 +01:00
Fiora
c54a8c54fb
Merge pull request #1994 from Tilka/vtune
...
JitRegister: fix VTune integration
2015-02-22 07:58:12 -08:00
Markus Wick
86226cb2b9
Merge pull request #1979 from Mullin/head
...
Use clock_gettime instead of gettimeofday, it's more efficiency on low power system
2015-02-18 21:54:16 +01:00
Mullin
797fc14414
Use clock_gettime instead of gettimeofday, it's more effiency on low power system
...
Add def for mac(They don't support clock_gettime)
Fix my mistake
Fix my mistake 2
2015-02-18 21:44:58 +01:00
mimimi085181
f6c9b8243e
GetCRC32: Fix the hash for the last byte(s)
...
This fixes issue 8227
https://code.google.com/p/dolphin-emu/issues/detail?id=8227
2015-02-18 14:26:28 +01:00
Ryan Houdek
120df4c688
[AArch64] Implement loadstore unscaled.
2015-02-16 22:00:43 -06:00
Ryan Houdek
814aaaf538
[AArch64] Implement a couple of emitter instructions.
...
These will be used with the vertex loader JIT recompiler.
2015-02-13 12:16:06 -06:00
Ryan Houdek
0252bbb33f
[AArch64] Fix non-PCH build.
2015-02-13 12:16:05 -06:00
Ryan Houdek
8074d06270
[ARM] Fix poison memory functions.
...
We were poisoning 4x more data and overrunning our buffers. We don't want to do this.
2015-02-13 12:16:05 -06:00
Ryan Houdek
20dae1f210
[AArch64] Fix a bunch of emitter asserts.
...
Since I've added the msg handler. I found all these asserts that were backwards. So they were asserting on the correct arguments.
2015-02-13 12:16:05 -06:00
Tillmann Karras
0ec48e0ec9
JitRegister: fix VTune integration
2015-02-12 02:14:49 +01:00
magumagu
ac54c6a4e2
Make address translation respect the CPU translation mode.
...
The PowerPC CPU has bits in MSR (DR and IR) which control whether
addresses are translated. We should respect these instead of mixing
physical addresses and translated addresses into the same address space.
This is mostly mass-renaming calls to memory accesses APIs from places
which expect address translation to use a different version from those
which do not expect address translation.
This does very little on its own, but it's the first step to a correct BAT
implementation.
2015-02-11 13:56:22 -08:00
Gabriel Corona
266d50c811
Use the C locale for non-Windows CharArrayFromFormatV() and StringFromFormat()
...
The Windows implementations of CharArrayFromFormatV() and
StringFromFormat() use the "C"/".1252" locale instead of the user
locale (using _vsnprintf_l). On non-Windows, the user locale was used.
This leads to bugs on non-Windows: the Overclock parameter was
serialised with the user locale ("0,279322" in some locale) and was
interpreted back as "0" (because the C locale is used for parsing the
string).
Make non-Windows CharArrayFromFormatV() and StringFromFormat()
consistent with their Windows counterpart.
The locale code is not enables for Android:: uselocale is only
available since API 21 and API 21 only supports C and C.UTF-8.
2015-02-04 17:49:22 +01:00
Lioncash
e07679114b
Use emplace_* functions where in-place construction is preferable
2015-02-04 11:39:08 -05:00
Ryan Houdek
a277172b49
Merge pull request #1980 from Sonicadvance1/AArch64_more_optimizations
...
[AArch64] Minor optimizations
2015-01-30 08:33:19 -06:00
Ryan Houdek
1c388b6c37
Fix clang on x86_64.
...
If we are compiling in the CRC32 hash, clang has an issue with casting a s32 to a u64.
Change our lens argument to a unsigned integer to fix the issue.
2015-01-29 01:55:20 -06:00
Ryan Houdek
8c53b88cc3
[AArch64] Implement a way to call lambdas in the emitter
2015-01-29 01:50:11 -06:00
Gabriel Corona
a4adfe194a
JitRegister: overload Register with a [start,end) variant
2015-01-28 09:50:19 +01:00
Gabriel Corona
a957f93532
Use printf-like format in JitRegister::Register
...
The API is cleaner (no more magic default parameter) and more
extensible like this.
2015-01-28 09:47:08 +01:00
Markus Wick
53a9df10f9
Merge pull request #1817 from Armada651/custom-anaglyph
...
PostProcessing: Add support for user-supplied anaglyph shaders.
2015-01-26 11:08:29 +01:00
Ryan Houdek
c340a324bc
Merge pull request #1947 from Sonicadvance1/AArch64_tu_tl_merge
...
[AArch64] Implement TU/TL merging.
2015-01-25 23:07:32 -06:00
Ryan Houdek
f24c466e7e
[AArch64] Fix AArch64 instruction encoding.
2015-01-25 17:26:18 -06:00
Jules Blok
262c3b19ec
PostProcessing: Add support for user-supplied anaglyph shaders.
...
There are lots of different anaglyph glasses out there and there may be even more creative uses for stereoscopic post-processing shaders.
2015-01-25 22:07:03 +01:00
skidau
0aef1d27aa
Merge pull request #1933 from magumagu/intellisense-error-fix
...
Fix Intellisense error spam on Visual Studio.
2015-01-25 15:44:30 +11:00
magumagu
3aa3002010
Fix Intellisense error spam on Visual Studio.
...
Intellisense doesn't like defines in PCH files, and it doesn't like the deleted
constructor for BitField. (I think it's being overly strict about the
"must have no non-default constructors" rule for classes in unions.)
2015-01-23 19:15:25 -08:00
Scott Mansell
75815b9b0d
Added a comment to document an issue with the codegen.
2015-01-24 16:08:26 +13:00
Ryan Houdek
6470227a39
[AArch64] Minor fix in the UMULH/SMULH.
...
These two instructions ignore the register encoded in to RA.
2015-01-22 18:08:49 -06:00
degasus
a353ead3cb
CustomTexture: Use always safe texture hash
2015-01-21 21:22:55 +01:00
Ryan Houdek
80e6367e46
Merge pull request #1869 from Stevoisiak/GeneralConsistency
...
Minor consistency changes
2015-01-21 13:46:53 -06:00
Ryan Houdek
217c2c9d6a
[AArch64] Add some more scalar VFP ops to the emitter.
2015-01-20 16:34:32 -06:00
Ryan Houdek
cb967a6ff2
Merge pull request #1911 from Sonicadvance1/AArch64_paired_loadstores
...
[AArch64] Implements paired loadstores
2015-01-20 16:33:08 -06:00
Rohit Nirmal
e35766cbcd
Fix building with PCH disabled.
2015-01-20 17:01:37 +00:00
Ryan Houdek
7376956c92
Merge pull request #1912 from Sonicadvance1/Android_remove_workaround
...
[Android] Remove posix_memalign workaround.
2015-01-19 15:36:17 -06:00
Ryan Houdek
dc95ea2ce6
Minor fix with psq_st{u,}x disassembly.
2015-01-19 10:12:23 -06:00
Lioncash
ed58b1fd5b
Merge pull request #1913 from Sonicadvance1/fix_paired_store_disassembly
...
Fixes disassembly of paired store instructions.
2015-01-18 23:27:34 -05:00
Ryan Houdek
596d3fd5f2
Fixes disassembly of paired store instructions.
...
Someone thought it would be a good idea to have the location as the first argument on the instruction.
Changed it to how it is supposed to be disassembled.
2015-01-18 16:37:43 -06:00
Ryan Houdek
08e50ec6dd
[Android] Remove posix_memalign workaround.
...
Google fixed the issue of posix_memalign not being available. It now works fine in r10d of the NDK.
2015-01-18 16:34:42 -06:00
Ryan Houdek
8d5947efac
[AArch64] Emitter improvements.
...
Adds a bunch of new instructions to the emitter.
2015-01-18 16:25:40 -06:00
Tillmann Karras
e80b657cf4
Move MOVBE wrappers directly into XEmitter class
2015-01-18 13:29:34 +01:00
Tillmann Karras
eb13aa43fe
XEmitter: overload MOVBE()
2015-01-18 12:59:33 +01:00
Stevoisiak
cb86db7b68
Minor consistency changes
...
Mostly small changes, like capitalization and spelling
2015-01-12 15:18:18 -05:00
Tillmann Karras
52b1a54597
MemoryUtil: mention Valgrind in mmap error message
2015-01-12 02:22:05 +01:00
Tillmann Karras
f98359ef5c
MemoryUtil: add comment for Valgrind
...
Valgrind doesn't support the mmap() flag MAP_32BIT. Adding a simple
CMake option would force a recompile, so just add this comment.
2015-01-12 02:22:05 +01:00
Ryan Houdek
ca3b3adb50
Merge pull request #1849 from Sonicadvance1/AArch64_Emitter_Improvements
...
[AArch64] Emitter Improvements and additions.
2015-01-11 07:08:02 -06:00
Fiora
5b825e9091
StringUtils: use C locale instead of .1252
...
Fixes regression on Linux.
2015-01-11 00:15:57 -08:00
Pierre Bourdon
394257f33b
Merge pull request #1798 from FioraAeterna/overclock
...
Support overclocking and underclocking the Gamecube CPU
2015-01-11 06:12:27 +01:00
Fiora
8237004448
JIT: optimize for the common case of unquantized psq_l/st
...
Optimistically assume used GQRs are 0 in blocks that only use one GQR, and
bail at the start of the block and recompile if that assumption fails.
Many games use almost entirely unquantized stores (e.g. Rebel Strike, Sonic
Colors), so this will likely be a big performance improvement across the board
for games with heavy use of paired singles.
2015-01-10 14:14:43 -08:00
Fiora
c2c950108d
Support overclocking and underclocking the Gamecube CPU
...
Won't work with all games, but provides a nice way to spend extra CPU to make
a variable framerate game faster (e.g. Spyro or The Last Story), or to make
a game use less CPU at the cost of a lower framerate (e.g. Rogue Leader).
2015-01-10 10:46:38 -08:00
Ryan Houdek
c511ee763a
[AArch64] Add the float emitter.
2015-01-08 19:55:31 -06:00
Ryan Houdek
6bc274a968
Merge pull request #1844 from Tilka/sse_mov
...
x64Emitter: fix MOVLPD/MOVHPD
2015-01-08 19:04:14 -06:00
Markus Wick
f0f8384639
Merge pull request #1785 from degasus/custom_texture
...
VideoCommon: Custom texture handling
2015-01-08 13:29:45 +01:00
Ryan Houdek
5a0133c478
[AArch64] Add a few more VFP register helpers.
...
Renames Is128Bit to IsQuad to line up more with the other helpers.
2015-01-07 13:05:55 -06:00
Ryan Houdek
2b4f1aed40
[AArch64] Minor shifted register adjustment.
...
If we have a shift amount that is the full length of the source register then we have an invalid instruction.
This can happen when dealing with a couple of PowerPC instructions.
This same adjustment is already in the ARMv7 emitter.
2015-01-07 13:03:51 -06:00
Ryan Houdek
0a23ca9461
[AArch64] Add MUL/MNEG instruction aliases to the emitter.
2015-01-07 13:03:01 -06:00
Ryan Houdek
d2eaba5cb7
[AArch64] Minor MOVI2R improvement.
...
Use the ZR for both input arguments in the case the immediate is the maximum immediate value.
This allows it to be aliased to MVN when disassembling.
2015-01-07 13:00:39 -06:00
Ryan Houdek
8dba84dd7c
[AArch64] Fix 8 & 16 bit loadstore indexes.
...
I wasn't bit shifting correctly for 8 and 16bit loadstores.
2015-01-07 12:58:37 -06:00
Ryan Houdek
f4f59ea71e
[AArch64] Fix ADDS/SUBS emitter functions.
...
These weren't emitting the flag bit. So they were regular ADD and SUB emitters.
2015-01-07 12:56:45 -06:00
Tillmann Karras
1efa9b8b72
x64Emitter: add MOVLPS/MOVHPS
2015-01-07 11:23:52 +01:00
Tillmann Karras
3daa6ab259
x64Emitter: fix MOVLPD/MOVHPD
...
These instructions were using the wrong prefix which turned
MOVLPD(reg, mem) into MOVDDUP(reg, mem) and made the rest of them
invalid.
2015-01-07 11:23:52 +01:00
Dolphin Bot
89b7f1057f
Merge pull request #1804 from FioraAeterna/fastermmu2_master
...
MMU: various improvements, bugfixes, optimizations
2015-01-07 00:49:58 +01:00
Markus Wick
d8d4c94e07
Merge pull request #1819 from Tilka/cmake
...
CMake: simplify some expressions
2015-01-06 09:27:59 +01:00
Fiora
53b44ccb3a
x64ABI: enhance MOVTwo to take an offset
...
This lets us merge displacements into MOVTwo in trampolines.
2015-01-05 10:45:58 -08:00
Fiora
8a6ea918b6
GekkoDisassembler: fix display of CRs in branch operations
2015-01-03 19:53:55 -08:00
Tillmann Karras
6bcdb10eee
CMake: simplify some expressions
2015-01-03 13:17:57 +01:00
Ryan Houdek
479d1e56c3
Merge pull request #1783 from degasus/disablelogs
...
OGL: disable driver warnings fetch
2015-01-01 14:12:02 -06:00
degasus
c6dd5044d6
VideoCommon: make hash independet from hires textures
2014-12-29 10:24:27 +01:00
Markus Wick
c5a0b6bf50
Merge pull request #1432 from randomstuff/linux-perf
...
Add Linux perf JIT support (/tmp/perf-$pid.map)
2014-12-28 23:12:52 +01:00
degasus
1ed41672f5
OGL: disable driver warnings fetch
...
This did give a decent slowdown on some drivers.
2014-12-28 22:31:24 +01:00
Ryan Houdek
47b67fe527
Merge pull request #1744 from Buddybenj/google-code
...
Update Outdated Google Code References
2014-12-21 20:55:56 -06:00
Benjamin Przybocki
fba3c48ec4
Update Outdated Google Code References
2014-12-20 21:17:51 -06:00
Ryan Houdek
d3c2e8fb0a
[AArch64] Improvements to the AArch64 emitter.
...
Fixes issues with negative offsets in loadstore instructions.
Adds ADRP/ADR instructions.
Optimizes MOVI2R function to take advantage of ADRP on pointers, can change a 3 instruction operation down to one.
Adds GPR push/pop operations for ABI related things.
2014-12-20 19:35:52 -06:00
Pierre Bourdon
dad7911214
Merge pull request #1486 from rohit-n/goto
...
Remove some gotos.
2014-12-20 16:47:55 +01:00
Rachel Bryk
6a2973ac1d
Fix hires texture path.
2014-12-11 19:24:16 -05:00
Tillmann Karras
6e928d08a0
Jit64: clean up casts in memory operands
2014-12-07 20:23:27 +01:00
Ryan Houdek
4e98078daf
Merge pull request #1658 from lioncash/locale
...
Common: Remove locale based functions from CommonFuncs.
2014-12-07 01:12:00 -06:00
Tillmann Karras
986d19b9d5
x64Emitter: fix bitwise AVX opcodes
...
The reason this didn't break is that bitwise instructions like VPAND,
VANDPS, and VANDPD do the exact same thing. The only difference is the
data type they are intended for.
2014-12-06 22:28:03 +01:00
Lioncash
9bcadc8029
Common: Remove locale based functions from CommonFuncs.
...
Since %f isn't used anymore in the shader generators, these can go.
2014-12-05 20:55:29 -05:00
Rohit Nirmal
e7ddaf86f5
Fix building with PCH disabled.
2014-12-03 22:01:12 -06:00
skidau
7bc78827ed
Merge pull request #1574 from degasus/profiler
...
Common: Add a built-in profiler
2014-12-04 13:22:31 +11:00
Ryan Houdek
2c39d4044d
[AArch64] Add loadstore paired emitter instructions.
2014-12-02 21:08:34 -06:00
degasus
94d9d138d9
Common: Add a built-in profiler
2014-12-03 00:50:41 +01:00
Rohit Nirmal
a53c5217bb
Common: Remove goto in MemArena.
2014-12-01 11:47:37 -06:00
Rohit Nirmal
e3abad234c
Common: Remove gotos in FileUtil, and replace FILE*s with IOFile/ifstreams.
2014-12-01 11:47:36 -06:00
Ryan Houdek
414e36d8c9
Merge pull request #1258 from FioraAeterna/avoidfmulround
...
JIT: optimize single-precision ops based on knowledge of their inputs
2014-11-30 15:47:34 -06:00
Ryan Houdek
c27ee21dd9
[AArch64] Workaround builtin byteswap bug.
...
The builtin byteswap routines cause critical failure on AArch64 when built with the Android toolchain.
I didn't experience this issue when building for Linux using a local qemu chroot.
Seems to be only an issue with the Android toolchain when building AArch64.
Use our generic version instead.
2014-11-30 01:23:03 -06:00
Fiora
72c96c20d3
JIT: more optimizing of float ops based on known input characteristics
...
If the inputs are both float singles, and the top half is known to be identical
to the bottom half, we can use packed arithmetic instead of scalar to skip
the movddup.
This is slower on a few rather old CPUs, plus the Atom+Silvermont, so detect
Atom and disable it in that case.
Also avoid PPC_FP on stores if we know that the output came from a float op.
2014-11-29 11:33:11 -08:00
Ryan Houdek
ce059769f6
Merge pull request #1439 from Armada651/ogl-stereo-3d
...
OGL: Stereoscopic 3D Support
2014-11-28 11:45:38 -06:00
Lioncash
e9b09a4c9f
Arm(64)Emitter: Make some variables static
2014-11-25 23:27:48 -05:00
comex
245ff601b7
Merge pull request #1552 from waddlesplash/dolphin-qt
...
DolphinQt: GameList!
2014-11-25 00:24:32 -05:00
Gabriel Corona
5b9aeaa686
Use CLI argument for Linux perf JIT support
2014-11-24 23:30:29 +01:00
Gabriel Corona
9722ae2a5d
Move the JIT registration logic in its own file
...
Move the JITed function/basic-block registration logic out of the CPU
subsystem in order to add JIT registration to JITed DSP and
Video/VertexLoader code.
This necessary in order to add /tmp/perf-$pid.map support to other
JITed code as they need to write to the same file.
2014-11-24 23:18:18 +01:00
Rohit Nirmal
4d931c16ad
Silence a few "zero as null pointer" warnings.
2014-11-24 12:36:46 -06:00
Jules Blok
f6ea293027
VertexShaderManager: Compute stereoscopy projection matrices.
2014-11-23 14:23:41 +01:00
Augustin Cavalier
1e17bbce0f
DolphinQt: GameList!
2014-11-21 18:36:49 -05:00
Ryan Houdek
b24197f913
Adds MCR/MRC to the ARMv7 emitter.
2014-11-16 09:29:27 +00:00
Stevoisiak
b25e1a2eb4
Various formatting and consistency fixes
2014-11-13 22:42:18 -05:00
Fiora
6603f98d04
JIT: add 64-bit write support to FIFO functions
...
Also fix 64-bit values passed to CallAC and otherwise correct immediate
handling in FIFO writes.
Fixes 007 Nightfire.
2014-11-09 21:24:30 -08:00
Lioncash
f6b4b4dbba
Merge pull request #1497 from lioncash/host
...
Host: Kill off Host_SysMessage
2014-11-06 20:41:53 -05:00
Lioncash
d79c794e8c
Merge pull request #1490 from rohit-n/initialize
...
Common: Fix -Wmaybe-uninitialized warning.
2014-11-06 20:37:32 -05:00
Lioncash
884ec2ed13
Host: Kill off Host_SysMessage
...
Equivalent facilities already exist.
2014-11-05 02:30:48 -05:00
Rohit Nirmal
f361ef1eb3
Common: Fix -Wmaybe-uninitialized warning.
2014-11-03 21:38:42 -06:00
comex
9cba787871
Merge pull request #1408 from randomstuff/perf
...
Profiling: measure time on non-Windows/POSIX using clock_gettime
2014-11-03 22:36:32 -05:00
Jasper St. Pierre
e290a3d39c
MemArena: Fix the launching of non-Wii games
...
When we cleaned up the code to calculate the shm_position and total_mem
in one step, we sometimes skipped over certain views because they were
Wii-only. When looking at the total memory, we'd look at the last field,
whether or not it was skipped. Since Wii-only fields are the last view,
this meant that the shm_position was 0, since it was skipped, causing us
to map a 0-sized field. Fix this by explicitly returning the total size
from MemoryMap_InitializeViews.
Additionally, the shm_position was being calculated incorrectly because
it was adding up the shm_position *before* the mirror, rather than after
it. Fix this by adopting a scheme similar to what we had before.
2014-11-03 11:08:59 -08:00
Jasper St. Pierre
f660789254
MemArena: Merge the initialization code with the size calculation code
...
To make mistakes like in the previous commit less prevalent in the future.
2014-11-02 19:59:14 -08:00
Jasper St. Pierre
5e5ed07b41
MemArena: Fix the calculation of position in SHM
...
The code to calculate the offsets into the SHM file wasn't properly
respecting the skip flags, causing it to calculate offsets beyond
the end of the SHM file.
2014-11-02 19:25:42 -08:00
Jasper St. Pierre
64540bc60d
MemArena: Fix a memory leak caused by pointer confusion
...
This code was ported from out_ptr, which was a double-pointer, and
wanted to double-check that the proper arena was actually allocated.
When I ported it to store the pointer directly in the view regardless
of whether out_ptr was non-NULL, I got confused here and instead
caused the code to only free the arena if the first byte was non-zero.
2014-11-02 19:25:42 -08:00
Jasper St. Pierre
1e93b0db19
MemArena: Rename GrabLowMemSpace to GrabSHMSegment
...
This code originally tried to map the "low space" for the Gamecube's
memory layout, but since has expanded to mapping all of the easily
mappable memory on the system. Change the name to "GrabSHMSegment" to
indicate that we're looking for a shared memory segment we can map into
our process space.
2014-11-02 16:51:27 -08:00
Jasper St. Pierre
079b881d20
MemArena: Clean up the code that does the mirroring
2014-11-02 16:51:26 -08:00
Jasper St. Pierre
6813473367
MemArena: Remove the low mappings for our pointers
...
These are effectively unused, since the memmap already maps them in one
place. For 32-bit, they might have some slight advantage, but we already
special-case the regular "high-mem" pointer for 32-bit, so just use the
one we already have...
2014-11-02 16:50:36 -08:00
Jasper St. Pierre
4a59750b30
MemArena: Bail on Arch64 if the out_ptr allocation fails
2014-11-02 16:34:17 -08:00
Jasper St. Pierre
48aff73b6a
MemArena: Remove duplicated code
...
I can't find any obvious difference between these two paths.
2014-11-02 16:34:17 -08:00
Gabriel Corona
641e820257
Profiling: measure time on POSIX systems using clock_gettime
2014-11-03 00:07:12 +01:00
Tillmann Karras
033f2a7e93
x64ABI: get rid of some duplicate code
2014-11-02 02:00:47 +01:00
Rohit Nirmal
a09afe8821
Fix build failing with PCH disabled.
2014-10-29 13:00:48 -04:00
comex
089e32ba7d
Merge pull request #1307 from comex/bitset
...
Higher level bitset wrapper
2014-10-28 23:39:35 -04:00
Jasper St. Pierre
d9a1fc1564
BreakPoints: Fix compile warning
2014-10-28 12:22:30 -07:00
skidau
1630b0c684
Merge pull request #1291 from skidau/debugger-step-out
...
Dolphin debugger enhancements
2014-10-28 12:53:22 +11:00
Ryan Houdek
043bd710a0
Merge pull request #1394 from Sonicadvance1/fix-arm-cpudetect
...
Fixes ARM CPU detection routine for the hardware.
2014-10-27 05:07:24 -06:00
skidau
4570dd7eeb
Fixed a crash that would occur if a new watch were added by entering a watch name.
...
Code style updates.
2014-10-26 23:23:45 +11:00
skidau
73dca1ca33
Added a new option to add memchecks from the Watch window.
...
Fixed watch labels from being truncated at the first whitespace.
2014-10-26 16:14:17 +11:00
skidau
b73130af77
Added Load/Save function for the Watch window.
...
Made the floating windows toolbars dockable.
Scaled down the breakpoint toolbar icons to 16x16.
2014-10-26 14:56:03 +11:00
skidau
b34e220086
Added a "Delete watch" context menu to the Watch window.
...
Added a "View memory" command to the context menu.
2014-10-26 14:56:03 +11:00
skidau
613cae613a
Added a RAM Watch window to the debugger
...
Conflicts:
Source/Core/Core/HW/Memmap.cpp
Source/Core/Core/HW/Memmap.h
Source/Core/DolphinWX/Debugger/CodeWindow.h
2014-10-26 14:56:02 +11:00
skidau
df37649b9f
Changed the step over routine to a single stepping version that steps until a blr is encountered.
...
Cleared out all temporary breakpoints on each step to prevent phantom breakpoints from stopping the debugger.
2014-10-26 14:56:02 +11:00
comex
5f21683343
Merge pull request #1388 from waddlesplash/dolphin-qt
...
DolphinQt: About dialog fixes, SystemInfo dialog
2014-10-25 21:20:02 -04:00
comex
f51c233a08
Add workaround for OS X symbol clash and AllOnes helper method.
2014-10-25 16:57:25 -04:00
comex
eb7f4dac50
Convert registersInUse to BitSet.
2014-10-25 16:57:25 -04:00
comex
b6a7438053
Add BitSet and, as a test, convert some JitRegCache stuff to it.
...
This is a higher level, more concise wrapper for bitsets which supports
efficiently counting and iterating over set bits. It's similar to
std::bitset, but the latter does not support efficient iteration (and at
least in libc++, the count algorithm is subpar, not that it really
matters). The converted uses include both bitsets and, notably,
considerably less efficient regular arrays (for in/out registers in
PPCAnalyst).
Unfortunately, this may slightly pessimize unoptimized builds.
2014-10-25 16:56:51 -04:00
comex
4b0c6d8e0f
Merge pull request #1385 from lioncash/bitfield
...
BitField: Fix a typo in the sample usage.
2014-10-25 16:48:31 -04:00
Ryan Houdek
3ac2d8e1f1
Revert "Removes ARMv7 specific byteswap routines from CommonFuncs.h"
2014-10-25 15:28:04 -05:00
Ryan Houdek
b66a7f83c2
Fixes ARM CPU detection routine for the hardware.
...
We weren't dropping a newline character from the string, we were cutting off the last character of the hardware name.
This fixes my TK1 being called 'lagun' when it's name is 'laguna'
2014-10-25 09:14:14 -05:00
skidau
8598d6bc2b
Merge pull request #1364 from RachelBryk/titles
...
Read game title from ini file, or titles.txt if it exists.
2014-10-25 13:33:26 +11:00
Ryan Houdek
6483f8d45c
Removes ARMv7 specific byteswap routines from CommonFuncs.h
...
GCC has optimized this using the exact same code since 4.7 or 4.8.
Android building falls back to the __linux__ route.
No need to keep these around anymore since we aren't building on an old GCC version.
2014-10-24 16:21:54 -05:00
Augustin Cavalier
51700a2b68
Fix the brand/cpu_string reversal.
...
Before this commit, the two were reversed ("cpu_string" had the brand, e.g. "AuthenticAMD"; and "brand_string" had the CPU type, e.g. "AMD Phenom II X4 925").
2014-10-24 16:09:21 -04:00
Lioncash
c0c835d0b6
BitField: Fix a typo in the sample usage.
2014-10-24 13:33:02 -04:00
skidau
716fe06289
Merge pull request #1349 from comex/good-job-dereferencing-null-on-purpose
...
Fix some warnings from Clang trunk in an overly aggressive manner
2014-10-24 13:03:09 +11:00
comex
00c6ec97a6
Merge pull request #1347 from comex/header-hygiene
...
Add missing includes where headers depend on other headers having been included first.
2014-10-22 23:23:58 -04:00
Rachel Bryk
b1e14a65a2
Read game title from ini file, or titles.txt if it exists.
2014-10-22 22:19:40 -04:00
comex
6e774f1b64
Add missing includes where headers depend on other headers having been included first.
...
This is good hygiene, and also happens to be required to build Dolphin
using Clang modules.
(Under this setup, each header file becomes a module, and each #include
is automatically translated to a module import. Recursive includes
still leak through (by default), but modules are compiled independently,
and can't depend on defines or types having previously been set up. The
main reason to retrofit it onto Dolphin is compilation performance - no
more textual includes whatsoever, rather than putting a few blessed
common headers into a PCH. Unfortunately, I found multiple Clang bugs
while trying to build Dolphin this way, so it's not ready yet, but I can
start with this prerequisite.)
2014-10-21 21:22:16 -04:00
comex
06433652be
Improve some libcdio CoreFoundation code.
...
I found it via clang complaining about a useless null check on an array,
but I decided to get rid of the array in favor of dynamic allocation, as
there was no reason to assume a maximum length of 0x32 bytes. Plus, add
a CFString type check just in case, and switch to UTF-8 in the
off-chance it matters.
The result has not actually been tested, as I have no CD drive.
2014-10-21 21:20:11 -04:00
Ryan Houdek
2e94814441
Changes from ARMv6 NOP to ARMv7 NOP.
...
Dolphin doesn't support ARMv6. Get this out of here.
2014-10-21 14:17:07 +00:00
skidau
e8da34ef25
Merge pull request #1320 from FioraAeterna/hash64bitcrc
...
Use CRC to output 64 bits instead of 32
2014-10-20 14:50:21 +11:00
Lioncash
3782be15a3
Merge pull request #1309 from Stevoisiak/spellingFix
...
Minor spelling fix
2014-10-18 22:40:41 -04:00
Fiora
d2e004fa9e
Use CRC to output 64 bits instead of 32
...
A bit hacky, but should dramatically reduce the odds of hash collision.
2014-10-18 00:24:35 -07:00
Fiora
15a4bccb73
Hash: unroll CRC loop, since CRC32 typically has nontrivial latency
...
Seems to be about 20-30% faster texture cache hashing on my machine.
2014-10-17 15:39:08 -07:00
Stevoisiak
ed5e698511
Minor spelling fix
2014-10-17 15:51:19 -04:00
skidau
9ddbdeb39f
Merge pull request #995 from FioraAeterna/fma
...
Add FMA support to emitter and use it in the JIT
2014-10-12 13:56:18 +11:00
Henrik Rydgård
877081c7df
Be consistent with braces.
2014-10-10 22:34:03 +02:00
Henrik Rydgård
9bca1a00d7
x64 emitter: Add some more missing ops (MOVDQA, MOVDQU, PSHUFHW)
...
Also constify some pointers.
2014-10-10 18:30:05 +02:00
Henrik Rydgård
a2c46665c5
x64 emitter: Add a few missing instructions
2014-10-10 18:30:04 +02:00
Fiora
019657cd93
X64Emitter: add FMA3 support
2014-10-07 18:21:07 -07:00
skidau
b3b34d16e6
Merge pull request #1218 from hthh/trampolinecaching
...
JIT: reuse trampolines when possible
2014-10-07 13:26:23 +11:00
skidau
8fdf43109f
Merge pull request #1216 from FioraAeterna/movoptimizations
...
Add more AVX support, refactor emitter, reduce redundant XMM moves
2014-10-07 13:25:28 +11:00
hthh
c7208318fb
JIT: Reuse trampolines when possible
2014-10-05 15:03:11 +11:00
Fiora
7a2dd3a3c6
x64Emitter: refactor, add some new AVX instructions
2014-10-03 10:05:10 -07:00
Fiora
85547d94be
JIT: properly remove FIFO write addresses when code is invalidated
...
Fixes a bug caused by interaction with carry optimizations; might fix other
issues too.
2014-09-30 01:00:23 -07:00
comex
a9b4016cd3
Merge pull request #1166 from FioraAeterna/flaglocking
...
JIT+Emitter: support locking flags
2014-09-30 02:57:53 -04:00
comex
2eebdff01b
Remove useless STACKALIGN macro.
...
It only ever did anything on 32-bit OS X.
Anyway, it wasn't even on the right functions, and these days
ABI_PushRegistersAndAdjustStack should handle maintaining the ABI
correctly.
2014-09-30 01:42:47 -04:00
Fiora
c102fed36a
GekkoDisassembler: show W and I in psq_l/psq_st disassembly
2014-09-28 17:01:35 -07:00
Fiora
ac1fc9ad03
JIT+Emitter: support locking flags
...
This helps us avoid accidentally clobbering flags between two instructions
when the flags are expected to be maintained. Dolphin will of course crash
immediately, but at least it will crash loudly and alert us of the mistake,
instead of forcing hours of bisecting to find the subtle way in which the JIT
has managed to sneak a flag-modifying instruction where there shouldn't be one.
2014-09-26 20:47:06 -07:00
comex
fb3d9c9d58
Fix warning in x64CPUDetect.cpp in generic build by not building it.
2014-09-25 18:48:00 -04:00
Rohit Nirmal
3168361e32
Android: Silence some more warnings.
2014-09-22 17:45:42 -04:00
Ryan Houdek
9206dd016e
Merge pull request #1135 from FioraAeterna/twidisasmfix
...
Disassembler: fix disassembly of some twi instructions
2014-09-21 14:19:05 -05:00
Fiora
9c4407fb80
Disassembler: fix disassembly of some twi instructions
2014-09-21 08:17:41 -07:00
Tony Wasserka
6d4fd54683
ChunkFile: Add a DoArray overload which takes an std::array.
...
This is inconsistent with how other containers are used (i.e. with Do()), but making std::array be used with Do() seems rather confusing when there's also a DoArray available.
2014-09-21 10:38:22 +02:00
Ryan Houdek
eb23882398
Merge pull request #1120 from rohit-n/muh-precompiled-headers
...
Fix build failing when disabling precompiled headers.
2014-09-19 17:43:42 -05:00
Rohit Nirmal
46057db37d
Fix build failing when disabling precompiled headers.
2014-09-19 18:17:51 -04:00
Ryan Houdek
522d7eb275
Merge pull request #1109 from FioraAeterna/ps_cmp
...
JIT: add ps_cmp0/ps_cmp1/ps_res/ps_rsqrte
2014-09-19 14:41:05 -05:00
Fiora
3c49200b22
X64Emitter: add MOVHLPS/MOVLHPS
2014-09-18 17:57:27 -07:00
Ryan Houdek
7608e3f11e
Add AArch64 emitter aliases for MOV and MVN.
2014-09-18 16:30:40 -05:00
comex
7ad9027593
Be pedantic about stack overflow on Linux and OS X.
...
Add some magic to the fault handler to handle stack overflow due to BLR
optimization, and disable the optimization if fastmem is not enabled.
2014-09-17 20:08:09 -04:00
Fiora
d3dee1d7ed
GekkoDisassembler: fix some float opcodes
2014-09-16 02:06:40 -07:00
skidau
8361d2b1da
Merge pull request #805 from FioraAeterna/storerefactor
...
JIT: support immediate stores
2014-09-16 13:31:39 +10:00
Dolphin Bot
bef2016909
Merge pull request #1091 from FioraAeterna/fixdisasm
...
GekkoDisassembler: fix/improve disassembly for a few instructions
2014-09-16 03:53:18 +02:00
Fiora
7368c2ee9e
GekkoDisassembler: fix/improve disassembly for a few instructions
2014-09-15 18:48:54 -07:00
Fiora
d02b7c7755
JIT: support immediate stores
2014-09-15 07:25:32 -07:00
Fiora
02dce5dbbf
x64Emitter: fix silent failure if WriteNormalOp is passed two memory operands
...
Should now fail loudly and clearly instead.
2014-09-15 07:08:08 -07:00
Ryan Houdek
4e7f284a81
Merge pull request #1064 from Sonicadvance1/AArch64-Fix-MOVI2R
...
Fix AArch64 MOVI2R helper function.
2014-09-14 09:26:02 -05:00
Fiora
997c5c2d0e
x64Emitter: add LZCNT/TZCNT support and detection
...
Also add a unit test.
2014-09-14 05:31:22 -07:00
Pierre Bourdon
439068acae
Merge pull request #1055 from FioraAeterna/smallermov
...
X64Emitter: support shorter mov reg, imm opcodes
2014-09-14 01:57:36 +02:00
Lioncash
a92003c1ab
ARM64: Make getters within ArithOption const.
2014-09-12 20:55:26 -04:00
Ryan Houdek
17d31ecd6c
Fix AArch64 MOVI2R helper function.
...
In the case of a zero immediate, it wouldn't generate code at all.
Also in the case of max u32/u64, use ORN to optimize it.
2014-09-12 05:45:10 -05:00
Ryan Houdek
5061a33c29
Merge pull request #1051 from Sonicadvance1/ARM-Common
...
Include a missing include in the ARM emitter's common code.
2014-09-11 21:12:21 -05:00
Fiora
18d83a310e
X64Emitter: support shorter mov reg, imm opcodes
...
Also refactor WriteNormalOp a little bit and add comments.
2014-09-11 11:40:30 -07:00
Lioncash
b06ec302d1
Remove some unnecessary semicolons
2014-09-11 13:05:31 -04:00
Fiora
5726e0cdfb
JIT: use XCHG in MOVTwo
...
Roughly the same speed or slightly faster depending on CPU; mostly just cleaner
since we don't have to pass in a temp.
2014-09-10 22:17:38 -07:00
Ryan Houdek
44baab30cf
Include a missing include in the ARM emitter's common code.
2014-09-10 20:39:19 -05:00
Ryan Houdek
24f6c98a55
Add sign extending aliases to the ARM64Emitter.
2014-09-10 17:52:54 -05:00
Ryan Houdek
71cb09f1ca
Merge pull request #1027 from rohit-n/change-include
...
Include CommonTypes.h instead of Common.h.
2014-09-10 00:35:16 -05:00
Ryan Houdek
09c1ad1631
Merge pull request #753 from FioraAeterna/integeropts
...
JIT64: various integer optimizations
2014-09-09 04:10:30 -05:00
Ryan Houdek
f09cb723c5
Merge pull request #1044 from lioncash/pedantry
...
Common: Fix code styling in Arm64Emitter
2014-09-08 23:29:19 -05:00
Ryan Houdek
af732dea39
Merge pull request #1043 from lioncash/unused
...
Common: Remove unused variable in MemoryMap_Setup
2014-09-08 22:46:04 -05:00
Lioncash
bc331ee809
Common: Fix code styling in Arm64Emitter
2014-09-08 23:39:20 -04:00
Ryan Houdek
ed476c997c
Fix Generic build from AArch64 merge.
...
I had missed this file and hadn't tested the branch on my new build system.
2014-09-08 22:24:23 -05:00
Fiora
94c20db369
Rename Log2 and add IsPow2 to MathUtils for future use
...
Also remove unused pow2/pow2f functions.
2014-09-08 20:15:45 -07:00
skidau
0926f1d344
Merge pull request #897 from Sonicadvance1/AArch64-jit
...
Initial AArch64 JIT
2014-09-09 12:34:58 +10:00
Lioncash
22800dc711
Common: Remove unused variable in MemoryMap_Setup
2014-09-08 21:44:03 -04:00
Rohit Nirmal
fbc64984ca
Include CommonTypes.h instead of Common.h.
2014-09-08 15:39:58 -04:00
comex
7fb6628789
Merge pull request #1024 from comex/abi-cleanup
...
ABI cleanup
2014-09-08 01:03:36 -04:00
comex
4dc090643d
Remove ABI_AlignStack/ABI_RestoreStack and the noProlog option to ABI_CallFunctionRR.
...
The latter being true was the only case where the former would do
anything, and it was never true. They became obsolete with x86's
removal.
2014-09-08 01:00:10 -04:00
comex
c5c0b36046
Remove the inaccurately named ABI_PushAllCalleeSavedRegsAndAdjustStack (it didn't preserve FPRs!) and replace with ABI_PushRegistersAndAdjustStack.
...
To avoid FPRs being pushed unnecessarily, I checked the uses: DSPEmitter
doesn't use FPRs, and VertexLoader doesn't use anything but RAX, so I
specified the register list accordingly. The regular JIT, however, does
use FPRs, and as far as I can tell, it was incorrect not to save them in
the outer routine. Since the dispatcher loop is only exited when
pausing or stopping, this should have no noticeable performance impact.
2014-09-08 01:00:10 -04:00
comex
2dafbfb3ef
Improve code and clarify parameters to ABI_Push/PopRegistersAndAdjustStack.
...
- Factor common work into a helper function.
- Replace confusingly named "noProlog" with "rsp_alignment". Now that
x86 is not supported, we can just specify it explicitly as 8 for
clarity.
- Add the option to include more frame size, which I'll need later.
- Revert a change by magumagu in March which replaced MOVAPD with MOVUPD
on account of 32-bit Windows, since it's no longer supported. True,
apparently recent processors don't execute the former any faster if the
pointer is, in fact, aligned, but there's no point using MOVUPD for
something that's guaranteed to be aligned...
(I discovered that GenFrsqrte and GenFres were incorrectly passing false
to noProlog - they were, in fact, functions without prologs, the
original meaning of the parameter - which caused the previous change to
break. This is now fixed.)
2014-09-08 00:58:56 -04:00
Lioncash
a38093729e
Common: Inline declare some loop variables in ArmEmitter
2014-09-07 00:26:26 -04:00
Ryan Houdek
2b06257e16
Beginning of the AArch64 JIT branch.
...
This is the bare minimum required to run a few games on AArch64.
Was able to run starfield and Animal Crossing to the Nintendo logo.
QEmu emulation is literally the slowest thing in the world, it maxes out at around 12mhz on my Core i7-4930MX.
2014-09-06 20:14:52 -05:00
Ryan Houdek
f107b5e176
[AArch64-emitter] Initial work on a emitter for 64bit ARM.
...
I've tested a few instruction encodings and am expecting most to work as long as one stays away from VFP/SIMD.
This implements mostly instructions to bring up an initial JIT with integer support.
This can be improved to allow ease of use functions in the future, dealing with the raw imms/immr encodings is probably the worst thing ever.
2014-09-06 20:13:44 -05:00
shuffle2
9302218a19
Merge pull request #851 from lioncash/logg
...
Common: Kill off duplicate log warning definitions
2014-09-06 12:35:19 -07:00
Ryan Houdek
01b90c1007
Fix ArmEmitter's asserts from failing to compile.
...
Changed them all from debug asserts to regular asserts, since they shouldn't only be run at debug time.
2014-09-06 15:11:39 -04:00
Lioncash
690ed8580c
Common: Kill off duplicate log warning definitions
...
Also embed the log checks rather than using macros
2014-09-06 15:11:29 -04:00
shuffle2
85fd8c2bec
Merge pull request #983 from lioncash/lol-str
...
Common: Fix a potential infinite loop in ReplaceAll
2014-09-06 12:00:23 -07:00
shuffle2
1b23432d34
Merge pull request #990 from rohit-n/fix-formatting
...
Fix formatting
2014-09-06 11:54:17 -07:00
comex
6c382f6627
Merge pull request #926 from comex/ppcstate-reg
...
PowerPCState register (and rationalize register usage, and add some registers to replace it)
2014-09-06 13:24:38 -04:00
comex
6fd0333c14
Symbolicize explicit uses of x86 registers where possible (GPRs only for now).
...
Uses are split into three categories:
- Arbitrary (except for size savings) - constants like RSCRATCH are
used.
- ABI (i.e. RAX as return value) - ABI_RETURN is used.
- Fixed by architecture (RCX shifts, RDX/RAX for some instructions) -
explicit register is kept.
In theory this allows the assignments to be modified easily. I verified
that I was able to run Melee with all the registers changed, although
there may be issues if RSCRATCH[2] and ABI_PARAM{1,2} conflict.
2014-09-06 13:18:31 -04:00
comex
67cdb6e07a
Factor code from ABI_CallFunctionRR and GetWriteTrampoline into a helper, and fix a special case.
...
The special case is where the registers are actually to be swapped (i.e.
func(ABI_PARAM2, ABI_PARAM1); this was previously impossible but would
be ugly not to handle anyway.
2014-09-06 13:16:20 -04:00
Lioncash
1d66b1d3f4
Common: Remove HAVE_CXX11_SYNTAX define from Common.h
...
All the compilers we support have C++11 support now, so this isn't needed.
2014-09-06 11:32:19 -04:00
Rohit Nirmal
629ceaf2b1
Split some parts of UpdateBoundingBox into multiple lines. Also,
...
fix issues causing failure on Lint.
2014-09-06 09:49:27 -05:00
Rohit Nirmal
1ecb318bcc
Fix some formatting (new lines on collapsed single-line conditionals,
...
new lines for opening braces).
2014-09-06 01:23:05 -05:00
lioncash
3e0c04a83e
Common: Fix a potential infinite loop in ReplaceAll
...
Prior to this change, it was possible to cause an infinite loop by making the string to be replaced and the replacing string the same thing.
e.g.
std::string some_str = "test";
ReplaceAll(some_str, "test", "test");
This also changes the replacing in a way that doesn't require starting from the beginning of the string on each replacement iteration.
2014-09-05 15:12:17 -04:00
Fiora
07e0c917c6
Revert "JIT64: optimize CA calculations"
2014-09-05 10:26:30 -07:00
comex
97420c6ec6
Merge pull request #852 from FioraAeterna/optimizeca
...
JIT64: optimize CA calculations
2014-09-05 11:52:02 -04:00
comex
aa1df21bb6
Merge pull request #947 from FioraAeterna/rsqrte
...
JIT: implement frsqte
2014-09-05 11:48:00 -04:00
Lioncash
6369173981
DolphinWX: Simplify wiki link construction
2014-09-04 21:30:33 -04:00
lioncash
bd91e8b0c8
Common: Remove unused header from Thread.cpp
...
This define isn't even used in the Windows builds.
2014-09-04 09:15:18 -04:00
Rachel Bryk
345b608d64
Change IniFile::Section::Set() with default value to use a template.
2014-09-04 03:29:49 -04:00
shuffle2
4fcb633df5
Merge pull request #961 from RachelBryk/logs
...
Read the config file before enabling logs.
2014-09-03 17:20:11 -07:00
Rachel Bryk
22d2c7d053
Read the config file before enabling logs.
2014-09-03 19:50:02 -04:00
shuffle2
05cd06539b
Merge pull request #960 from lioncash/preproc-stuff
...
Common: Make TITLEID_SYSMENU a static const variable in NandPaths.h
2014-09-03 15:22:32 -07:00
lioncash
a687cc556b
Common: Make TITLEID_SYSMENU a static const variable in NandPaths.h
2014-09-03 18:03:23 -04:00
Fiora
1b50f9df14
JIT: implement fres
...
Mostly a straightforward translation of the interpreter code, with a few
tricksy optimizations and fallbacks for rare paths.
2014-09-03 12:15:30 -07:00
Fiora
c72a133206
JIT: implement frsqrte
...
Mostly a straightforward translation of the interpreter code, with a few
tricksy optimizations and fallbacks for rare paths.
2014-09-03 11:21:04 -07:00
Dolphin Bot
e1248599eb
Merge pull request #868 from FioraAeterna/bmi
...
x64Emitter: add BMI1/BMI2 support
2014-09-03 19:24:27 +02:00
lioncash
f69e6ef16f
Common: Remove unnecessary define check in Log2
2014-09-03 13:04:48 -04:00
Fiora
5088a2b4e2
x64Emitter: add BMI1/BMI2 support
...
TZCNT and LZCNT use a completely different encoding scheme, so they should
probably go in a separate patch.
Also add some tests.
2014-09-03 10:04:01 -07:00
shuffle2
db84a22109
Merge pull request #770 from lioncash/panic
...
Core: Fix case where a panic alert wouldn't be shown in MemoryUtil.cpp
2014-09-03 00:10:12 -07:00
comex
64575d565a
Merge pull request #923 from FioraAeterna/fixcallersave
...
JIT: Fix caller-save registers on WIN64
2014-09-03 02:27:44 -04:00
shuffle2
532b7bb7da
Merge pull request #893 from rohitnirmal/scan-build-fixes
...
Scan build fixes
2014-09-02 23:15:18 -07:00
Fiora
9e4419e786
x64Emitter: add support for shorter EAX forms of instructions
...
Should save a few bytes of code size here and there.
2014-09-02 21:52:41 -07:00
Fiora
6655c7775e
JIT: Fix callee-save registers on WIN64
2014-09-02 10:56:14 -07:00
Pierre Bourdon
e72146d19c
x64Emitter: Do not assert-fail on redundant MOVs, instead show an error log
2014-09-02 10:17:32 +02:00
Pierre Bourdon
a79ced2fc2
x64Emitter: Make it clear for both SSE to int conv that X64 regs are expected
2014-09-02 09:55:47 +02:00
Pierre Bourdon
c428c5999f
x64Emitter: UNPCKLPS/HPS are now tested
2014-09-02 09:53:00 +02:00
Pierre Bourdon
cc0b048c0b
x64Emitter: Support FLD/FSTP with 80 bits operands
2014-09-02 09:52:59 +02:00
Pierre Bourdon
f99f302c91
x64Emitter: assert instead of crashing when generating MOVZX with a wrong size
2014-09-02 09:52:04 +02:00
Pierre Bourdon
b1738b60fc
x64Emitter: Fix MUL with AH/BH/CH/DH registers.
2014-09-02 09:52:04 +02:00
Pierre Bourdon
f0e8b1fda8
x64Emitter: Error out on 8 bits CMOV, and emit 16 bits CMOV properly
2014-09-02 09:52:04 +02:00
Pierre Bourdon
d4ec9737bd
x64Emitter: Assert when using an invalid POP instead of generating an INT3
2014-09-02 09:52:04 +02:00
Pierre Bourdon
9c4daac3a4
x64Emitter: RDTSC now without a typo'd name
2014-09-02 09:52:04 +02:00
Pierre Bourdon
88af225070
x64Emitter: Remove a declared function that is never implemented
2014-09-02 09:52:04 +02:00
Pierre Bourdon
5941653d47
Merge pull request #920 from shuffle2/msvc-gtest
...
Provide a way to build and run unittests on Windows
2014-09-02 07:40:49 +02:00
Pierre Bourdon
9b10d36a85
Merge pull request #938 from lioncash/statics
...
Common: Make the LUTs in ColorUtil static
2014-09-02 07:36:17 +02:00
Lioncash
824a0a19f1
Common: Make the LUTs in ColorUtil static
2014-09-02 00:52:13 -04:00
Shawn Hoffman
839cace5ff
msvc: get UnitTests compiling
...
Choose it from VS or pass /p:RunUnitTests=true to msbuild
2014-09-01 21:27:45 -07:00
Shawn Hoffman
266992684d
msvc: remove some remnants of SDL and DSound from projects and general cleanup.
2014-09-01 21:27:44 -07:00
Fiora
b51aa4fa89
Rename Log2 and add IsPow2 to MathUtils for future use
...
Also remove unused pow2/pow2f functions.
2014-09-01 20:41:07 -07:00
Lioncash
ec9fc6bfc1
Common: Remove unnecessary "using namespace Gen;" from x64emitter
2014-09-01 23:10:56 -04:00
Lioncash
ba4934b75e
Common: Clean up brace placements
2014-08-30 18:06:35 -04:00
Lioncash
1d706b2311
Get rid of C-style empty function parameter indicators
2014-08-30 15:23:48 -04:00
comex
683191b6c6
Merge pull request #892 from comex/oh-the-abstraction
...
Optimize PointerWrap.
2014-08-28 17:28:16 -04:00
comex
faa2666393
PointerWrap currently checks its mode for every individual byte of everything it 'does', including all of RAM. Make it not do that.
...
Decreases total Wii state save time (not counting compression) from
~570ms to ~18ms.
The compiler can't remove this check because of potential aliasing; this
might be fixable (e.g. by making mode const), but there is no reason to
have the code work in such a braindead way in the first place.
- DoVoid now uses memcpy.
- DoArray now uses DoVoid on the whole rather than Doing each element
(would fail for an array of STL structures, but we don't have any of
those).
- Do also now uses DoVoid. (In the previous version, it replicated
DoVoid's code in order to ensure each type gets its own implementation,
which for small types then becomes a simple load/store in any modern
compiler. Now DoVoid is __forceinline, which addresses that issue and
shouldn't make a big difference otherwise - perhaps a few extra copies
of the code inlined into DoArray or whatever.)
2014-08-28 15:35:19 -04:00
Fiora
f9d4ff0d5d
x64Emitter: add support for some missing CVT instructions
2014-08-27 20:15:42 -07:00
Rohit Nirmal
4c14ebdf32
Remove pointless initializations.
2014-08-27 20:36:49 -05:00
comex
de7294ecc1
Add Flag support to ChunkFile.h
2014-08-26 12:43:39 -04:00
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
9a61cfc650
Core: Actually show MemoryUtil.cpp allocation error messages on Linux
2014-08-10 05:28:00 -04:00
Lioncash
be3428cf8e
Core: Fix case where a panic alert wouldn't be shown in MemoryUtil.cpp
2014-08-10 04:50:58 -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
Tillmann Karras
0ccee6c87b
Fix warnings unearthed by #579
2014-07-13 02:16:51 +02:00
degasus
7e79806efc
remove unused globals
...
Also change globals into statics which are only used in one file
2014-07-11 16:10:20 +02:00
degasus
81ed17be53
avoid the extern keyword in .cpp files
2014-07-11 16:10:20 +02:00
degasus
22e1aa5bb4
mark all local functions as static
2014-07-11 16:07:23 +02:00
Lioncash
09eb1acc5e
Common: Using size_t in PointerWrap's DoContainer apparently causes crashes. Fixes this.
2014-07-06 03:05:27 -04:00
Lioncash
b97d2853a7
Common: Make DoContainer within PointerWrap private.
...
This shouldn't really be exposed as a public function and should only be called through other Do class functions that take a container type as a parameter.
2014-07-05 23:03:43 -04:00
Lioncash
bd377b9580
Merge pull request #443 from magumagu/loadstore-cleanup
...
Loadstore cleanup
2014-06-26 21:32:59 -04:00
Lioncash
ca5340ebde
Centralize the logging code into its own folder in Common.
2014-06-25 22:11:42 -04:00
Lioncash
177658aed6
Merge pull request #513 from lioncash/vs-x64
...
Remove the 32-bit config platform from the VS solution file
2014-06-25 21:23:45 -04:00
Lioncash
8b13afbb8e
Remove the 32-bit config platform from the VS solution and projects
2014-06-24 22:07:26 -04:00
Lioncash
eb3de73ab9
Merge pull request #531 from LPFaint99/memcard
...
GCI Folder: correctly identify region of sysmenu
2014-06-24 21:18:27 -04:00
Jordan Woyak
516369594f
Store ini sections in a std::list (rather than vector) to prevent unexpected pointer invalidation with use of GetOrCreateSection.
2014-06-24 12:37:38 -05:00
LPFaint99
c65a6f5fb0
GCI Folder: correctly identify region of sysmenu
2014-06-23 19:58:27 -07:00
Pierre Bourdon
ce74752e91
Common: Add a PCAP writer module
2014-06-22 20:04:46 +02:00
Pierre Bourdon
5dff577339
Merge pull request #500 from lioncash/ini
...
Use only section-based ini reading.
2014-06-22 17:21:45 +02:00
magumagu
06864e9fee
JIT: Clean up float loads and stores.
...
Less code is good, and this should make future changes to memory handling
easier.
2014-06-20 12:52:39 -07:00
Lioncash
f05d3f6e5d
Use only section-based ini reading.
2014-06-16 01:31:23 -04:00
magumagu
ee0c5bdc20
Try to fix android build.
2014-06-15 15:56:42 -07:00
magumagu
d905cbfd5d
Don't set DAZ on x86 in non-IEEE mode.
...
I have no idea why we were using it in the first place; it doesn't match
the behavior of PPC NI flag.
2014-06-15 03:51:51 -07:00
Tony Wasserka
3d6f9ef897
BitField: Add an explicit getter function for retrieving the BitField value.
...
Sometimes (in particular when using non-typesafe functions) it can be convenient to have a getter method rather than performing a potentially lengthy explicit cast.
2014-06-11 20:58:40 +02:00
Tony Wasserka
b3c7f003da
BitField: Delete copy assignment to prevent obscure bugs.
2014-06-11 20:58:40 +02:00
Ryan Houdek
6e1d312091
Make it so ARMv7 isn't a generic target.
...
Rearranges a bit of code so that ARM isn't a generic build anymore. Because it obviously isn't
2014-06-07 20:26:31 -05:00
Ryan Houdek
b6db0d0ab8
Merge pull request #457 from Tilka/jcc
...
x64Emitter: J_CC: use 32 bit offset automatically
2014-06-06 20:53:50 -05:00
Lioncash
3843848ed4
Use std::string in LogContainer's constructor.
...
This allows for removal of the strcpy calls, also it's technically way more safe, though I doubt we'll ever have a log name larger than 128 characters or a short description larger than 32 characters.
Also moved these assignments into the constructor's initializer list.
2014-06-05 18:50:14 -04:00
Tillmann Karras
f8280401f6
x64Emitter: J_CC: use 32 bit offset automatically
2014-06-03 23:08:58 +02:00
Ryan Houdek
3a06907653
Merge pull request #455 from lioncash/arm-cpudetect-fix
...
Stringify ArmCPUDetect.cpp.
2014-06-02 20:10:39 -05:00
Lioncash
7d7b3d6156
Stringify ArmCPUDetect.cpp.
2014-06-02 21:08:26 -04:00
Ryan Houdek
5d3382fb56
Fix a crash in ARM's CPUDetect on a malformed /proc/cpuinfo.
...
If a CPU string was incapable of being found we would return a null pointer, which would crash with strncpy.
Also if we couldn't get a CPU implementer we would call free() to a null pointer.
In addition, detect 64bit ARM running.
2014-06-01 23:55:38 -05:00
Ryan Houdek
87e671404a
Make MemoryUtil.cpp use the correct x86_64 define.
...
MemoryUtil.cpp was incorrectly using the old __x86_64__ define when it should be using _M_X86_64.
It was also using _ARCH_64 when it shouldn't have which was causing an errant PanicAlert to come up in my development.
2014-06-01 23:45:44 -05:00
Lioncash
49b0eef393
Remove the min/max functions in CommonFuncs.
...
The algorithm header has the same functions.
2014-05-29 21:44:41 -04:00
Lioncash
eca70d1562
Get rid of the temporary buffer in IniFile's Load function.
...
std::getline is the string-based equivalent.
2014-05-28 20:26:15 -04:00
Rachel Bryk
80ab567a5b
When reading an ini file, if there is an error, check if it is simply because the eof was reached.
2014-05-28 14:06:18 -04:00
Pierre Bourdon
10efd5b8c0
Merge pull request #430 from shuffle2/xsave-workaround-fix
...
msvc C initializers return int...fix EnableXSaveWorkaround when rax doesn't implicitly equal zero.
2014-05-28 12:25:25 +02:00
Pierre Bourdon
ce139622f6
Merge pull request #392 from RachelBryk/error-check-ini-file
...
Check for errors when reading lines from ini files.
2014-05-28 11:57:00 +02:00
Shawn Hoffman
47a2eb47a0
msvc C initializers return int...fix EnableXSaveWorkaround when rax doesn't implicitly equal zero.
2014-05-28 00:16:33 -07:00
Shawn Hoffman
58bcc3d12a
Redo commit 932945d480
...
This time, make sure the object for disabling XSave support in msvcr can't be dropped by the linker.
2014-05-27 13:41:19 -07:00
Rachel Bryk
0782d106db
Check for errors when reading lines from ini files.
...
Fixes issue 7283.
2014-05-23 03:17:19 -04:00
Lioncash
5f796e919b
Move bn.h and ec.h into the correct filter section
2014-05-17 16:47:41 -04:00
Lioncash
d0bd4119d1
Use size_t in std::string operations in IniFile.cpp, not int
2014-05-14 20:38:08 -04:00
shuffle2
36720e6822
Merge pull request #351 from Tilka/make_unique
...
Add a std::make_unique implementation (Common/StdMakeUnique.h)
2014-05-11 01:46:09 -07:00
Tillmann Karras
4400e511c0
fixmeup rename
2014-05-11 10:40:18 +02:00
Shawn Hoffman
700c135386
Revert "x64FPURoundMode: always set x87 precision"
...
This reverts commit 9de77b7c23
.
Setting x87 precision control is only supported on x86 platforms (not ARM or x64).
2014-05-10 20:21:07 -07:00
Tillmann Karras
81d4d7368a
Add a std::make_unique implementation
...
Some compilers we care about (mostly g++) do not support std::make_unique yet,
but we still want to use it in our codebase to make unique_ptr code more
readable. This commit introduces an implementation derivated from the libc++
code in the Dolphin codebase so we can use it right now everywhere.
Adapted from delroth's pull request.
2014-05-06 12:32:03 +02:00
Tillmann Karras
9de77b7c23
x64FPURoundMode: always set x87 precision
...
Set the x87 precision, even on x64. Since we are using x87 instructions
in the JIT now, we can't guarantee that x87 precision will never
influence Dolphin on x64.
2014-05-01 01:10:00 +02:00
Tillmann Karras
ed762a3eda
x64FPURoundMode: use fesetround() instead of asm
2014-05-01 01:09:55 +02:00
Tillmann Karras
e659f5ac58
JitBackpatch: fix NOP padding
...
The new NOP emitter breaks when called with a negative count. As it
turns out, it did happen when deoptimizing 8 bit MOVs because they are
only 4 bytes long and need no BSWAP.
2014-04-30 15:26:11 +02:00
Pierre Bourdon
aef24d509b
Merge pull request #304 from Tilka/nop
...
Optimize NOPs
2014-04-27 11:52:05 +02:00
Tillmann Karras
886c887e80
Fix Fastmem on CPUs without MOVBE
...
The problem was that when BSWAP was used, UnsafeWriteRegToReg() returned
the address of that instead of the MOV.
2014-04-25 01:11:52 +02:00
Tillmann Karras
acfd9ee76c
Add remaining possible uses of MOVBE
...
Also fixes a missing 'break' statement in DisassembleMov().
2014-04-24 16:36:03 +02:00
Tillmann Karras
957649b7af
Optimize NOPs
2014-04-23 21:15:09 +02:00
Tillmann Karras
b3c7395a23
Atomic: support clang 3.4+
2014-04-17 10:39:02 +02:00
Pierre Bourdon
cf315a487f
Merge pull request #271 from delroth/threading-stuff
...
Threading improvements: add Common::Flag and improve Common::Event
2014-04-14 23:23:16 +02:00
Pierre Bourdon
7074feacbe
Common::Event: Add a faster Windows specific implementation based on the concurrency runtime.
2014-04-14 23:13:15 +02:00
Pierre Bourdon
48bd904028
Common::Event: Implement in terms of Common::Flag to get rid of a volatile and optimize with early returns and atomic swaps
2014-04-14 23:13:15 +02:00
Pierre Bourdon
e24cad0780
Common::Flag: Add support for TestAndSet + test by implementing basic spinlocks.
2014-04-14 23:13:15 +02:00
Tony Wasserka
ccc04944b2
BitField: Fix alignment issues.
...
At least one platform (ARM with NEON instructions enabled) generates SIGBUSes if BitField objects aren't aligned properly.
2014-04-14 20:04:44 +02:00
Pierre Bourdon
6bdcbad3e4
Common: Move the Event class to a separate file, and add tests for it. Fix includes everywhere to match this.
2014-04-14 10:54:07 +02:00
Pierre Bourdon
f9fb39d383
Common: Add a 'Flag' class that is used to encapsulate a boolean flag manipulated from several threads
2014-04-14 10:54:07 +02:00
Tony Wasserka
12841928df
BitField: Optimize generated assembly by forcing inlining.
2014-04-13 13:27:01 +02:00
Pierre Bourdon
b2597739ff
x64Emitter: Add the MOVBE instruction.
2014-04-11 23:33:21 +02:00
Pierre Bourdon
d2de1ddabc
CPUDetect: add support for MOVBE detection
2014-04-11 23:29:03 +02:00
Ryan Houdek
87d106d65c
Remove dumb CodeBlock duplication in the emitters.
...
Fixes issue 6990.
This uses a bit of templating to remove the duplicate code that is the CodeBlocks in each emitter headers.
No actual functionality change in this.
2014-04-09 13:53:43 -05:00
Ryan Houdek
93c871522f
Fix a bug in the ARMEmitter.
...
When creating a Fixupbranch we were swapping the BL and B targets.
I think this was found by PPSSPP a while ago, but they never send PRs to merge their changes upstream.
2014-04-06 10:28:41 -04:00
Pierre Bourdon
664c8d30a0
Remove all trailing whitespaces from our codebase.
2014-03-29 11:05:44 +01:00
comex
4d5df0d008
Fix IsTriviallyCopyable for volatile (fixes Mac build).
...
Between C++11 and C++14, volatile types stopped being trivially
copyable. The serializer has no reason to care about this distinction,
so tack on remove_volatile.
2014-03-27 23:42:52 -04:00
magumagu
4eab240e25
Compute stack usage correctly in ABI_CallFunctionPC.
...
(The numbers need to be consistent with the actual usage, or else the stack gets corrupted.)
2014-03-25 20:48:25 -07:00
magumagu
e4081b29f9
Use unaligned stores to save XMM regs to stack.
...
On Win32, the stack isn't aligned, so aligned stores will cause crashes.
2014-03-25 20:46:36 -07:00
Pierre Bourdon
5fc6ce59c3
Merge pull request #210 from magumagu/writerex-fix
...
Fix OpArg::WriteRex with 8-bit memory operand.
2014-03-26 02:34:44 +01:00
Tony Wasserka
48a1790d81
Common: Add a generic class for accessing bitfields in a fast and endianness-independent way.
...
The underlying storage type of a bitfield can be any intrinsic integer type,
but also any enumeration.
Custom storage types are supported if the following things are defined on the storage type:
- casting 0 to the storage type
- bit shift operators (in both directions)
- bitwise & operator
- bitwise ~ operator
- std::make_unsigned specialization
2014-03-25 23:33:04 +01:00
magumagu
03292eabc2
Fix OpArg::WriteRex with 8-bit memory operand.
...
Previously he function was misbehaving because of a missing check for
whether an 8-bit operand was a register operand; it would therefore
emit unnecessary REX prefixes, incorrectly assert on 32-bit targets, and
could potentially emit wrong code in rare cases (like a memory to register
operation involving AH.)
Also, some cleanup while I was in the area to make the function easier to
read.
2014-03-25 14:09:15 -07:00
Tillmann Karras
af525266d4
MathUtil: add constructors to IntFloat/IntDouble
2014-03-24 16:14:22 +01:00
Ryan Houdek
3586ab1d4c
Fix the Android build when using clang 3.4
2014-03-17 17:56:22 -05:00
Tillmann Karras
fa3cc05753
Turn some non-const refs into pointers
2014-03-17 02:55:57 +01:00
Lioncash
a82675b7d5
Kill off some usages of c_str.
...
Also changes some function params, but this is ok.
Some simplifications were also able to be made (ie. killing off strcmps with ==, etc).
2014-03-14 13:51:23 -04:00
Matthew Parlane
31cfc73a09
Fixes spacing for "for", "while", "switch" and "if"
...
Also moved && and || to ends of lines instead of start.
Fixed misc vertical alignments and some { needed newlining.
2014-03-11 00:35:07 +13:00
Tillmann Karras
d802d39281
clang-modernize -use-nullptr
...
and s/\bNULL\b/nullptr/g for *.cpp/h/mm files not compiled on my machine
2014-03-09 21:14:26 +01:00
Tillmann Karras
f28116b7da
clang-modernize -add-override
2014-03-09 21:12:01 +01:00
Tillmann Karras
c89f04a7c5
clang-modernize -loop-convert
...
and some manual adjustments
2014-03-09 21:11:59 +01:00
Tillmann Karras
9ef64245fa
MathUtil: fix IsQNAN()
...
The constants were one nibble too short and the lower 51 bits don't
actually have to be zero.
2014-03-09 19:34:58 +01:00
Tillmann Karras
d05e205a24
FPURoundMode: revert use of enums in bit-fields
...
The workaround of using fixed underlying types produces lots of warnings
in GCC because now the bit-fields are too small for the value range used
for conversion semantics.
2014-03-09 15:24:35 +01:00
Pierre Bourdon
edba8096bf
x64Emitter: Add functions to call a C++ std::function from JITed code
2014-03-08 23:32:43 +01:00
Pierre Bourdon
9869c53859
x64ABI: Add two more CallFunction functions (for additional parameter types).
2014-03-08 23:32:43 +01:00
Pierre Bourdon
6d6abfa61f
x64Emitter: Allow const pointers where it makes sense to do so.
2014-03-08 23:32:43 +01:00
Pierre Bourdon
248f5d7f22
Merge pull request #130 from lioncash/breakpoint-clear
...
Actually make PPCDebugInterface::ClearAllBreakpoints have functionality.
2014-03-07 20:42:52 +01:00
Matthew Parlane
57f2eda130
Fix MAC address reading on Windows.
2014-03-07 21:40:59 +13:00
Shawn Hoffman
932945d480
Implement workaround for Windows versions which do not support XSAVE.
...
Fixes CRT math routines using FMA instructions from causing illegal instructions.
2014-03-06 14:38:10 -08:00
Shawn Hoffman
8995d299f2
windows: move arch defines to base.props
2014-03-06 14:37:40 -08:00
Lioncash
610a6f9b23
Add ClearAllMemChecks to DebugInterface
...
Breakpoints have one, but memchecks don't, despite being cleared directly in the breakpoint window.
Now DolphinWX should call the interface functions and not the direct functions of the breakpoints or memchecks for clearing.
2014-03-05 21:50:23 -05:00
Shawn Hoffman
3647dfa711
Allow VS builds to be speedy again.
2014-03-05 11:17:14 -08:00
Shawn Hoffman
7733463e65
commit 1a428de189
introduced a bug by using a signed enum in a bitfield, the value of which is then used in a ldmxcsr instruction. The sign-extension corrupts the value, causing an exception by attempting to load mxcsr with an invalid value.
2014-03-05 10:19:29 -08:00
Ryan Houdek
4f02132f93
Make our architecture defines less stupid.
...
Our defines were never clear between what meant 64bit or x86_64
This makes a clear cut between bitness and architecture.
This commit also has the side effect of bringing up aarch64 compiling support.
2014-03-04 09:36:59 -06:00
Lioncash
279a8c0148
Change the DebugInterface, PPCDebugInterface, and DSPDebugInterface to use CamelCase names.
...
This is the standard coding convention in the codebase, so our interfaces should use it too.
2014-03-03 00:39:08 -05:00
Tillmann Karras
7a66a3ded1
ArmEmitter: make it more readable
2014-02-28 12:43:22 +01:00
Tillmann Karras
46e7c0657f
Crypto: small cleanup
2014-02-28 12:43:22 +01:00
Tillmann Karras
315a8ba1c0
Various changes suggested by cppcheck
...
- remove unused variables
- reduce the scope where it makes sense
- correct limits (did you know that strcat()'s last parameter does not
include the \0 that is always added?)
- set some free()'d pointers to NULL
2014-02-28 12:43:20 +01:00
Tillmann Karras
5f0a8008f4
Convert MemoryUtil.cpp to Unix-style line endings
2014-02-28 12:28:21 +01:00
Tillmann Karras
1a428de189
x64FPURoundMode: move things around a bit
2014-02-28 12:28:21 +01:00
degasus
94da4e1aa2
MathUtil: Change Log2 return value to int
...
Log2(u64) can't be bigger than 63, so there is no need in forcing a 64 bit value.
So just using a common int seems more natural.
2014-02-26 11:37:28 +01:00
Pierre Bourdon
70f3a069f2
Revert "Merge pull request #83 from lioncash/remove-console"
...
This breaks Linux stdout logging.
This reverts commit 7ac5b1f2f8
, reversing
changes made to 9bc14012fc
.
Revert "Merge pull request #77 from lioncash/remove-console"
This reverts commit 9bc14012fc
, reversing
changes made to b18a33377d
.
Conflicts:
Source/Core/Common/LogManager.cpp
Source/Core/DolphinWX/Frame.cpp
Source/Core/DolphinWX/FrameAui.cpp
Source/Core/DolphinWX/LogConfigWindow.cpp
Source/Core/DolphinWX/LogWindow.cpp
2014-02-23 07:48:06 +01:00
Pierre Bourdon
311caef094
Merge pull request #25 from Tilka/ppc_fp
...
Fix non-IEEE mode
2014-02-23 04:15:37 +01:00
Pierre Bourdon
83b7bb64aa
Make Common/ mostly IWYU clean (and fix errors in rest of the project detected by this change).
2014-02-22 23:37:29 +01:00
Lioncash
91286f5021
Fix the Windows build in relation to the recent changes.
2014-02-20 01:01:11 +01:00
Pierre Bourdon
9a8ea53195
Fix LinearDiskCache.h relying on a file not directly included.
2014-02-20 01:01:11 +01:00
Pierre Bourdon
3f9c38d231
Fix more header sorting issues in Common/ (now check-includes clean).
2014-02-20 01:01:10 +01:00
Lioncash
2afe215271
Convert all includes to relative paths.
2014-02-18 02:19:10 -05:00
Lioncash
3fd87a7636
Second and final pass of clearing out tabs.
2014-02-17 02:19:41 -05:00
Lioncash
cd8196f5db
Turns out Console.cpp and ConsoleListener.cpp were being built into the Linux builds too. Fixes the build.
2014-02-16 20:55:07 -05:00
Lioncash
ca7bdf1d5d
Remove the embedded Console from the possible logging options.
...
Note I do not mean the Logging window, but the console window.
It's literally rarely, if at all used, and offers less advantages over the built-in logging window (ie. it breaks on different locales: http://i.imgur.com/Cs92tQE.png )
This commit should remove all of the console logging.
2014-02-16 20:40:33 -05:00
Pierre Bourdon
92f8d93e96
Remove the old MMIO access "interface".
2014-02-16 19:22:40 +01:00
Tillmann Karras
404624bf0b
Turn loops into range-based form
...
and some things suggested by cppcheck and compiler warnings.
2014-02-13 09:05:50 +01:00
Tillmann Karras
2ff794d299
Fix some warnings
2014-02-13 09:02:43 +01:00
Matthew Parlane
88526be3b5
Merge pull request #50 from Parlane/inifile_tidy
...
Fix IniFile to use string& instead of char*
2014-02-13 19:04:27 +13:00
Matthew Parlane
3fe05e0a9f
Fix IniFile to use string& instead of char*
...
Also removes .c_str() usages where found.
2014-02-13 17:06:30 +13:00
Scott Mansell
cf5938c4df
x64Emitter: Fix the PSUBQ instruction's opcode
2014-02-12 23:12:17 +01:00
Scott Mansell
1eb8168488
x64Emitter: Add the xmm, xmm form of PSRLQ instruction.
2014-02-12 23:12:16 +01:00
Tillmann Karras
1f34ed2c25
Re-enable non-IEEE mode support
2014-02-12 23:12:16 +01:00
Tillmann Karras
db196d8c5b
Jit64[IL]: fix float conversions
...
Floating-point is complicated...
Some background: Denormals are floats that are too close to zero to be
stored in a normalized way (their exponent would need more bits). Since
they are stored unnormalized, they are hard to work with, even in
hardware. That's why both PowerPC and SSE can be configured to operate
in faster but non-standard-conpliant modes in which these numbers are
simply rounded ('flushed') to zero.
Internally, we do the same as the PowerPC CPU and store all floats in
double format. This means that for loading and storing singles we need a
conversion. The PowerPC CPU does this in hardware. We previously did
this using CVTSS2SD/CVTSD2SS. Unfortunately, these instructions are
considered arithmetic and therefore flush denormals to zero if non-IEEE
mode is active. This normally wouldn't be a problem since the next
arithmetic floating-point instruction would do the same anyway but as it
turns out some games actually use floating-point instructions for
copying arbitrary data.
My idea for fixing this problem was to use x87 instructions since the
x87 FPU never supported flush-to-zero and thus doesn't mangle denormals.
However, there is one more problem to deal with: SNaNs are automatically
converted to QNaNs (by setting the most-significant bit of the
fraction). I opted to fix this by manually resetting the QNaN bit of all
values with all-1s exponent.
2014-02-12 23:12:15 +01:00
Tillmann Karras
c25c4a6e20
x64: add support for some x87 instructions
2014-02-12 22:45:01 +01:00
Tillmann Karras
3218f6cca8
x64: drop instructions that don't exist
...
These instructions don't exist in hardware although I agree that they
would be useful for our purposes ;)
2014-02-11 05:22:53 +01:00
lioncash
d2038049f5
Replace all include guard ifdefs with "#pragma once"
2014-02-10 18:07:16 -05:00
Matthew Parlane
32bfcc034f
Some tidy up of sprintf to StringFromFormat
...
Includes a small fix to SetupWiiMemory
2014-02-10 17:25:18 +13:00
Lioncash
ebb48d019e
Clean up some struct indentations
...
Also cleaned up the indentations of some variable declarations.
2014-02-09 19:40:11 -05:00
Lioncash
40182a48a5
Cleanup enum indentations.
2014-02-09 16:16:10 -05:00
Pierre Bourdon
e59f770ccb
Revert "Merge pull request #49 from Parlane/sprintf_tidy"
...
Change broke the build on Debian stable.
This reverts commit 28755439b3
, reversing
changes made to 64e01ec763
.
2014-02-09 16:14:13 +01:00
Matthew Parlane
ebff7974c3
Some tidy up of sprintf to StringFromFormat
2014-02-08 14:32:48 +13:00
Matthew Parlane
6b980cbf30
Tidy up SetupWiiMemory
2014-02-07 19:00:34 +13:00
Pierre Bourdon
70e2ed320d
Revert "Merge pull request #47 from lioncash/remove-stringfromint"
...
Breaks Android build.
This reverts commit 12d026c544
, reversing
changes made to 6d678490f5
.
2014-02-07 00:26:33 +01:00
Pierre Bourdon
12d026c544
Merge pull request #47 from lioncash/remove-stringfromint
...
Remove function StringFromInt from StringUtil.cpp/.h. C++11 has std::to_string for this now.
2014-02-07 00:19:15 +01:00
Lioncash
05742ffd48
Remove function StringFromInt from StringUtil.cpp/.h. C++11 has std::to_string for this now.
2014-02-06 18:08:31 -05:00
Matthew Parlane
70d2592ffb
Fix warnings found by StringFromFormat having printf style checking.
2014-02-07 01:38:08 +13:00
Matthew Parlane
09cc7e2ddf
Give StringFromFormat a printf format attribute.
...
It gives StringFromFormat printf style arguments that should be type-checked against a format string.
2014-02-07 01:10:04 +13:00
Lioncash
249b00c469
Change the modified parameter in the Clamp function to be a pointer.
...
Makes it easier to identify the one being modified.
2014-02-05 04:04:35 -05:00
Lioncash
6b87a0ef20
Introduce a generic clamp function to clean up some similarly duplicated code.
2014-02-04 20:43:07 -05:00
Lioncash
7ebc829b17
Remove a pointless c_str() call in FileUtil.cpp. The function takes a string in it's parameter
2014-02-03 21:31:12 -05:00
Tillmann Karras
b34fe2b8f1
x64: fix parameter names of WriteModRM()
2014-01-25 17:36:09 +01:00
Tillmann Karras
21b0252e27
Jit64: disable non-IEEE mode emulation
...
I give up. Merging the ppc_fp branch has caused issues in numerous games
and I can't find the bug. I'm leaving this merged to enable easy
recompilation for people who would like to play games that benefit from
non-IEEE mode emulation (e.g. Starfox Assault).
2014-01-19 09:36:08 +01:00
Jasper St. Pierre
34692ab826
Remove unnecessary Src/ folders
2013-12-31 14:03:19 -05:00
Jasper St. Pierre
43e618682e
Convert all vcxproj files to UNIX line endings
2013-12-31 14:03:18 -05:00
comex
1b617c736c
Add a non-tiny warning about CPUs that will silently desync.
2013-12-16 22:41:52 -05:00
Ryan Houdek
eb3b933dd0
Remove all instances of OpenCL in the Dolphin Project. A brief history of OpenCL in Dolphin. OpenCL was originally added to the Dolphin codebase 1 month after it was released with OS X Snow Leopard in 2009. OpenCL was one of the largest group projects that Dolphin ever has had. The OpenCL texture decoder was originally aded with version 1.0 of the OpenCL spec; This version didn't have the capability of a OpenCL-OpenGL interop which would allow for uploading textures once and have it decoded directly to a OpenGL texure. This was to be worked out when the OpenCL 1.1 spec was released and allowed the interop. This work has never been done, and no one in the team is willing to work on it for various reasons. OpenCL has had the unreasonable expectation that it increases the performance of video games that require a large amount of EFB copies like NSMBW. In reality, enabling OpenCL just put the graphics card in a higher power mode which increased the game speed. This is due to the unfortunate effect of Dolphin tending to not push GPUs out of their lower frequency power savings modes. Thanks to everyone that had contributed to the OpenCL texture decoder.
2013-12-11 15:15:55 -06:00
comex
eaacf10f71
Fix an idiotic race condition when starting games in multiple Dolphin instances at the same time on Unix.
...
MemArena mmaps the emulated memory from a file in order to get the same
mapping at multiple addresses. A file which, formerly, was located at a
static filename: it was unlinked after creation, but the open did not
use O_EXCL, so if two instances started up on the same system at just
the right time, they would get the same memory. Naturally, this caused
extremely mysterious crashes, but only in Netplay, where the game is
automatically started when the client receives a broadcast from the
server, so races are actually quite likely.
And switch to shm_open, because it fits the bill better and avoids any
issues with using /tmp.
2013-12-10 16:20:52 -05:00
Tillmann Karras
b863e40677
Merge branch 'ppc_fp'
2013-11-18 19:31:09 +01:00
Jordan Cristiano
f96e9e1ae4
warnings and code formatting
2013-11-13 04:03:46 -05:00
Tillmann Karras
288bef2807
x64: add small warning if CPU has SSE2 but not DAZ
2013-11-13 06:26:57 +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
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
comex
2e983071c5
Add git.bat to the options in make_scmrev.h.js because depot_tools uses it and I'm silly.
2013-10-27 19:51:55 -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
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
Ryan Houdek
f4b414a9c1
Fix encoding issue with VADD(Integer)
2013-07-16 22:18:15 -05:00
Ryan Houdek
9123f58bd5
Check for IDIVA/IDIVT correctly. Cortex-A5 parts would have had this set since it supports VFPv4 but not IDIVA. Qualcomm Krait/Krait 300 still doesn't report in the kernel that it supports this.
2013-07-16 01:22:25 -05:00
Ryan Houdek
012c32c14c
[Android] Undefine the swaps in Android completely, not just on ARM Android.
2013-07-11 08:58:10 -05:00
Ryan Houdek
7d6b36bf73
Fix most ARM warnings
2013-07-05 19:56:15 -05:00
John Peterson
0fd3acd152
Saving real Wiimote state
...
because that's simpler than reconnecting
2013-06-25 09:24:14 -04:00
Ryan Houdek
6bb7cc5fea
[Android] Add an about screen that shows build revision.
2013-06-22 22:54:36 -05:00
NeoBrainX
15943de313
Revert "Added optimizations to ClassifyFloat/Double functions in Mathutil.cpp and to PPCCache.cpp"
...
This reverts commit 7aae9ccbc0
.
Reasons:
- no test results have been provided to prove the usefulness of the patch
- broken coding style
- the author hasn't replied to any criticism
2013-06-22 12:25:03 +02:00
Armada
fc7099a905
Set the locale per-thread instead of globally when generating shaders. Add cross-compatible versions of newlocale, uselocale and freelocale.
...
This commit fixes a rare race condition when generating shaders because setlocale is global.
2013-06-16 12:33:13 +02:00
eli173
7aae9ccbc0
Added optimizations to ClassifyFloat/Double functions in Mathutil.cpp and to PPCCache.cpp
2013-06-01 19:17:52 -05:00
Ryan Houdek
09def3ed3f
[Android] Add in a compiling option for GLES3
2013-05-05 23:37:01 -05:00
Matthew Parlane
934e150596
Merge branch 'master' into wii-network
...
Conflicts:
Source/Core/Core/Src/Boot/Boot_BS2Emu.cpp
Source/Core/Core/Src/ConfigManager.cpp
Source/Core/Core/Src/HLE/HLE_OS.h
Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp
Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.h
Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_net.cpp
Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_net.h
2013-04-24 00:48:00 +12:00
Pierre
9a8dd7963e
Merge branch 'dspjit'
...
Conflicts:
Source/Core/Core/Src/DSP/Jit/DSPJitExtOps.cpp
Source/Core/Core/Src/DSP/Jit/DSPJitMisc.cpp
Source/Core/Core/Src/DSP/Jit/DSPJitRegCache.cpp
Source/Core/Core/Src/DSP/Jit/DSPJitUtil.cpp
2013-04-21 12:29:18 +02:00
lioncash
d244bca1f5
Fix a bunch of random typos in comments and logging.
...
Also update the comment headers for two functions in GCMemcard.cpp.
2013-04-19 09:21:45 -04:00
Ryan Houdek
491ffabb56
Android Clang doesn't support TLS, so do the same thing as OSX.
2013-04-18 22:52:53 -05:00
Ryan Houdek
f811d11863
Fix clang building the std headers.
2013-04-18 22:52:05 -05:00
Ryan Houdek
d68955c539
Clang uses __clear_cache instead of __builtin___clear_cache like GCC
2013-04-18 22:50:58 -05:00
Lioncash
bab9963b00
New license header introduced for DiscIO, AudioCommon, InputCommon, VideoCommon, and Common projects.
2013-04-17 23:09:55 -04:00
lioncash
ef85b9af45
Update the license file text (change SVN to Git) in all projects except Core since I was told a merge was happening soon. So for the sake of the merge going smoothly, I'll fix that when I remove the tab/space mismatches from the Core project.
...
Also, some tab/space mismatches removed from VideoOGL, and some places I missed in VideoDX[number] projects.
Now, the Core is literally the only project with tab/space mismatches (on a large scale).
2013-04-15 16:28:55 -04:00
Ryan Houdek
bde7ea00ef
Removes the Java ButtonManager for one in the C++ source so the OSD class can call in to it each frame for drawing the buttons. Copy our assets to the dolphin-emu directory for now. Remove NativeRenderer, ButtonManager, and Button Java classes since they aren't used anymore. Buttons A, B, and Start all work and are drawn on screen now. Button input on Android is still a bit hacky, needs a proper controller interface still. Android specific button drawing code is still hanging out in SWRenderer.cpp
2013-04-14 20:39:56 -05:00
Pierre
6b5b8ab5be
Implement and use MOVZX(64, 32,...)
...
Probably better to keep that same-register-MOV assert useful. Also,
explicit type extension documents whats happening.
Internally, this boils down to the original MOV, but without the assert.
2013-04-14 13:34:29 +02:00
Pierre
701b5916ab
Revert "In memory of calc84."
...
This reverts commit 539bf405f2
.
2013-04-14 13:34:29 +02:00
Ryan Houdek
605bbf5ca8
Merge remote-tracking branch 'origin/master' into Android-trash
2013-04-13 00:58:37 -05:00
Ryan Houdek
6d9c0c8863
Merge in latest changes to ArmEmitter from the PPSSPP crew. Should fix the dumb random crashes I had from IOS icache clearing not initializing a value.
2013-04-12 11:59:19 -05:00
Matthew Parlane
5eeed7aa9f
This should never have been committed. Sorry.
2013-04-12 00:14:38 +12:00
Matthew Parlane
0c9d8d34e1
Merge branch 'master' into wii-network
...
Conflicts:
Source/Core/Core/CMakeLists.txt
2013-04-11 19:55:36 +12:00
Jordan Woyak
385d8e2b15
ChunkFile has allowed me to accidentally "Do" a non-POD for the last time!
2013-04-09 19:02:22 -05:00
Jordan Woyak
71f4bf25a7
Make FifoQueue take advantage of rvalue references to avoid std::vector copies.
2013-04-04 19:34:50 -05:00
Ryan Houdek
d06379fc59
Fix 32bit Linux. GCC's lrotl/lrotr instrinsic functions are 32bit when building for 32bit, we require 64bit at all times, so keep using our own instead.
2013-04-03 12:43:17 -05:00
Ryan Houdek
b5676fe82b
Fix GCC 4.8 compiling. GCC 4.8 now defines _rotl/_rotr/_lrotl/_lrotr.
2013-04-03 10:52:26 -05:00
Jordan Woyak
d951c4c374
real buildfix
2013-04-02 13:07:51 -05:00
Jordan Woyak
c65473d9d3
Probably a sloppy buildfix.
2013-04-01 23:30:05 -05:00
Jordan Woyak
69779a4321
Fix loading of "themes" with non-ascii character names.
...
Fixed issue 6189.
Why did GetUserPath return a non-const ref to string..?
2013-04-01 23:22:20 -05:00
Pierre Bourdon
49d809ac0e
Merge branch 'osx-libcxx'
2013-04-01 18:17:49 +02:00
Lioncash
58159a1693
Some more logging typos and clarifications. Missed these in my last commit.
...
This commit mainly elaborates on some messages a little more. Also fixes some typos that slipped through the last commit.
A large change in text can be seen in EXI_DeviceMemoryCard.cpp. I added more info as to why a write to a memory card may fail. (This actually was a reason I was unable to write to a memcard recently).
Elaborations can be seen in WGL.cpp
I did change some comments in some files that I was correcting logging messages in, however this is only if I spot a typo or if an abbreviation is lower-cased. Even in that case, the amount of changes done to comments is very minimal.
2013-04-01 00:10:54 -04:00
Lioncash
f432d6038e
Fix some typos and correct some capitalizations in the log messages.
...
Makes the logging look more orderly and less spammy when spitting out things.
2013-03-31 19:13:30 -04:00
Pierre Bourdon
194ada2481
More MSVC 2010 build fixes
2013-03-29 07:55:56 -07:00
Pierre Bourdon
38db520617
MSVC 2010 does not have <mutex> or <thread> either, adding the Std* files back
2013-03-29 07:53:45 -07:00
Pierre Bourdon
a8513e4605
Re-add StdConditionVariable, MSVC 2010 does not support <condition_variable>
2013-03-29 07:42:41 -07:00
Pierre Bourdon
4895e38bd5
This change might work better if I git add the files
2013-03-29 07:31:15 -07:00
Pierre Bourdon
b73941c0ea
Use libc++ for Mac OS X builds now that we require >= 10.7 anyway
2013-03-29 07:29:31 -07:00
Lioncash
b1dd14c319
Fix a slight leak in LogManager.
...
m_debuggerLog wasn't ever deleted in the destructor.
2013-03-27 23:39:48 -04:00
skidau
7784fa4c67
Merge branch 'master' into wii-network
...
# By Ryan Houdek (185) and others
# Via degasus (12) and others
* master: (625 commits)
Revert "Don't open/close file for every file operation." as it was crashing PokePark in Windows builds.
Array overrun fixed in VertexShaderCache for the DX11 plugin.
Fixed DSPTool build.
Windows build fix
Go back to assuming every HID device is a wiimote on Windows. Fixed issue 6117. Unfixed issue 6031.
VideoSoftware: Improve fog range adjustment by using less magic and more comments.
revert RasterFont for VideoSoftware
ogl: fix virtual xfb
Windows build fix from web interface...
Adjusted the audio loop criteria, using >= on the Wii and == on GC. This fixes the audio static that occurred in Wii games after hours of play.
Forced the exception check only for ARAM DMA transfers. Removed the Eternal Darkness boot hack and replaced it with an exception check.
VideoSoftware: Implement fog range adjustment, fixing issue 6147.
implement 4xSSAA for OGL
move ogl-only settings into backend
Fix description of disable fog, and move it to enhancements tab.
Reverted rd76ca5783743 as it was made obsolete by r1d550f4496e4.
Removed the tracking of the FIFO Writes as it was made obsolete by r1d550f4496e4.
Forced the external exception check to occur sooner by changing the downcount.
Mark the Direct3D9 backend deprecated.
Prefer D3D11 and OpenGL over D3D9 by default.
...
Conflicts:
CMakeLists.txt
Source/Core/Common/Common.vcxproj.filters
Source/Core/Common/Src/CommonPaths.h
Source/Core/Core/Core.vcxproj.filters
Source/Core/Core/Src/Core.cpp
Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp
Source/VSProps/Dolphin.Win32.props
Source/VSProps/Dolphin.x64.props
2013-03-27 13:19:23 +11:00
Ryan Houdek
7034c79ab9
Big commit. Fix running the APK, I had missed a view in the manifest. Clean up the Android EGL context creation to fit more in line with how Dolphin works. This breaks input at the moment as well. Change the memarena from 768MB to 64MB to allow 1GB phones to potentially run it. Rename EGL_X11 back to EGL since this merge brings in some of soreau's changes to more easily allow different platforms like Wayland and Android. Not quite all of the code because some needs to be cleaned up still.
2013-03-24 21:06:34 -05:00
NeoBrainX
bb3ce1f8d3
Mark the Direct3D9 backend deprecated.
2013-03-23 23:53:19 +01:00
NeoBrainX
816020f4eb
Prefer D3D11 and OpenGL over D3D9 by default.
2013-03-23 23:52:30 +01:00
Ryan Houdek
d11679a06e
Android mega commit of trash.
2013-03-19 21:53:09 -05:00
lioncash
edd9d0e0ef
Clean up more space/tab mismatches in AudioCommon, Common, and VideoCommon.
...
Not planning to touch Core since it's the most actively changed part of the project.
2013-03-19 21:51:12 -04:00
Ryan Houdek
7d74293170
Fix a typo in ArmEmitter noticed by LionCash.
2013-03-18 08:45:33 -05:00
Ryan Houdek
9ae9910490
Finish up VFP cleanup. A few more instructions are left for VFP, and a bunch of NEON ones if it will ever be used.
2013-03-18 00:10:56 +00:00
Pierre Bourdon
612c2e8516
Fix converting the charset of an empty string. Thanks to MrData on the forums for reporting this issue.
2013-03-17 14:37:00 +01:00
Ryan Houdek
8c1091a21f
Merge branch 'master' into GLSL-master
...
Conflicts:
Source/Core/VideoCommon/Src/PixelShaderGen.cpp
Source/Plugins/Plugin_VideoDX11/Src/VertexManager.cpp
Source/Plugins/Plugin_VideoDX9/Src/VertexManager.cpp
2013-03-15 11:19:52 -05:00
Ryan Houdek
e6c6053fcc
Beginning of VFP cleanup. Will finish when I have the hardware in front of me.
2013-03-14 10:45:26 -05:00
Ryan Houdek
b4830be9bc
Actually set the bIDIVa value in the ARM CPUDetect.
2013-03-14 08:48:01 -05:00
Ryan Houdek
c93f7760ce
Really clean up all the emitter loadstores on ARM. If a ARM device supports VFPv4, then it supports IDIVA, so handle that in CPUDetect.
2013-03-14 01:50:38 +00:00
Ryan Houdek
202e2fa5c8
Add a new WriteNewStoreOp emitter function for beginning of rewrite of the Arm Emitter LoadStores. Will finish when I have the hardware in front of me to test on.
2013-03-13 14:08:54 -05:00
degasus
382be2aabd
Merge branch 'master' into GLSL-master
...
Conflicts:
.gitignore
2013-03-12 11:28:56 +01:00
Ryan Houdek
8406d9972d
Fix JIT from rebasing on PPSSPP ArmEmitter.
2013-03-12 02:35:29 +00:00
Ryan Houdek
b94b4a9e8f
Rebase ArmEmitter on PPSSPP's base. The loadstores are making my heart cry at this point.
2013-03-11 13:57:55 -05:00
Ryan Houdek
be217bf096
Add a comment about Qualcomm in load stores.
2013-03-07 20:28:18 -05:00
degasus
12e84f918a
Merge branch 'master' into GLSL-master
...
this fix debug build
2013-03-07 17:05:32 +01:00
Ryan Houdek
f3528277c4
Make sure to mask out the FPU rounding mode correctly. Good spot from LionCash.
2013-03-07 09:52:38 -06:00
degasus
eaa5a77d9e
fix debug build
2013-03-06 20:47:48 +01:00
degasus
a1c5e90083
Merge branch 'master' into GLSL-master
...
Conflicts:
CMakeLists.txt
Source/Core/DolphinWX/CMakeLists.txt
Source/Core/DolphinWX/Src/GLInterface.h
Source/Core/VideoCommon/Src/PixelShaderGen.cpp
Source/Core/VideoCommon/Src/TextureCacheBase.cpp
Source/Core/VideoCommon/Src/VertexManagerBase.cpp
Source/Plugins/Plugin_VideoDX11/Src/VertexManager.cpp
Source/Plugins/Plugin_VideoDX9/Src/VertexManager.cpp
Source/Plugins/Plugin_VideoOGL/Plugin_VideoOGL.vcxproj
Source/Plugins/Plugin_VideoOGL/Plugin_VideoOGL.vcxproj.filters
Source/Plugins/Plugin_VideoOGL/Src/GLUtil.h
Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp
Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp
Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp
Source/Plugins/Plugin_VideoOGL/Src/VertexShaderCache.cpp
Source/Plugins/Plugin_VideoOGL/Src/main.cpp
2013-03-06 15:59:29 +01:00
degasus
8d5299c20b
Merge branch 'vertex-loader-cleanup'
2013-03-06 14:08:02 +01:00
Ryan Houdek
d6558e1c31
Make the (V)LDR/(V)STR instructions support negative offsets. This fixes a bug where Arm Jit couldn't load the top 33 FPRs. Also makes it so the core can access all GPRs, FPRs, and SPRs in ppcState. This increases VPS 15-20 on SSBM intro movie on ODROIDX
2013-03-06 01:51:59 +00:00
Jordan Woyak
2095641af0
OK, seriously, buildfix. I shouldn't even have commit access!
2013-03-05 16:17:45 -06:00
Jordan Woyak
b34991c4c3
Buildfix for real.
2013-03-05 16:08:26 -06:00
Jordan Woyak
fe3a54d7fd
Buildfix!
2013-03-05 15:48:57 -06:00
Jordan Woyak
10d57a3402
Use standard binary multiple unit symbols for game size display.
...
Use integer math for the calculation as we cannot rely on floats for something as important as game size display!
2013-03-05 14:58:30 -06:00
Jordan Woyak
f3f89e1d00
Merge branch 'master' into vertex-loader-cleanup
...
Conflicts:
Source/Core/Common/Src/CommonFuncs.h
Source/Core/VideoCommon/Src/VertexLoader.cpp
2013-03-04 15:47:56 -06:00
Jordan Woyak
814c2ffdfd
Fix some leaking file handles and buildfix probably.
2013-03-03 19:20:35 -06:00
Jordan Woyak
989f0663eb
Make "Crypto" file opening unicode-safe on Windows.
2013-03-03 19:14:13 -06:00
Jordan Woyak
c07b8a6e37
Fix more of what I broke.
2013-03-03 17:08:41 -06:00
Jordan Woyak
aeb4fc9846
Fix what I broke.
2013-03-03 02:12:24 -06:00
Jordan Woyak
6c8adf6130
Eliminate the wstring game name.
...
Some cleanup throughout related code. (try to make logic in ISOFile understandable by a human)
Encode strings in UTF-8 rather than somehow trying to determine the encoding in the GUI code.
Non-windows OSes temporarily broken.
2013-03-02 20:00:36 -06:00
Jordan Woyak
2b1af36900
Merge branch 'master' into windows-unicode
2013-03-02 15:33:32 -06:00
Jordan Woyak
2356e5c0e7
Eliminate some baseless restrictions in PointerWrap, mainly vector<string> not working.
2013-03-02 03:32:30 -06:00
Jordan Woyak
b0630790c1
It's 2013! Why can't I use C++11 yet!?
2013-02-28 19:42:29 -06:00
Jordan Woyak
dea1e2827d
Open std::fstream in a unicode-safe manner.
2013-02-28 19:33:39 -06:00
NeoBrainX
1c9860246c
Build fixes for everyone!
2013-03-01 01:14:10 +01:00
NeoBrainX
7682ed22c6
Merge branch 'master' into perfqueries.
...
Conflicts:
Source/Core/VideoCommon/Src/VideoConfig.h
Source/Core/VideoCommon/VideoCommon.vcxproj.filters
Source/Plugins/Plugin_VideoDX11/Src/VertexManager.cpp
Source/Plugins/Plugin_VideoSoftware/Src/Rasterizer.cpp
Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp
2013-03-01 01:07:34 +01:00
Pierre Bourdon
07539b9a3f
Fix a StringUtil regression from the arm-noglsl merge
...
Fixes issue 6048. Thanks to Starscream for locating the regression.
2013-02-28 13:12:35 +01:00
Jordan Woyak
e82d976d2f
Buildfix for non-legacy OSes.
2013-02-27 20:55:19 -06:00
Jordan Woyak
65683ebc64
Hopefully fix all filename handling to support Unicode.
2013-02-27 20:03:06 -06:00
Jordan Woyak
69f7671ee8
Fix "Common" to build with "Unicode" project setting.
2013-02-27 19:19:38 -06:00
Jordan Woyak
0ea458b4dc
Add functions for converting between UTF-8/16.
2013-02-27 18:00:42 -06:00
Ryan Houdek
f1d727cf13
Merge latest ArmEmitter changes from ppsspp while we're at it.
2013-02-27 11:53:24 -06:00
Ryan Houdek
8c779bb242
Ah. I blame vim on this typo entirely.
2013-02-27 10:26:32 -06:00
Ryan Houdek
717b976875
ARM Support without GLSL
2013-02-26 13:49:00 -06:00
degasus
4883fa268f
Split VideoBackend::Cleanup from Shutdown.
...
First is called from ogl/d3d thread, second is called from emulation thread (x11...)
2013-02-26 16:42:32 +01:00
degasus
90ff648d00
shader cache based by git revision
2013-02-26 10:48:19 +01:00
Jordan Woyak
bd14ad5300
Merge branch 'master' into vertex-loader-cleanup
2013-02-25 17:55:44 -06:00
Jordan Woyak
46adbfa9ed
Merge branch 'real-wiimote-scanning'
2013-02-25 17:33:34 -06:00
Matthew Parlane
c30b8c9eae
Merge branch 'master' into wii-network
...
Conflicts:
Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp
2013-02-23 17:02:58 +13:00
Jordan Woyak
6a13a4e5ed
Add template "swap" function to CommonFuncs.
2013-02-20 20:20:53 -06:00
Jordan Woyak
e9232280c4
Fix OSX!
2013-02-20 17:35:41 -06:00
Jordan Woyak
f3e91bc10d
Hopefully kill a stupid warning on Windows.
2013-02-20 17:30:34 -06:00
degasus
a629dea4dc
Merge branch 'master' into GLSL-master
...
Conflicts:
CMakeLists.txt
Source/Core/DolphinWX/Dolphin.vcxproj
Source/Core/DolphinWX/Src/GLInterface/WX.cpp
Source/Core/DolphinWX/Src/GLInterface/WX.h
Source/Core/VideoCommon/Src/TextureCacheBase.cpp
Source/Core/VideoCommon/Src/TextureCacheBase.h
Source/Plugins/Plugin_VideoDX11/Src/TextureCache.cpp
Source/Plugins/Plugin_VideoDX11/Src/TextureCache.h
Source/Plugins/Plugin_VideoDX9/Src/TextureCache.cpp
Source/Plugins/Plugin_VideoDX9/Src/TextureCache.h
Source/Plugins/Plugin_VideoOGL/Src/Render.cpp
Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp
Source/Plugins/Plugin_VideoOGL/Src/TextureCache.h
Source/Plugins/Plugin_VideoSoftware/Src/SWmain.cpp
damn mipmap_fixes ...
2013-02-18 18:49:20 +01:00
Jordan Woyak
fa9aafeed8
Some cleanup of CWII_IPC_HLE_Device_FileIO:
...
The real file was never kept open for longer than a single operation so there was no point in dealing with it in DoState.
Saving the real path in the savestate was also probably a bad idea. Savestates should be a bit more portable now.
2013-02-17 13:37:01 -06:00
Jordan Woyak
3330842505
Let's not CreateDir an empty string every time CreateFullPath is used, logging an error every time.
2013-02-17 01:33:22 -06:00
Jordan Woyak
206fdde933
Remove the core count from the cpu info OSD message. It was often wrong and not rather important.
2013-02-16 23:48:20 -06:00
Jordan Woyak
53aec6c476
Fix OGL perf queries and make them not slow!
2013-02-16 19:30:24 -06:00
Matthew Parlane
3d480c088f
Merge branch 'master' into wii-network
...
Conflicts:
Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp
2013-02-09 20:13:11 +13:00
Jordan Woyak
8ce58759e3
Remove some old nonsense.
2013-02-07 23:52:50 -06:00
Glenn Rice
f7fa33f2d6
Fix remaining compiler warnings.
2013-01-31 15:29:29 -06:00
Matthew Parlane
bca2cac640
keys.bin support added.
...
Remove hollywood id from config.
Tidy HLE_Device_es.h (maybe)
Added const params to crypto stuff.
2013-01-29 01:18:53 +13:00
Matthew Parlane
2dd077028f
Merge branch 'master' into wii-network
2013-01-28 22:00:47 +13:00
Matthew Parlane
ca4ea817e0
Merge branch 'master' into wii-network
...
Conflicts:
Source/Core/Common/Src/CommonPaths.h
Source/Core/Common/Src/FileUtil.h
Source/Core/Core/Src/HLE/HLE.cpp
Source/Core/Core/Src/PowerPC/Interpreter/Interpreter.cpp
2013-01-26 21:46:12 +13:00