Commit Graph

278 Commits

Author SHA1 Message Date
xsacha
1871c4e8bd Merge pull request #900 from xsacha/master
Rounding Mode Handling
2013-03-09 20:30:39 -08:00
Sacha
27b70f0726 Add MIPS/Loongson support 2013-03-10 13:24:05 +10:00
Sacha
7782be9a3e Try software rounding mode instead. Use conditionals for VFP functions. Note: Round to Zero not working for some reason? 2013-03-08 22:39:34 +10:00
Sacha
fbef590bed Add emitters for VMRS/VMSR. Undisable ceil, which works. Add stub for rounding mode handling. 2013-03-08 22:39:34 +10:00
Sacha
b9ec281c55 Disable rounding methods that aren't working in hardware. Add some notes. Fix compare fall-through and choose right round method. 2013-03-07 21:33:30 +10:00
Sacha
9f0bb8cf52 armv6: Reuse constants in literal pool.
May reduce memory loads?
2013-03-07 14:44:55 +10:00
Sacha
ae3b881a7f Use correct args for Operand2(..) through armjit. Fix STR(..). 2013-03-07 00:59:07 +10:00
Sacha
268d16bd24 Use correct args for STR(..) throughout armjit. 2013-03-07 00:59:07 +10:00
Sacha
5a134243a7 Armjit: Fix lwl, lwr and enable again. Thanks Sonic. 2013-03-06 03:28:28 +10:00
Sacha
7e67de3334 Armjit: Implement lwl, lwr, swl, swr in ARM JIT. lwr is currently disabled as it isn't working. 2013-03-06 02:11:36 +10:00
Sacha
9152d2f2bb Armjit: Optimise swl+swr and lwl+lwr cases that can be combined to a single sw or lw. Add shift flags to STR/LDR. Add EatInstruction to ArmJit. 2013-03-06 02:11:36 +10:00
Sacha
4641cf376f Armjit: Implement CLZ instruction. Disable reg shifts for now (breaks Wipeout Pure). 2013-03-05 14:16:35 +10:00
Sacha
10ad797c6d Armjit stubs.
Add a double encoding for VCVT. Implement integer divide (but not working yet). Stubs for msub/msubu. Don't detect vfpv3 on Symbian.
2013-03-05 13:16:08 +10:00
Sacha
1089a31a45 Armjit: add reverse bit instruction. 2013-03-05 02:58:51 +10:00
Sacha
bce3295950 Fix graphical issues. DISABLE INS instruction for now. Fix OR (it was doing AND). 2013-03-04 22:09:45 +10:00
Sacha
0fc6b60874 Fix Lit Pools for cases where offset goes out of range. For example: Zero no Kiseki has a block that is 7K large. 2013-03-04 14:36:23 +10:00
Sacha
9633239f18 Update for lit pools. Works in some games now thanks to [Unknown]. 2013-03-04 14:29:17 +10:00
Sacha
bdfe24a86b ARMv6 literal pool method. 2013-03-04 14:26:45 +10:00
Henrik Rydgard
7dc75d87b5 armjit: Re-enable ext/ins, safer implementation. arm7 path disabled for now. 2013-03-03 23:17:21 +01:00
Henrik Rydgard
1cddc86e05 armjit: Temporarily disable ext/ins as they appear to have broken Persona 3 somehow. 2013-03-03 22:26:20 +01:00
Henrik Rydgard
1e3a00ee9d armjit: implement vzero, vone. Use vmla for dot product. 2013-03-03 20:56:22 +01:00
Henrik Rydgard
650c02c3a5 Some more armjit work (ext, ins) and VFPU prefix clamps (not enabled) 2013-03-03 17:36:22 +01:00
Henrik Rydgard
bc15617392 Make un-buffered rendering much smarter, removing flicker.
This turns it into a very viable option for many games. You do lose some FX
but it can as a result even be used as a workaround for the massive glow
in Wipeout...
2013-03-03 13:00:21 +01:00
Henrik Rydgard
b781c8deb5 Delete unused ARM emitter function. 2013-03-03 10:55:49 +01:00
Henrik Rydgard
f5581caccc Some work on ARMJIT FPU compares, still not quite working. 2013-03-02 19:09:24 +01:00
Sacha
6c23e1b6d5 Use flags instead of bools for VCVT. Fix up some spacing. Only Android has ArmEmitterTest. 2013-03-02 11:34:03 +10:00
Henrik Rydgard
253396666c Merge branch 'armjit-fpu' of github.com:hrydgard/ppsspp into armjit-fpu 2013-03-01 18:26:36 +01:00
Sacha
26ebdb4f11 Improve VCMP instruction with option for E.
Add comment to le JIT about how the VCMP crashes on ARM11, with commented code.
2013-03-01 15:41:45 +10:00
Sacha
6d3c89e354 Fix up VCVT function to recognise the difference in encoding for to_int and to_float. There is no 'round to zero' option for to_float. cvt.s.w and cvt.w.s should be unsigned. 2013-03-01 13:45:22 +10:00
Henrik Rydgard
516ca8a0c4 Merge branch 'master' into armjit-fpu
Conflicts:
	Core/MIPS/ARM/ArmJit.h
	Core/MIPS/x86/CompVFPU.cpp
	GPU/GLES/Framebuffer.cpp
2013-02-28 23:56:28 +01:00
Sacha
35a57be115 ARMJIT: Implement MADD, MADDU. Do bitrev if it takes an immediate. Fix a bug where MULTU was being passed through to the interpreter. 2013-02-28 23:45:46 +01:00
Sacha
059abc0d69 ARMJIT: Add floor, ceil, round. Introducing a rounding mode for VCVT.
The cvt and trunc are tested heavily. Floor, ceil, round aren't tested as much as there are very few games that use it.
2013-03-01 01:10:07 +10:00
Sacha
61f5fb35bd ARMJIT: Implement cvt.w.s, cvt.s.w and trunc.w.s that are used heavily in Dragonball.
May need to keep note of FCR to get correct rounding mode? Interpreter doesn't do this either.
2013-02-28 19:46:07 +10:00
Henrik Rydgard
c0e8fb1499 Revert turning on debug thing 2013-02-27 18:01:23 +01:00
Henrik Rydgard
ba0362d817 PGF font support. Mostly an adaptation and cleanup of JPCSP's font system. 2013-02-27 17:41:39 +01:00
Sacha
fe90d5cd06 Add VNEG and VABS implementations and use in FPU2op. 2013-02-27 23:33:59 +10:00
Sacha
ff14815fda ARMJIT: Combine to one instruction for load/stores. 2013-02-27 19:45:01 +10:00
Sacha
2c59de95e9 JIT the signed load/store variants too 2013-02-27 18:05:45 +10:00
Sacha
fe8b80c12e ARM JIT: Add and simplify some half-word load/store instructions. 2013-02-27 17:09:47 +10:00
Henrik Rydgård
d73fcebc3f Quickfix for a symbol collision. Should really share the AES code. 2013-02-25 21:10:15 +01:00
Unknown W. Brackets
de7ada1982 Fix some x64 type warnings. 2013-02-24 10:39:06 -08:00
Sacha
630ee68b05 Build fix for iOS. Now compiles. 2013-02-24 22:17:52 +10:00
Unknown W. Brackets
7abcd37909 This isn't needed if ABI_CallFunction* is used.
AFAICT the only reason for it is to avoid far calls, so we just can't
use CALL() directly.  It's works even when it throws on Mac.
2013-02-24 00:15:56 -08:00
Unknown W. Brackets
3fbb5d4388 Avoid using CALL() directly in case of far calls.
This mainly matters for x64.
2013-02-24 00:12:55 -08:00
Sacha
0f2f59a3f6 Potential JIT for iOS fix. 2013-02-24 17:28:31 +10:00
Sacha
8e88cc37d2 Fix crash on Return to Menu in Symbian.
We don't want to free the executable code (actually a Chunk+Heap) using same method we use to free memory pages (delete).
This would be the same situation on jailbroken iOS and WP.
Now the JIT code is always allocated and never freed on Symbian.
2013-02-21 15:59:02 +10:00
Sacha
1540869e95 All mobile devices now have file logging disabled. Change save dir on blackberry/symbian. Update native. 2013-02-20 13:12:03 +10:00
Henrik Rydgard
5a09885a59 Port over much of unknown's vfpu jit work to arm. Untested. 2013-02-20 00:04:21 +01:00
Henrik Rydgard
e32721c72a Merge branch 'master' into armjit-fpu
Conflicts:
	Core/MIPS/MIPSVFPUUtils.cpp
	Core/MIPS/x86/CompVFPU.cpp
	GPU/GLES/VertexDecoder.cpp
2013-02-19 00:50:33 +01:00
Unknown W. Brackets
363d1dbe19 Fix some misc. warnings. 2013-02-18 08:44:59 -08:00
Sacha
a9eb6cf4a4 Fix crash on Symbian when doing "Return to Menu" 2013-02-17 20:21:42 +10:00
Sacha
d99c9fb2ff Fix Symbian JIT + FastMem by using a mapped virtual address RChunk. 2013-02-17 15:23:56 +10:00
Henrik Rydgard
44e4ba8772 Merge branch 'master' into armjit-fpu 2013-02-15 21:42:44 +01:00
Sacha
4feefda8d0 Symbian build fix: use glib for atomics. 2013-02-15 03:07:32 +10:00
Sacha
743014a293 Cache flushing for iOS 2013-02-15 03:07:32 +10:00
Henrik Rydgard
b0c160fa93 Fix armjit fpu load / store 2013-02-13 21:07:06 +01:00
Henrik Rydgard
30318a4a4d Merge branch 'master' into armjit-fpu
Conflicts:
	Core/MIPS/x86/CompFPU.cpp
2013-02-13 20:47:41 +01:00
Sacha
3faeeea2f9 Support other MSVC compilers in Qt. Update native reference. 2013-02-14 01:34:53 +10:00
Sacha
f55776ee59 Windows MSVC 2010 compiler support for Qt. 2013-02-13 21:09:18 +10:00
Sacha
013357f21e Build fix for iOS 2013-02-13 16:39:53 +10:00
Sacha
58454413b3 Use QNX atomic_set on Blackberry. Allows Playbook builds to continue on GCC 4.4. 2013-02-13 04:05:54 +10:00
Henrik Rydgard
b115cd7320 VMOV gpr->fpu, fixes 2013-02-12 18:53:04 +01:00
Henrik Rydgard
af4c7be086 mul.s div.s 2013-02-11 23:58:06 +01:00
Henrik Rydgard
69c3c91d7e add.s/sub.s now appear to work 2013-02-11 23:23:42 +01:00
Henrik Rydgard
4bdb2045a7 Armjit-FPU: Fix lots of bugs, impl some stuff. Still nothing working. 2013-02-11 23:10:11 +01:00
Henrik Rydgard
4eb89e6aec Merge branch 'master' into armjit-fpu 2013-02-11 19:22:14 +01:00
Unknown W. Brackets
2e0beb5833 Buildfix for Windows. 2013-02-10 08:10:01 -08:00
Henrik Rydgard
88d9a6dd05 Merge branch 'master' into armjit-fpu 2013-02-10 15:59:59 +01:00
Henrik Rydgard
f75d14d3b5 ARM FPU jit work 2013-02-10 15:53:56 +01:00
Sacha
b817e3bf26 Update max to std::max 2013-02-10 23:01:18 +10:00
Sacha
ddfac0926a Update Symbian README. Should build from clean install without any hacks now. 2013-02-10 22:51:14 +10:00
Henrik Rydgard
c1338259bc Merge latest arm emitters from Sonic1's work. 2013-02-07 20:54:01 +01:00
Henrik Rydgard
377c94b125 JIT x86: cvt.s.w 2013-02-06 20:29:49 +01:00
Henrik Rydgard
8749ad0cb9 Warning fixes, very minor updates to shader generators. 2013-02-06 19:04:28 +01:00
Sacha
148c390524 Buildfix for Symbian 2013-02-04 09:55:56 +10:00
Xele02
2a424977c0 Fix linux build ^^ 2013-02-04 21:24:01 +01:00
Henrik Rydgård
d60f685ae8 MacOSX buildfix 2013-02-04 20:36:43 +01:00
Henrik Rydgard
7a36619174 Android buildfix + cleanup 2013-02-04 20:19:24 +01:00
Unknown W. Brackets
112c1e9e23 Automatically delete pointers when savestating. 2013-02-04 08:28:22 -08:00
Unknown W. Brackets
82a8450758 Fix some more non-pod structs in savestates. 2013-02-04 08:27:02 -08:00
Unknown W. Brackets
8f10c7f161 Make savestates automagically call DoState(). 2013-02-04 08:27:01 -08:00
Unknown W. Brackets
806907e2cc Add a safety check that p.Do() is only used on pod. 2013-02-04 08:27:00 -08:00
Unknown W. Brackets
2a6457b6ab Cut down on h files including PointerWrap.
This makes changes to it a bit faster to build.
2013-02-04 08:26:59 -08:00
Florent Castelli
522983549d Correctly savestate std::maps with non-uint keys. 2013-02-04 03:10:00 +01:00
Unknown W. Brackets
251f4a0b47 Avoid some memory copying when logging. 2013-02-02 15:40:48 -08:00
Henrik Rydgård
b7066a46a0 Merge pull request #567 from xsacha/7bba8c68c478e49bd1e170b34b204164fdf41340
Fix Jit on Symbian
2013-02-02 11:34:12 -08:00
Xele02
d5c2560212 Add window to config key bindings
Save the bindings in the conf file in a map.
2013-02-02 17:43:56 +01:00
Unknown W. Brackets
ec8f080491 Fix the emitter assert. 2013-01-31 23:29:00 -08:00
Unknown W. Brackets
d13e08423a Fix a console log crash when color is on the edge. 2013-01-31 22:58:16 -08:00
Unknown W. Brackets
ac59efad11 Use memcpy for console log to avoid terminators. 2013-01-31 22:25:28 -08:00
Unknown W. Brackets
bc05f7fc85 Fix a stupid typo duplicating log messages. 2013-01-31 21:55:36 -08:00
Sacha
7bba8c68c4 Fix JIT on Symbian (HACK). 2013-02-01 09:01:00 +10:00
Henrik Rydgard
d8f4e27926 Rename ARMABI_MOVI2R to MOVI2R 2013-01-31 23:41:05 +01:00
Sacha
6d63403f69 Fix memory management for allocated block on Symbian. TODO: Use RChunks to make it more efficient. 2013-02-01 02:30:27 +10:00
Unknown W. Brackets
d279eb8932 Fix a bad assertion. 2013-01-31 00:02:51 -08:00
Unknown W. Brackets
f73c67b8b8 Handle it better if the console log overflows. 2013-01-30 21:21:32 -08:00
Unknown W. Brackets
86e66a8e2d Use a char ringbuffer not ptrs in console logging. 2013-01-30 21:21:31 -08:00
Unknown W. Brackets
726196bb66 Use a ringbuffer for the logging instead. 2013-01-30 21:21:31 -08:00
Unknown W. Brackets
fdd8a3cf5f Don't write more lines than the log can show. 2013-01-30 21:21:30 -08:00
Unknown W. Brackets
e813833c18 Disable OutputDebugString logging by default. 2013-01-30 21:21:30 -08:00