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