Commit Graph

2066 Commits

Author SHA1 Message Date
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
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
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