Commit Graph

326 Commits

Author SHA1 Message Date
LunaMoo
429bf5d8b3 Use $(DefaultPlatformToolset)_xp for easier VS builds with different toolsets. 2017-03-13 21:40:08 +01:00
Henrik Rydgard
b9b3a022fb Switch another enum to enum class 2017-03-02 12:36:54 +01:00
Henrik Rydgard
a1ec735f6c ARM64Emitter: Implement instructions to move data to/from SP 2017-01-26 14:23:42 +01:00
Florent Castelli
6852c602b9 glew: Move to ext 2016-12-18 21:13:45 +01:00
Unknown W. Brackets
419b960403 x86jit: Fix params in Replace_fabsf. 2016-05-31 10:40:14 -07:00
Unknown W. Brackets
afdd01571c Uncouple savestates from NativeApp some.
Still have osm.
2016-05-27 20:41:37 -07:00
Unknown W. Brackets
2353cf6e85 Delete no longer needed linkage hacks. 2016-05-27 20:25:10 -07:00
Unknown W. Brackets
95d912c378 Get rid of the input_state global linkage. 2016-05-27 20:24:01 -07:00
Henrik Rydgard
ce8aae5ed1 Make the IRJit core selectable in developer tools 2016-05-08 01:43:27 +02:00
Henrik Rydgard
ffe4c266ef Add CodeBlockCommon base class to remove further arch-specificity in JitBlockCache
Remove unused ArmThunk.
2016-05-01 11:40:00 +02:00
Henrik Rydgard
8b450c8034 Merge NativeJit.cpp/h with JitCommon.cpp/h 2016-05-01 11:39:59 +02:00
Henrik Rydgard
a5be0976bd Remove preprocessor hacks to choose JIT implementation.
Opens up for having multiple JIT implementations available at runtime,
which could be use for experimenting with new JIT compiler types or for
unit testing one JIT on another architecture.

Very few of the newly virtual calls are on any sort of critical path so
hopefully there will not be a performance loss.
2016-05-01 11:39:53 +02:00
Henrik Rydgard
b7b0b59e9a Update Vulkan headers to 1.0.5. Remove references to vulkan-1.lib as we load dynamically. 2016-03-20 19:31:02 +01:00
Henrik Rydgard
cfbecf5071 More progress 2016-03-20 19:26:41 +01:00
Henrik Rydgard
4ddca8607f Further vulkan stuff 2016-03-20 19:26:12 +01:00
Henrik Rydgard
2a449f78bb More vulkan fixing 2016-03-20 19:25:30 +01:00
Henrik Rydgard
c64064024d Initial vulkan code.
This was squashed from nine commits but using old versions of Vulkan.
2016-03-20 19:18:35 +01:00
Henrik Rydgard
35b6c7341b Fix a bunch of memory leaks, after enabling file+line-number memory leak tracking for the MS Debug CRT.
Few of these were serious, most were on-exit, but good to have a cleaner memory report after running.
2016-02-10 15:36:10 +01:00
Unknown W. Brackets
055aa0c881 Fix non-Windows unittest linking issue.
Fixes #8375.
2016-01-03 12:31:14 -08:00
Henrik Rydgard
3398288bd0 Some cleanup around input_state 2016-01-01 14:40:18 +01:00
Henrik Rydgard
15de6e6b98 GraphicsContext: Abstract away things like swapbuffers etc before adding even more backends.
Needed to prevent clutter all over the codebase.

Does not go all the way yet, goal would be a common render loop between platforms but not there yet.
2016-01-01 14:40:16 +01:00
Henrik Rydgard
732b1239e7 Add some permission infrastructure, add an ugly button that asks you to grant STORAGE permission if necessary. 2015-12-17 22:41:50 +01:00
latot
afeb012d04 Add missing include files to unittest 2015-10-24 13:24:05 -03:00
LunaMoo
b909997a86 Typo correction 2015-09-24 01:15:20 +02:00
Henrik Rydgard
0f4df6c67b Add some missing _ARCH_32 and _ARCH_64 definitions to MSVC project files.
Fixes obscure crash in Moppi PSP Flower homebrew.
2015-09-23 19:30:14 +02:00
Henrik Rydgard
3232e46c36 Make debug build nearly warning free in MSVC 2015 2015-09-17 22:02:15 +02:00
Henrik Rydgård
1e109a3b27 Add unittest for ParseLBN. Seems we already parse correctly.
See #7960
2015-09-12 11:21:54 +02:00
LunaMoo
1468432804 Update UnitTests.vcxproj 2015-09-07 10:02:39 +02:00
Unknown W. Brackets
85533dad6e Native merge part 2: update build files.
And a couple minor stragglers.
2015-09-06 13:06:57 -07:00
Henrik Rydgard
fdea85138c Update project files, fix minor issues for VS 2015 2015-09-06 19:32:15 +02:00
Henrik Rydgard
08735b806f Remove silly use of gstate.SetVSyncInterval 2015-09-06 13:36:33 +02:00
Henrik Rydgard
35c65973c1 ARM64 jit: implement vuc2i, vc2i, vus2i, vs2i instructions 2015-07-11 13:25:58 +02:00
Henrik Rydgard
28456bef90 ARM64: Add NEON EOR encoding 2015-07-11 12:36:44 +02:00
Henrik Rydgard
72651835c3 A bunch more ARM64 encodings (*MIN,*MAX,XTN,SHRN, etc) 2015-07-11 12:16:56 +02:00
Henrik Rydgard
0be2b93ceb More ARM32 NEON encoding horrors (VMOVL, VSHLL) 2015-07-10 23:56:42 +02:00
Henrik Rydgard
59164cdbfb ARM32: Disasm and emit NEON shifts-by-immediate 2015-07-09 00:24:57 +02:00
Henrik Rydgård
cc59361408 Merge pull request #7848 from unknownbrackets/vertdec
Improve arm64 vertex decoder
2015-07-05 18:25:24 +02:00
Henrik Rydgard
937feb6892 ARM64 disasm: Fix disasm of msr/mrs 2015-07-05 11:00:23 +02:00
Henrik Rydgard
b865070de1 ARM64 emitter/disasm: Fix LDNP/STNP disassembly, also fix test of smaddl 2015-07-05 09:57:58 +02:00
Unknown W. Brackets
683b3eb082 Add tests for various vertex formats. 2015-07-04 18:08:31 -07:00
Unknown W. Brackets
8ea7f99072 arm64: Fix imm wasting when STP doesn't work out. 2015-07-04 07:09:47 -07:00
Unknown W. Brackets
14885182b9 Add some timing ability. 2015-07-03 15:44:41 -07:00
Unknown W. Brackets
808db2482a Initial structure for vertexjit tests. 2015-07-03 15:25:40 -07:00
Unknown W. Brackets
62988b2aa7 Fix building unittest for ARM64 Android. 2015-06-26 22:29:43 -07:00
Jan Beich
0b66a0a03c unittest: avoid build error on case-sensitive filesystems
unittest/TestArm64Emitter.cpp:1:10: fatal error: 'Common/ARM64Emitter.h' file not found
unittest/TestX64Emitter.cpp:1:10: fatal error: 'Common/X64Emitter.h' file not found
2015-05-28 06:02:59 +00:00
Henrik Rydgård
d014d420db Unify JitOptions across the backends.
This is required to make ExtractIR not a member of the various backends.
2015-04-12 11:41:26 -07:00
Henrik Rydgård
39be916d8a ARM64: More emitter/disasm 2015-04-06 18:13:44 +02:00
Henrik Rydgård
459ba28655 ARM64: SW skinning runs without crashing but is broken. 2015-04-06 18:13:44 +02:00
Henrik Rydgård
f82b613371 ARM64 emitter/disasm: Implement ASIMD LDP/STP instructions 2015-04-06 18:13:42 +02:00
Henrik Rydgård
013bbc71af ARM64: Fix DUP disasm, INS disasm 2015-04-06 18:13:40 +02:00
Henrik Rydgård
a3db3ed5c1 ARM64 emitter: Fix UXTL/SXTL and friends. Add disasm. 2015-04-06 18:13:40 +02:00
Henrik Rydgård
853d6ea34b ARM64 emitter: Add FMLA/FMLS vector versions 2015-04-06 18:13:39 +02:00
Henrik Rydgård
065cd97dc2 ARM64: LLVM buildfix, some more disasm 2015-04-06 18:13:39 +02:00
Henrik Rydgard
7d918c0ad8 ARM64: Just some disasm improvements 2015-04-06 18:13:35 +02:00
Henrik Rydgard
ad3d539451 ARM64: Attempt at lwl/lwr/swl/swr. The first two don't work 2015-04-06 18:13:35 +02:00
Henrik Rydgard
4618275f99 ARM64: Add a few aliases to emitter. Disasm fixes. 2015-04-06 18:13:33 +02:00
Henrik Rydgard
acf08eefa8 ARM64: Fix FCVTL, use it in v2hf 2015-04-06 18:13:33 +02:00
Henrik Rydgard
0849e270ee ARM64: fmla encoding, more disasm 2015-04-06 18:13:31 +02:00
Henrik Rydgard
9c79831237 ARM64 emitter: Fix FP immediates 2015-04-06 18:13:29 +02:00
Henrik Rydgard
9a5a093105 ARM64 emitter/disasm: More scalar FPU instructions 2015-04-06 18:13:27 +02:00
Henrik Rydgard
6cb107d6fc ARM64: Fix LDP disassembly 2015-04-06 18:13:25 +02:00
Henrik Rydgard
5a5f3c94fd ARM64: Guess what? more emitter & disasm 2015-04-06 18:13:24 +02:00
Henrik Rydgard
0f430e6cd1 ARM64: More asimd scalar disasm, encoding fix 2015-04-06 18:13:23 +02:00
Henrik Rydgard
9f689b871a ARM64: Work on emitting and disassembling fp conversion ops 2015-04-06 18:13:22 +02:00
Henrik Rydgard
2566972a4d ARM64: Further disasm work 2015-04-06 18:13:21 +02:00
Henrik Rydgard
120e0bba3c ARM64: Disassemble csel and multiply instructions 2015-04-06 18:13:19 +02:00
Henrik Rydgard
acd9502b44 ARM64: stp/ldp disasm improvements 2015-04-06 18:13:17 +02:00
Henrik Rydgard
5dff3f8c89 ARM64: Implement scalar FMOV. This makes the FPU2op ops work. 2015-04-06 18:13:16 +02:00
Henrik Rydgard
4233921ab7 ARM64: Some more instructions, func replacements 2015-04-06 18:13:16 +02:00
Henrik Rydgard
77501e220d ARM64: Enable a few more instructions, more emitter/disasm unittests 2015-04-06 18:13:13 +02:00
Henrik Rydgard
cc722f09f6 Improve ARM64 disassembly by merging MOVZ+MOVK. Minor stuff. 2015-04-06 18:13:07 +02:00
Henrik Rydgard
8945b2476d Add the beginnings of a rudimentary ARM64 disassembler 2015-04-06 18:13:03 +02:00
Henrik Rydgard
001eda39e0 Add really primitive save preview on "Next Slot". Improve pause screen layout a little. 2015-02-01 18:04:50 +01:00
Henrik Rydgard
28cd190e0a Temporary workaround for Debug build linking problem (ffmpeg's static release CRT clashes with static debug CRT) 2015-01-24 16:37:01 +01:00
Henrik Rydgard
4ebdf49fb6 Update ffmpeg to master, also switching to static linking of MSVCRT. Don't forget to update your submodules! 2015-01-24 13:30:37 +01:00
Henrik Rydgard
05a8e2e35d Some work towards being able to build two JITs together
This will be useful for testing/debugging, but not there yet.
2014-12-13 21:13:54 +01:00
Henrik Rydgard
8ad1ea4c84 Split JitCommon.h so that you can include it without getting the "NativeJit" definition 2014-12-13 21:13:28 +01:00
Henrik Rydgard
9f2ec39a99 Add a simple test of matrix transposes 2014-12-12 23:49:23 +01:00
Unknown W. Brackets
15d0a81122 Exclude the X64Emitter test on ARM.
Don't want to make that run on ARM...
2014-12-07 21:05:50 -08:00
Unknown W. Brackets
58ff826b73 Cleanup to link assembler on arm unittest builds. 2014-12-07 15:41:11 -08:00
Henrik Rydgard
50bb3e1e05 Minor fixes 2014-12-08 00:18:13 +01:00
Henrik Rydgard
8c128508a5 disarm: Fix a couple of bugs, and disable a broken test to get to the good stuff in ArmEmitter unittest... 2014-12-07 23:24:39 +01:00
Henrik Rydgard
7740caeade Buildfix the arm emitter test in the unittest.
Also do some preparation for being able to have two JITs compiled at the same time
which may be useful in testing parts of the ARM jit on Windows.
2014-12-07 14:12:13 +01:00
Henrik Rydgard
34054b4f41 Add a simple way to test the X64 emitter. Update native. 2014-12-06 11:35:01 +01:00
Henrik Rydgard
466cdb8ddf x86 Jit: Basic implementation of SIMD vmmul. Can be improved. 2014-11-30 19:27:43 +01:00
Unknown W. Brackets
bb26e4f7d0 x86jit: Implement vmmov using SIMD.
4x -> 87x in microbenchmarking.
2014-11-29 18:46:38 -08:00
Henrik Rydgard
8f016d3e48 Merge some matrix utils and stuff from the NEON branch 2014-11-29 11:37:45 +01:00
Kingcom
f6cedcbff5 Replace assembler with a submodule 2014-11-23 21:09:40 +01:00
Unknown W. Brackets
370fb86379 Add VFPU instructions to the mips asm tables. 2014-11-09 15:14:07 -08:00
Henrik Rydgard
5bcdecc26b unittest: Have the JIT harness print disassembly, to make it easy to inspect results. 2014-11-09 12:03:04 +01:00
Unknown W. Brackets
bed0d0b059 x86jit: Improve cvt.w.s when fd is loaded or fs.
We have no need to store it.
2014-11-08 16:40:54 -08:00
Unknown W. Brackets
1917d946ea x86jit: Micro optimize cvt.s.w a bit.
This implementation is about 5x faster for micro benchmarks.  Little
impact to overall perf in games I tested, though.
2014-11-08 13:30:38 -08:00
Unknown W. Brackets
0e646f748a x86jit: Implement vi2x instructions.
Also, my opcodes were wrong in the test (shifted the pair bit the wrong
way, oops.)

AFAICT, there's no reason PSRAD/etc. were not encoding REX...
2014-11-08 12:13:26 -08:00
Unknown W. Brackets
7d54622e2c Fix Windows build without dxsdk (#7070.) 2014-11-08 12:10:50 -08:00
Unknown W. Brackets
836328d731 Cut down on test overhead a good bit. 2014-11-07 22:51:01 -08:00
Unknown W. Brackets
2efecc5c38 Add some jit benchmarking code. 2014-11-07 22:40:28 -08:00
Henrik Rydgard
f84ebf6bff sprintf->snprintf, fix some too short buffers 2014-09-14 00:14:11 +02:00
Unknown W. Brackets
afe2a17ef5 Compile projects using GLEW_STATIC.
To avoid compilation warnings about dllimport.
2014-08-23 21:53:33 -07:00
Henrik Rydgard
39cde7fc48 Hide "immersive mode" on pre-kitkat Android. 2014-07-20 12:11:50 +02:00
Henrik Rydgard
e6f55bfef0 Fix silly mistake in vfpu_sincos. Add unittest. 2014-06-15 11:51:30 +02:00
Henrik Rydgard
f1a225728c Update native with framebuffer_blit_nv fix for tegra.
This appears to fix some but not all issues with blit on Tegra.

May affect #2135 and fix issues broken by #6115.

(also throw in a link in a comment)
2014-06-05 21:30:45 +02:00
Unknown W. Brackets
48fa22b7cf B/BL were swapped in the arm emitter.
Oops...
2014-03-14 19:15:41 -07:00
Unknown W. Brackets
b00c98a87d Correct disasm for BFI/BFC/UBFX/SBFX. 2014-03-14 19:15:40 -07:00
Henrik Rydgard
ab9cd99d0f Major ARM disassembler improvements, will make debugging the JIT easier 2014-03-12 18:09:28 +01:00
Unknown W. Brackets
cd4cd77938 Clean up defines in MSVC project files.
This way they're all basically the same.  A lot of cases where
debug/release/etc. where inconsistent...

Also, define USING_WIN_UI.
2014-02-08 16:38:44 -08:00
Unknown W. Brackets
2c204e8028 Update project to MSVC 2013 tools.
Retaining XP support, using SDK 7.1a (v120_xp.)  Disables SSE2 flag on x64
since it's implied and causes compile warnings.
2014-02-08 13:41:28 -08:00
Unknown W. Brackets
1dfcbd0ea1 Reference g_Config in unittest to resolve cycle.
Dag blasted cross dependent linking.
2014-01-10 21:32:08 -08:00
Henrik Rydgård
8ac6ba17d7 Make the unittest build using CMake 2014-01-09 12:09:07 +01:00
Henrik Rydgard
569a3cd733 Update README.md and submodules 2013-12-03 12:58:03 +01:00
Henrik Rydgard
7edfa284d9 approx math research: found even better arcsin approximations 2013-12-01 14:13:20 +01:00
Henrik Rydgard
f7bd435375 Try another sine approx. not very good. 2013-12-01 14:13:20 +01:00
Henrik Rydgard
2a5c4ca420 Some math approximation research. Found a good approximate arcsin (to implement vasin in the future). 2013-11-30 12:46:23 +01:00
Henrik Rydgard
c83a7e0029 Parse mac addresses in one place. 2013-11-28 12:38:45 +01:00
Henrik Rydgard
c53b32d154 Show a dismissable notification if PPSSPP is behind the latest official release 2013-11-26 14:04:29 +01:00
Henrik Rydgard
ad620e463a Detect language on first boot on Windows (Vista+) and Android 2013-09-04 12:08:22 +02:00
Henrik Rydgard
55aa3d13c7 Win32: Switch to a UNICODE build. This took quite a bit of fixing. 2013-08-26 19:00:16 +02:00
Henrik Rydgard
65f8430c32 Quick hacked-up ARM VFP disassembler. Buggy. 2013-07-30 21:39:37 +02:00
Henrik Rydgard
2afbc94734 Turn off RTTI, simulate it where needed. 2013-06-09 13:02:16 +02:00
Henrik Rydgard
a3dd3b53c3 Implement a couple basic Psmf functions, unify some project settings, update native. 2013-06-05 21:24:14 +02:00
Henrik Rydgard
b3f3305068 vcproj update: enable multithread build 2013-06-02 23:45:44 +02:00
Henrik Rydgard
660d5700e7 Unify some VS project settings 2013-04-27 19:34:41 +02:00
Unknown W. Brackets
db8002f0e5 Add Winsock2 to Unittest (links in a report call.) 2013-04-19 08:42:41 -07:00
Henrik Rydgard
32f344d6bd Very basic internationalization. Does not work on Android yet due to location of ini files. 2013-04-18 12:06:26 +02:00
Henrik Rydgard
1c17c9138e Update native with my_isnan fix 2013-04-13 23:05:15 +02:00
Henrik Rydgard
46b2e15945 Set _CRT_SECURE_NO_WARNINGS 2013-03-16 09:17:39 +01:00
Henrik Rydgard
7b13477fda Add UnitTest project (only set up win build for now, lazy me)
This is for local testing of stuff that doesn't need to be tested
in context in the emulator.
Enable building ArmEmitter under any platform, just for testing.
2013-01-19 10:07:14 +01:00