Commit graph

95 commits

Author SHA1 Message Date
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
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
Sacha
0f2f59a3f6 Potential JIT for iOS fix. 2013-02-24 17:28:31 +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
44e4ba8772 Merge branch 'master' into armjit-fpu 2013-02-15 21:42:44 +01: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
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
f75d14d3b5 ARM FPU jit work 2013-02-10 15:53:56 +01:00
Henrik Rydgard
c1338259bc Merge latest arm emitters from Sonic1's work. 2013-02-07 20:54:01 +01:00
Henrik Rydgard
d8f4e27926 Rename ARMABI_MOVI2R to MOVI2R 2013-01-31 23:41:05 +01:00
Henrik Rydgard
1b4394ac5e ARM jit: jit integer multiplies. ARM is so nice, very clean. 2013-01-30 01:06:14 +01:00
Henrik Rydgard
630c025fd5 ArmEmitter: Set the P bit for 0-offset LDR/STR like AS does (but not W, which is the update part of indexed instructions) 2013-01-28 22:40:06 +01:00
Henrik Rydgard
e635be5797 Let's set a bit in LDR that should apparently be set. 2013-01-17 00:15:40 +01:00
Henrik Rydgard
e34288070c Don't flush the icache from the start, also don't sleep. May help JIT slowdowns. 2013-01-15 20:42:45 +01:00
Henrik Rydgard
51fd025064 Add ARMv6 fallback to jit (it doesn't have MOVW/MOVT) 2013-01-11 15:20:06 +01:00
Henrik Rydgard
c7a137a930 Merge branch 'master' into armjit
Conflicts:
	android/jni/MenuScreens.cpp
2013-01-10 12:57:45 +01:00
Sacha
ca6d614185 Fix cache invalidation on Blackberry. 2013-01-10 16:37:36 +10:00
Henrik Rydgard
71652874c2 Fix jit bugs related to the dirty flag, and more:
* Tweak block logging
* Faster calls-to-interpreter.
2013-01-10 00:03:51 +01:00
Henrik Rydgard
dafe2c389c More regalloc fixing and tweaks. Still not working the way I want it. 2013-01-09 13:38:44 +01:00
Henrik Rydgard
17210c5364 Generate immediates as rot+shift when possible. 2013-01-09 11:52:49 +01:00
Henrik Rydgard
dafc9f62df Regcache fixes, etc. thing still don't work when I turn on addiu :( 2013-01-09 11:20:48 +01:00
Henrik Rydgard
789c4781c0 Merge remote-tracking branch 'origin/master' into armjit
Conflicts:
	Core/HLE/sceKernelThread.cpp
2013-01-09 00:43:44 +01:00
Henrik Rydgard
76481a300c Icache must be invalidated. Jit now starts to run, but there's no cube in cube.elf! 2013-01-08 23:52:11 +01:00
Summeli
1e8253f1c8 Modified memorymanagement for JIT in Symbian 2013-01-08 19:04:25 +02:00
Henrik Rydgard
b3fd1ff34c Lots of various work on the ARM jit. It executes a couple of blocks now. 2013-01-08 13:49:52 +01:00
Henrik Rydgard
38ae09b50f Merge remote-tracking branch 'origin/armjit' into armjit
Conflicts:
	android/jni/MenuScreens.cpp
2013-01-07 10:22:50 +01:00
Sacha
62908325a0 Make the armjit branch compile on Blackberry, compatible with iOS. Still crashes on ArmEmitterTest(). 2012-12-13 11:41:30 +10:00
Henrik Rydgard
863bc863c9 Some more arm work 2012-11-24 17:51:10 +01:00
Henrik Rydgard
265e70a498 Just some sketchwork on a JIT for ARM. When completed, will bring speed to mobile devices. 2012-11-23 19:41:35 +01:00
Diogo Franco (Kovensky)
6108e36ae9 Several fixes to build under stricter C++11
Add missing #include to various files.

strings.h isn't provided by MSVC so we don't include it there; it's needed
for other OSes/compilers.

Get rid of pre-ISO-C malloc.h includes; malloc is provided by stdlib.h.

Fixes some linuxisms.

Prepend __builtin_ to __clear_cache, calling it without the prefix is a
GNU extension.
2012-11-21 14:33:50 -03:00
Henrik Rydgard
687b085357 Missed these somehow 2012-11-04 23:58:25 +01:00
Henrik Rydgard
5878f28fca Merge Ryan's latest ARM emitter work from Dolphin 2012-11-02 11:58:56 +01:00
Henrik Rydgard
4f7ad15758 Add snapshot of the whole source code. 2012-11-01 16:19:01 +01:00