Ced2911
1a5c6b59c5
add ppc jit
2013-08-16 14:40:29 +02:00
Ced2911
9431c811a7
broken ppc jit
2013-08-16 14:39:54 +02:00
Ced2911
c24c5c88d9
empty jit
2013-08-16 14:37:36 +02:00
Ced2911
c332a4af58
Endian and PPC support
2013-08-16 14:34:15 +02:00
Henrik Rydgård
e36444c1c2
Merge pull request #3189 from unknownbrackets/jit-branch
...
Attempts at continuing jit blocks (disabled)
2013-08-16 02:11:06 -07:00
Unknown W. Brackets
8327cd0f8e
Clean up some inconsistency in jit branches on arm.
2013-08-16 02:02:56 -07:00
Unknown W. Brackets
df32c99be6
Attempt to follow branches to a max # of ops.
...
Seems to make it slower also. Maybe taking the branch would be better...
hmmph.
2013-08-16 01:07:11 -07:00
Unknown W. Brackets
defd2b6383
Attempt at doing branches with imm args.
2013-08-16 01:05:52 -07:00
Unknown W. Brackets
6b0b5145e5
Clean up some inconsistency in jit branches.
2013-08-16 00:44:23 -07:00
Ced2911
78b219b1fd
endian on vfpu
2013-08-16 09:17:34 +02:00
Unknown W. Brackets
14b719a7ac
Make it possible to have more block exits.
2013-08-16 00:12:49 -07:00
Unknown W. Brackets
64c2ea86c0
Add a method to save the gpr/fpr state in jit.
2013-08-16 00:12:49 -07:00
Henrik Rydgard
0348403f61
Turn vcmp back on again, let's not trust the one-operand arm vcmp for now
2013-08-15 22:57:04 +02:00
Unknown W. Brackets
2758634a0f
Avoid overhead calling __KernelIdle().
...
~1.8% improvement in Zettai Hero Project.
2013-08-15 01:35:17 -07:00
Unknown W. Brackets
846178a588
Optimize thread switching a bit.
...
~2.5% improvement in Zettai Hero Project (while multithreading.)
2013-08-15 01:26:16 -07:00
Unknown W. Brackets
5387e5c717
Oops, typo.
2013-08-15 00:38:53 -07:00
Unknown W. Brackets
df50e03146
Add a safety log for cases we don't handle right.
2013-08-14 23:14:25 -07:00
Unknown W. Brackets
e639f8d15f
Handle branches in VFPU delay slots better.
...
Based on tests on a PSP, all branches are attempted. The behavior is
technically undefined.
It seems to take the delay slot's target if they differ and both pass.
This is the behavior the interpreter has, but it's more work in jit.
Since only a couple games seem to do this, and clearly expect this
behavior, this fixes all known cases of #1926 .
2013-08-14 22:56:02 -07:00
Henrik Rydgard
0a5c942daf
Temporarily disable VCMP on ARM. Let's see if this fixes #3071 , if so I have debugging to do.
2013-08-14 17:41:16 +02:00
Unknown W. Brackets
c8716d9a02
Fix a few minor typos + small reporting change.
2013-08-12 23:02:39 -07:00
Unknown W. Brackets
49ab98c7fd
Use atomic operations on Android + warning fixes.
2013-08-12 08:51:49 -07:00
Unknown W. Brackets
7ac67a8931
Add a function to walk the stack, not yet perfect.
...
Could use improvements, but with a decent symbol table does very well so
far in the games I tested it in.
2013-08-12 01:54:14 -07:00
Unknown W. Brackets
92482dfcb3
Branch targets are relative to next instr.
2013-08-12 01:52:54 -07:00
Unknown W. Brackets
4d250954e4
Use the flags in MIPSCodeUtils.
2013-08-11 23:03:25 -07:00
Unknown W. Brackets
c7360f1555
Consider these as taking a IMM16 as well.
2013-08-11 21:30:19 -07:00
Unknown W. Brackets
aac6712974
Get rid of IsDelaySlotInfoSafe since flags are ok.
2013-08-11 20:49:34 -07:00
Unknown W. Brackets
3c4a6e13e4
Cleanup the remaining MIPS tables, reporting.
2013-08-11 20:40:21 -07:00
Unknown W. Brackets
6f703d7b5a
Cleanup flags on VFPU4 sub MIPS tables.
2013-08-11 20:11:34 -07:00
Unknown W. Brackets
3f49101868
Clean up the COP1 MIPS tables, and reporting.
2013-08-11 19:35:39 -07:00
Unknown W. Brackets
7e92b17dd4
Cleanup some COP2/VFPU2 table flags.
2013-08-11 19:13:41 -07:00
Unknown W. Brackets
3ae2b8dcc4
Clean up the SPECIAL3 and REGIMM table flags.
2013-08-11 18:41:21 -07:00
Unknown W. Brackets
8266063394
Make sure we're reporting unknown instructions.
2013-08-11 18:20:43 -07:00
Unknown W. Brackets
f652a2f6f0
Correct SPECIAL2 and separate COP1S and COP1W.
2013-08-11 18:17:03 -07:00
Unknown W. Brackets
b2abdbe44b
Clean up the SPECIAL MIPS table, mostly flags.
2013-08-11 18:01:55 -07:00
Unknown W. Brackets
152f28aeac
Clean up the immediate MIPS table, mostly flags.
2013-08-11 18:01:48 -07:00
Unknown W. Brackets
d08f2bc3fb
Fix some formatting in the MIPS table.
...
And also a couple cases of manually specifying RS.
2013-08-11 17:12:54 -07:00
Unknown W. Brackets
4ebf355ece
Simplify some MIPS table flags.
2013-08-11 17:02:00 -07:00
Unknown W. Brackets
ebfa3de388
Fix a couple potential infinite loops.
2013-08-11 16:28:20 -07:00
Henrik Rydgard
fecd9d5f78
Minor optimization, sketch on an lvl.q jit implementation
2013-08-11 22:12:15 +02:00
Unknown W. Brackets
82aca253e4
Add a few more OUT_EAT_PREFIX flags.
...
Based on testing the instructions individually. Cuts a few cases in God
Eater Burst where instructions bailed out of jit.
2013-08-10 23:19:03 -07:00
Henrik Rydgard
408e570469
Typo fix
2013-08-10 23:41:29 +02:00
Henrik Rydgard
89ddbb51bb
Oops, XMM0 might be taken by temps. Also, s/GC_ALIGN16/MEMORY_ALIGN16
2013-08-10 23:39:24 +02:00
Henrik Rydgard
4c6006190f
Of course, found the real bug causing #3117 immediately after the revert. Fixed.
2013-08-10 23:32:12 +02:00
Henrik Rydgard
a517b8d53f
Fix #3117 (by reverting part of a previous change), plus a minor change that might speed GT up.
2013-08-10 23:25:55 +02:00
Henrik Rydgard
0dac2b4783
Update native, minor UI stuff and cleanups
2013-08-10 23:04:23 +02:00
Henrik Rydgard
bc84c135b3
Revert vscmp, didn't make a difference in the tests anyway
2013-08-10 19:22:33 +02:00
Henrik Rydgard
394f590c36
Failed attempt at implementing vsge/vslt. Dunno what's wrong but disabled for now.
2013-08-10 18:39:27 +02:00
Henrik Rydgard
174223c42b
Fix VCMP (VC_TR) and optimize a little
2013-08-08 21:03:40 +02:00
Henrik Rydgard
8714240519
Fix vf2i properly on x86.
2013-08-07 21:30:57 +02:00
Henrik Rydgard
dce3c9449b
Attempt to quickfix vf2i but failed, so disabling it. Should fix #3084
2013-08-07 18:07:49 +02:00
Henrik Rydgard
a281c1a899
ARMjit: vmin/vmax
2013-08-06 23:17:10 +02:00
Henrik Rydgard
201282f28c
JIT: Implement vf2i (truncate mode only)
2013-08-06 19:08:15 +02:00
Henrik Rydgard
c71b304ba1
Fix a classic bug again (now in armjit), + a minor opt
2013-08-06 15:22:19 +02:00
Henrik Rydgard
1d81698728
JIT (both): Implement VCMOV
2013-08-06 13:29:17 +02:00
Henrik Rydgard
140d12c3db
ARMJIT: Fix and enable cross product
2013-08-06 11:55:11 +02:00
Henrik Rydgard
d2c9919573
Vcmp: Fix ARM, optimize x86 slightly
2013-08-06 11:49:10 +02:00
Henrik Rydgard
2f1e6f81bb
Android buildfix
2013-08-06 11:24:48 +02:00
Henrik Rydgard
2f0cdc6988
ARMJIT: disable vi2f, it seems buggy. preliminary disabled impl of vcrsp.t.
2013-08-06 11:10:26 +02:00
Henrik Rydgard
4e8958f42d
A small optimization, a few jit stubs, and cross/quat product on x86.
2013-08-01 00:15:08 +02:00
Henrik Rydgard
76ae643335
Cleanup
2013-07-31 22:42:51 +02:00
Henrik Rydgard
c86dc7279e
JIT: Implement VCMP in both JITs. Only the x86 one is tested and enabled.
2013-07-31 22:29:16 +02:00
Henrik Rydgard
7fc5ce56de
Fix viim for x86, implement for ARM.
2013-07-31 18:21:23 +02:00
Henrik Rydgard
0a8f85a919
Some JIT cleanup, implement VI2F on ARM. also disabled untested impl of viim for x86.
2013-07-31 17:27:04 +02:00
Henrik Rydgård
7bea5ad58b
Revert rounding change that broke GEB as mentioned in issue #3011 .
...
Experimental.
2013-07-31 15:51:01 +02:00
Henrik Rydgård
63ca1c897c
Merge pull request #3016 from Kingcom/RegisterList
...
Add pc, hi, and lo to the register list
2013-07-31 03:49:48 -07:00
Henrik Rydgard
3303a71796
Oops
2013-07-31 11:25:35 +02:00
Henrik Rydgard
9bf8bfbed4
armjit clamp: Clamp negative 0 to positive 0.
2013-07-31 11:22:04 +02:00
Henrik Rydgard
c8604f3c30
ARM JIT; Fix D prefix. Turn prefixes on.
2013-07-31 11:15:42 +02:00
Henrik Rydgard
51596b636a
Fix numerous ARM JIT bugs. Activate vmtvc and vscl, and vadd/vmul/vdiv/vsub for real this time.
2013-07-31 10:34:58 +02:00
Kingcom
a8ef18c039
Add pc, hi, and lo to the register list
2013-07-31 10:24:24 +02:00
Henrik Rydgard
ebcdd637ee
ARMJit bugfixes, enable vmul, vadd, vdiv, vsub.
...
Prefixes disabled until I can fix clamping.
2013-07-31 00:12:43 +02:00
Henrik Rydgard
9ac511f191
Don't check vector size in vfim (nonsense). implement for arm. minor fix.
2013-07-30 22:34:12 +02:00
Henrik Rydgard
e93c2abe27
x86 jit: implement vfim. Move some stuff to native. cleanup for armjit logging
2013-07-30 22:28:05 +02:00
Henrik Rydgard
cdf674358e
Merge remote-tracking branch 'origin/master'
...
Conflicts:
Core/MIPS/MIPSInt.cpp
2013-07-30 19:35:12 +02:00
Henrik Rydgard
4c66fe3ed7
More jit stuff. Had to disable all the new stuff because of breakage :/
2013-07-30 19:34:32 +02:00
Henrik Rydgard
ee215cc316
ARMJIT: Fix eatprefix, add DirtyInInV mapping, misc stuff
2013-07-30 18:15:48 +02:00
Henrik Rydgård
4ac782f789
Merge pull request #2999 from Kingcom/OpcodeInfo
...
Display if condition is met (and more)
2013-07-30 02:54:14 -07:00
Kingcom
723f242f0c
Rerwrote GetOpcodeInfo and adapted MipsTables for it
2013-07-30 11:29:30 +02:00
Kingcom
32f1ca91fd
-add function to get relevant opcode information for the disassembly
...
-put it to use to clean up code
2013-07-30 10:14:56 +02:00
Unknown W. Brackets
619ee80f38
Buildfix (MSVC 2010.)
2013-07-29 22:58:22 -07:00
Kingcom
0ef12098df
Fix branch/jump target calculation in MIPSCodeUtils
2013-07-30 01:35:37 +02:00
The Dax
0ce45848b5
These funcs are already defined in math_util.h, so why are they redefined in this file? In any case, it seems to break 2010/2012 compilation to have those in there..
2013-07-29 19:31:31 -04:00
Henrik Rydgard
76e16d49f6
VFPU: fix rounding in VF2IN
2013-07-30 01:09:11 +02:00
Henrik Rydgard
d8294f025f
More VFPU stuff (nothing new activated)
2013-07-30 01:09:11 +02:00
Kingcom
584c20a84e
Slightly more efficient implementation of getDirectSymbol
2013-07-29 19:38:20 +02:00
Unknown W. Brackets
b46ab5f5a4
Always defined WIN32_LEAN_AND_MEAN.
...
Might as well, less mess everywhere else.
2013-07-28 21:04:20 -07:00
Unknown W. Brackets
7b7801d59a
Switch to including Windows.h from an intermediate.
...
This makes it easier for Xbox which uses a separate header.
2013-07-28 21:04:19 -07:00
Henrik Rydgard
48791876f3
ARM Jit: Implement VTFM*
2013-07-28 23:16:19 +02:00
Henrik Rydgård
22632f7f5e
Merge pull request #2966 from Kingcom/Assembler
...
Clang buildfix
2013-07-28 13:23:04 -07:00
Henrik Rydgard
3b9e6243eb
Only flush the required registers on function calls (only implemented for real on ARM)
2013-07-28 22:21:43 +02:00
Henrik Rydgard
3341e7e7fc
Fix VROT on 32-bit x86
2013-07-28 22:20:32 +02:00
Kingcom
549a9afb70
Clang buildfix
2013-07-28 21:57:01 +02:00
Henrik Rydgard
6ecd0194fa
Implement VROT in both JITs, as it's heavily used by a few games.
...
Another ~1-3% in FF:CC.
2013-07-28 18:22:12 +02:00
Henrik Rydgard
daaed2183f
Jit x86: Implement vhdp
2013-07-28 18:22:11 +02:00
Sacha
580ce69897
Buildfix for non-Windows.
2013-07-29 00:52:01 +10:00
Sacha
056ae5db44
Buildfix for Qt.
2013-07-29 00:26:36 +10:00
Henrik Rydgard
8feeaf2e7a
Jit: Implement vidt in both, plus translate a couple easy ones to ARM.
2013-07-28 16:14:21 +02:00
Kingcom
f72807cac3
Translate comments
2013-07-28 15:42:17 +02:00
Kingcom
b6bca24850
-added assemble option to disassembly view
...
-added 16bit li
2013-07-28 15:24:33 +02:00
Kingcom
961905cce8
Merge branch 'master' of https://github.com/hrydgard/ppsspp into Assembler
2013-07-28 15:16:18 +02:00