Ryan Houdek
09e8adb199
[Android] Fix ignore format changes option.
...
This option was inversed, so it was always set to the opposite of what was wanted.
2015-02-18 16:27:37 -06:00
Ryan Houdek
19f8524304
Fix mulli's flags in the instruction tables.
...
It doesn't set RC, so this flag is incorrect.
2015-02-18 16:26:12 -06:00
Ryan Houdek
0567b28ba1
[Android] Fix building unit tests.
2015-02-18 16:24:30 -06:00
Ryan Houdek
ef2fba2e85
Merge pull request #2070 from lioncash/unused
...
PowerPC: Remove unused enum values
2015-02-17 23:42:46 -06:00
Ryan Houdek
127e742992
Merge pull request #2046 from Mullin/Fix-unsigned/signed-stores
...
[ARMv7] Fix unsigned/signed stores
2015-02-17 14:38:36 -06:00
Ryan Houdek
3aa605236d
Merge pull request #2041 from Sonicadvance1/AArch64_vertex_loader
...
[AArch64] Vertex loader and things
2015-02-17 00:51:51 -06:00
Ryan Houdek
ed008c3a69
[AArch64] Change the vertex loader over to using unscaled loadstores.
...
In nearly all direct loadstore cases we can use unscaled loadstores.
Still have a fallback in case we hit a situation that we /can't/ do a unscaled loadstore.
2015-02-16 22:03:09 -06:00
Ryan Houdek
120df4c688
[AArch64] Implement loadstore unscaled.
2015-02-16 22:00:43 -06:00
Ryan Houdek
2ebe57ed3f
Convert our vertex loader unit test to the new RunVertices arguments arrangement.
2015-02-16 16:51:39 -06:00
Ryan Houdek
f54a0d3ff4
[AArch64] Minor floating point loadstore improvements.
...
These use the Vector x Element FMUL instruction to improve speeds slightly.
Should give ~3cycle improvement per quantized loadstore done.
2015-02-16 16:51:39 -06:00
Ryan Houdek
b4b03641b3
[AArch64] Implement vertex loader recompiler.
...
Shows a noticeable reduction in time spent in the vertex loader.
2015-02-16 16:51:32 -06:00
Ryan Houdek
15e41c67f8
Change RunVertices' function arguments.
...
This reduces some dumb state shuffling when calling the emitted vertex loaders.
2015-02-13 12:16:06 -06:00
Ryan Houdek
b989c2fd8f
[AArch64] Fix another assert in the JIT register cache.
2015-02-13 12:16:06 -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
Ryan Houdek
57c66798fc
[Android] Register panic alert handler.
...
This lets me see _assert_msg_ alerts on Android when passing dumb arguments to my AArch64 emitter.
2015-02-13 12:15:59 -06:00
Ryan Houdek
f9c2d73970
Remove an old comment about stfiwx.
...
This instruction does exactly what it is supposed to. No need for this comment.
2015-02-01 00:30:53 -06: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
7cd80200ed
[AArch64] Remove an extraneous nop in 8bit fastmem stores.
2015-01-30 08:30:17 -06:00
Ryan Houdek
4ff2f105cc
[AArch64] Implement MMIO Writes.
2015-01-30 08:30:11 -06:00
Ryan Houdek
a2b872b9da
Merge pull request #1983 from Sonicadvance1/remove_comment
...
Remove an old outdated comment that makes no sense.
2015-01-29 09:51:16 -06:00
Ryan Houdek
9b4a896353
Remove an old outdated comment that makes no sense.
...
This comment was left over from a long time ago. It is no longer true.
2015-01-29 09:40:22 -06:00
Ryan Houdek
631c8a981e
[AArch64] Minor performance improvements to paired stores.
...
We can combine these two ST1 calls in to a single ST1 call.
Saves a few cycles in paired stores
2015-01-29 06:07:00 -06:00
Ryan Houdek
235f6c2445
[AArch64] Don't flush VFP register to stack when not needed.
2015-01-29 06:07:00 -06:00
Ryan Houdek
c8c062fa96
[AArch64] Add support for MMIO loads.
...
Should give a small performance benefit.
2015-01-29 06:06:54 -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
Ryan Houdek
714e146b94
Update Android cmake.
...
This is required to properly build the MIPS64 and x86_64 targets with clang.
2015-01-26 21:26:54 -06:00
Ryan Houdek
7df55d220f
Merge pull request #1967 from Sonicadvance1/Android_settings
...
[Android] Change some configuration options.
2015-01-26 05:30:35 -06:00
Ryan Houdek
de070cfe8b
[Android] Change the default renderer to OpenGL.
...
We now require OpenGL ES 3.0 minimum to run, this is the sane default.
2015-01-26 00:51:24 -06:00
Ryan Houdek
983c7f4f21
[Android] Select the AArch64 recompiler core by default if shown to support ARMv8.
2015-01-26 00:50:25 -06:00
Ryan Houdek
7ee1dc56e7
[Android] No longer carry a default configuration file.
2015-01-26 00:49:24 -06:00
Ryan Houdek
5ba1319abb
Merge pull request #1953 from Sonicadvance1/AArch64_fix_paired_loadstores
...
[AArch64] Fix all of the paired store instructions.
2015-01-25 23:07:44 -06: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
315f6ddfe6
Merge pull request #1965 from rohit-n/build-pch
...
Fix building with PCH disabled.
2015-01-25 22:41:05 -06:00
Ryan Houdek
3274df7158
Merge pull request #1961 from Sonicadvance1/AArch64_game_fixes
...
[AArch64] Fix a load of games.
2015-01-25 18:26:42 -06:00
Ryan Houdek
b1fc18cbaa
Merge pull request #1958 from Sonicadvance1/Rearchitect_asmcommon
...
Rearchitect a bit of our AsmCommon routines.
2015-01-25 18:26:17 -06:00
Ryan Houdek
d291148016
[AArch64] Implement TU/TL merging.
...
Basically stolen from the x86 recompiler. Works well on AArch64 as well!
2015-01-25 18:05:33 -06:00
Ryan Houdek
f24c466e7e
[AArch64] Fix AArch64 instruction encoding.
2015-01-25 17:26:18 -06:00
Ryan Houdek
98fe869e39
Merge pull request #1962 from rohit-n/build-pch
...
Fix building with PCH disabled.
2015-01-25 15:38:20 -06:00
Ryan Houdek
e4e08b0596
[AArch64] Make sure to load the full destination register on float instructions.
...
With the float instructions that only affect the lower 64bits of the destination register, we need to make sure to load the full 128bit register.
This ensures that we aren't saving garbage in to the top 64bits.
2015-01-25 03:17:46 -06:00
Ryan Houdek
2483f7b359
[AArch64] Fix addcx.
2015-01-25 03:17:14 -06:00
Ryan Houdek
6791a808b6
[AArch64] Fix addzex.
2015-01-25 03:16:57 -06:00
Ryan Houdek
84b90ad1c6
[AArch64] Fix cmp
2015-01-25 03:16:29 -06:00
Ryan Houdek
12b9ada268
Rearchitect a bit of our AsmCommon routines.
...
JitCommon is becoming a cluster of x86 specific things and things that are common to multiple recompilers.
This overlap is beginning to cause us issues.
Begin by breaking out the common ASM arrays to have their own file and move the x86 specific routines to their own folder.
2015-01-24 20:06:15 -06:00
Ryan Houdek
bf0293231f
Merge pull request #1957 from lioncash/cs
...
Coding style cleanup from the zfreeze merge
2015-01-24 16:39:01 -06:00
Ryan Houdek
93f3816eae
[AArch64] Fix all of the paired store instructions.
...
These had some minor errors in them that I discovered with the hardware test and Viewtiful Joe.
All work as they should now.
2015-01-23 23:18:49 -06:00
Ryan Houdek
0557fb6a9e
[Android] Add internet permissions.
...
These permissions are required for the ability to create sockets. Which are sort of required on a system that can make them.
2015-01-23 23:15:56 -06:00
Ryan Houdek
088b6b2ec3
Merge pull request #1081 from phire/jitil-float-mem-opts
...
JitIL Float load/store optimizations.
2015-01-23 21:47:03 -06:00
Ryan Houdek
d544cc3c68
Merge pull request #1463 from phire/cleanup_ELFloader
...
Cleanup ElfLoader and BootElf
2015-01-23 21:46:55 -06:00
Ryan Houdek
189528171b
Remove an old GLES define that I missed.
2015-01-23 14:30:23 -06:00
Ryan Houdek
618dfe9804
Merge pull request #1749 from Buddybenj/readme
...
Readme Fixes and Improvements
2015-01-22 18:38:27 -06: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
Ryan Houdek
db690a1862
Merge pull request #1936 from lioncash/kb
...
Minor keyboard-related cleanups.
2015-01-22 16:23:34 -06:00
Ryan Houdek
bff230fe2e
Merge pull request #1945 from skidau/GCPad-Init
...
Fixed the GCPad and GCKeyboard getting initialised four times each.
2015-01-22 10:41:43 -06:00
Ryan Houdek
bb1ca26c57
Merge pull request #1940 from Sonicadvance1/AArch64_implement_xer
...
[AArch64] Implement mfspr/mtspr XER routines.
2015-01-22 10:31:22 -06:00
Ryan Houdek
85754c63ca
[AArch64] Implement mfspr/mtspr XER routines.
...
These were fairly simple to implement.
2015-01-21 16:56:27 -06:00
Ryan Houdek
e7f2a04699
Merge pull request #1938 from CarlKenner/paddedfunctions
...
Skip zeroes that sometimes pad function to 16 byte boundary (eg. Donkey Kong Country Returns).
2015-01-21 15:17:31 -06:00
Ryan Houdek
621322bbae
Merge pull request #1260 from pauldacheez/video-dialog-string-touchups
...
Improve some setting descriptions in the graphics options.
2015-01-21 14:59:45 -06:00
Ryan Houdek
1c62c2f935
Merge pull request #1924 from degasus/xxhash
...
VideoCommon: xxhash
2015-01-21 14:19:35 -06:00
Ryan Houdek
e4b04c64f0
Merge pull request #1870 from Stevoisiak/countryFilters
...
Country filter fixes/consistency
2015-01-21 13:48:35 -06:00
Ryan Houdek
80e6367e46
Merge pull request #1869 from Stevoisiak/GeneralConsistency
...
Minor consistency changes
2015-01-21 13:46:53 -06:00
Ryan Houdek
f9fc9d47c0
Merge pull request #1895 from JosJuice/isvolumewiidisc
...
Don't read from disk when checking volume type
2015-01-21 13:45:28 -06:00
Ryan Houdek
4c9fd63562
Merge pull request #1932 from Buddybenj/freelook
...
Fix Default Freelook Hotkey to Match Description (For Real This Time)
2015-01-21 13:41:29 -06:00
Ryan Houdek
50d495b581
Merge pull request #1916 from mimimi085181/master
...
Make efb to texture less broken for paletted textures that are efb copies
2015-01-21 13:40:36 -06:00
Ryan Houdek
b8b537d96e
Merge pull request #1934 from Buddybenj/change-order
...
Change Order of Some Hotkeys
2015-01-21 13:38:10 -06:00
Ryan Houdek
a5e9c5e718
Merge pull request #1910 from Sonicadvance1/LLVMDisassembly_improvements
...
Improve the LLVM disassembler in the debug window.
2015-01-21 13:29:47 -06:00
Ryan Houdek
ca10ce36cc
Merge pull request #1923 from Sonicadvance1/remove_sdl_assumption
...
Remove an assumption in SDL.
2015-01-21 13:29:39 -06:00
Ryan Houdek
7fba4856ce
Merge pull request #1931 from Sonicadvance1/Fix_PP_Config
...
Fix the Post Processing shader configuration dialog.
2015-01-21 13:29:01 -06:00
Ryan Houdek
41dd0667ed
Merge pull request #1930 from Sonicadvance1/AArch64_scalar_ops
...
[AArch64] Move the 64bit floating point instructions to scalar.
2015-01-21 13:28:53 -06:00
Ryan Houdek
d86eaea393
Merge pull request #1935 from Sonicadvance1/AArch64_fix_fp_loadstore
...
[AArch64] Fix bugs in floating point loadstores.
2015-01-21 13:28:46 -06:00
Ryan Houdek
32bfccce32
[AArch64] Fix bugs in floating point loadstores.
...
The Backpatching routines didn't correctly understand where to find the real VFP register from, so in most cases it was using D0.
Fixes bugs in the slowmem loadstore routines as well.
2015-01-20 19:11:04 -06:00
Ryan Houdek
e3cff625cb
Merge pull request #1906 from jefflongo/patch-1
...
Update NetPlayServer.cpp
2015-01-20 17:13:13 -06:00
Ryan Houdek
e72f70f440
Merge pull request #1929 from Armada651/fix-ppl
...
PixelShaderGen: Fix uninitialized variables.
2015-01-20 16:51:43 -06:00
Ryan Houdek
d348bfea46
Fix the Post Processing shader configuration dialog.
...
On locales that don't use period as a separator this would break us.
For vector values in a configuration, we use comma as a separator which causes the configuration to balloon to massive sizes due to never saving them
correctly. Loading would then break since it would load a million configuration options.
Fixes issue #7569 .
2015-01-20 16:40:46 -06:00
Ryan Houdek
67f2ff2e18
[AArch64] Move the 64bit floating point instructions to scalar.
...
Instead of doing vector operations and throwing away the top 64bits of each operation, let's instead use scalar operations.
On Cortex-A57 this saves us three cycles per vector operation changed to scalar, so this saves 3-9cycles per instruction emulated.
Also puts one less micro-op in to the vector pipeline there.
On the Nvidia Denver I couldn't see any noticeable performance difference, but it's a quirky architecture so it may be noticing we are throwing away
the top bits anyway and optimizing it. The world may never know what's truly happening there.
2015-01-20 16:35:08 -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
7f68a357ad
Merge pull request #1914 from Sonicadvance1/AArch64_minor_improvements
...
[AArch64] Minor Improvements and bug fix.
2015-01-20 16:33:17 -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
Ryan Houdek
714697faaf
Merge pull request #1909 from Sonicadvance1/GLExtensions_additions
...
Add support for two new OpenGL ES extensions.
2015-01-20 14:51:54 -06:00
Ryan Houdek
4262d2199a
[AArch64] Implements paired loadstores.
2015-01-20 13:57:14 -06:00
Ryan Houdek
bb042fe10f
Merge pull request #1908 from Sonicadvance1/Android_aspect_ratio
...
[Android] Expose aspect ratio to the video settings.
2015-01-20 13:07:20 -06:00
Ryan Houdek
38cb9bbfae
Merge pull request #1889 from magumagu/remove-hle-end
...
Remove HLE_HOOK_END.
2015-01-19 18:16:47 -06:00
Ryan Houdek
817abdd579
Remove an assumption in SDL.
...
We can compile with haptic support, and then not initialize due to haptics not being available.
So if we are compiling with haptics, test initializing with haptics and if that fails attempt to initialize without haptics before bailing out.
2015-01-19 16:07:28 -06: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
92189c03e9
Merge pull request #1921 from Sonicadvance1/loadstore_fix
...
Minor fix with psq_st{u,}x disassembly.
2015-01-19 10:17:43 -06:00
Ryan Houdek
dc95ea2ce6
Minor fix with psq_st{u,}x disassembly.
2015-01-19 10:12:23 -06:00
Ryan Houdek
4551bb6ce6
Add support for two new OpenGL ES extensions.
...
This adds support for OES_draw_elements_base_vertex and EXT_buffer_storage.
2015-01-18 23:01:43 -06:00
Ryan Houdek
7e64869185
Merge pull request #1887 from Tilka/vertex_loader_jit
...
VertexLoader: rewrite x64 JIT
2015-01-18 19:48:14 -06:00
Ryan Houdek
98d99a9eef
[AArch64] Optimize loadstores address calculation.
...
For offsets that fit in the instruction encoding then we should just put it in the instruction encoding.
Saves an instruction in a large amount of loadstores.
2015-01-18 16:45:42 -06:00
Ryan Houdek
cfd4348b7a
[AArch64] Fully implement cmpl and cmpli.
2015-01-18 16:45:00 -06:00
Ryan Houdek
4547b64959
[AArch64] Fixe a bug in constant propagated ComputeRC.
...
Must not have been thinking, we do want to sign extend when the highest bit is set.
2015-01-18 16:44:33 -06: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
Ryan Houdek
44405e2ec2
Expose the JIT quantize and dequantize arrays to all the JITs.
...
Removes the ARMv7 arrays that were being used, and lets it use the common one instead.
2015-01-18 16:20:26 -06:00
Ryan Houdek
95ac48d605
Improve the LLVM disassembler in the debug window.
...
There are a couple things in this PR.
Fixes a bug where if we hit an invalid instruction we would infinite loop.
Fixes an issue where on AArch64 it would show invalid instructions for all NEON instructions.
This was due to asimd and crc being optional extensions and LLVM not enabling them by default.
So we have to specify a CPU which has the feature. LLVM 3.6 will let us select by features instead of CPUs, but we don't have a release of that quite
yet.
If we are on an architecture that has a known instruction size, we will continue onward after hitting the invalid instruction. If we don't have a
known instruction size like on x86, we will instead just dump the rest of the block.
2015-01-18 15:31:40 -06:00
Ryan Houdek
864969f300
[Android] Expose aspect ratio to the video settings.
2015-01-18 15:21:40 -06:00