710 Commits

Author SHA1 Message Date
The Dax
a35a407207 Add two new instructions to the MIPS interpreter for logging. vertex.pbp demo seems to use one of them. 2013-08-25 16:28:19 -04:00
adrian17
06a015983a Fixed some doubled semicolons 2013-08-25 19:43:18 +02:00
Unknown W. Brackets
97aa1a631e Improve typesafety in the x86 regalloc. 2013-08-24 19:41:10 -07:00
Unknown W. Brackets
3156b95d3f Make sure there's enough space while compiling. 2013-08-24 17:38:22 -07:00
Unknown W. Brackets
6c97b66806 Cap imm branch instructions, reset compiling.
Break and other delay slot ops could've set it to false.

It's actually sometimes faster now.
2013-08-24 17:26:24 -07:00
Unknown W. Brackets
52d6080fb4 Pass in some analysis results, don't use yet. 2013-08-24 15:36:24 -07:00
Unknown W. Brackets
109ad17ac6 Use a typesafe struct for opcodes.
Also, correctly read delayslots using Read_Instruction on ARM.
2013-08-24 15:36:24 -07:00
Unknown W. Brackets
4495559b75 Clean up register usage analysis a bit. 2013-08-24 15:36:23 -07:00
Unknown W. Brackets
b37f09cedf Make MIPSInfo a struct for typesafety.
Found a bug in ReadsFromReg().
2013-08-24 13:22:10 -07:00
Unknown W. Brackets
743b27c9cc Add conditional breakpoints to interpreter. 2013-08-24 09:51:45 -07:00
Unknown W. Brackets
46c5a48a86 Clean up some minor aliasing. 2013-08-22 23:31:49 -07:00
Unknown W. Brackets
1ed8edb0d3 Avoid some dangerous hex constant widths. 2013-08-22 23:23:48 -07:00
Unknown W. Brackets
9864c1cd8d Minor x86 jit branch tweak from arm. 2013-08-16 23:48:41 -07:00
Henrik Rydgård
a678621caf Merge pull request #3191 from Ced2911/ppc_basic
ppc support + ppc jit
2013-08-16 12:16:49 -07:00
Ced2911
63215b6588 cleanup 2013-08-16 19:24:35 +02:00
Ced2911
a390db91e5 fix sub 2013-08-16 14:52:44 +02:00
Ced2911
d2e0b6a903 more compiled alu 2013-08-16 14:52:04 +02:00
Ced2911
eb177f943f jit: load/store, addi
various fixes
2013-08-16 14:51:22 +02:00
Ced2911
41bf19244d use rlwinm instead of and, started jitted memory instructions 2013-08-16 14:50:40 +02:00
Ced2911
2cc17cbcc1 jit few cleanup 2013-08-16 14:49:34 +02:00
Ced2911
5b87d222f4 implement fpu and vpu branch 2013-08-16 14:49:13 +02:00
Ced2911
fd6bbd6096 run cube.elf for 8728 frames (hit BranchFPFlag) 2013-08-16 14:48:42 +02:00
Ced2911
d613c44303 fix bgez 2013-08-16 14:47:54 +02:00
Ced2911
5f05b0b112 fix blt 2013-08-16 14:46:57 +02:00
Ced2911
b0815b84e8 more 2013-08-16 14:46:57 +02:00
Ced2911
3a82881bf2 almost working !
hang when downcount is under 0
2013-08-16 14:45:19 +02:00
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