Commit Graph

1831 Commits

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