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
Kingcom
0a78a2d160
Added MIPS assembler
2013-07-28 14:50:25 +02:00
Henrik Rydgard
59644ad59b
Jit: Implement VMMUL for ARM, optimize the x86 implementation. Also add VCST.
2013-07-28 12:14:35 +02:00
Kingcom
1f9991dbec
Add tables for assembling
2013-07-28 00:56:53 +02:00
Unknown W. Brackets
b307d77b61
Oops, need to still rewind on breakpoint.
2013-07-27 15:05:16 -07:00
Henrik Rydgard
2eaf581bbe
Add experimental UV prescaling hack, hidden as it's not finished yet.
...
Most people should ignore this for now, it's a step towards faster skinning in the future.
2013-07-27 23:23:17 +02:00
Unknown W. Brackets
1a9b190188
Treat CORE_NEXTFRAME like CORE_RUNNING is bps.
...
Fixes some cases where breakpoints skip instructions incorrectly.
2013-07-27 13:26:43 -07:00
Henrik Rydgard
afcb5add51
Minor code cleanup/reindent around ARM jit
2013-07-27 22:14:01 +02:00
Henrik Rydgard
76a937f489
ARMJIT Experiment: Keep downcount in a register. Needs benchmarking.
2013-07-27 17:27:26 +02:00
Unknown W. Brackets
7c238f4567
Avoid a signed/unsigned compare.
...
This one is pretty pedantic.
2013-07-26 22:50:55 -07:00
Unknown W. Brackets
e355518549
Fix a bad enum compare.
2013-07-26 22:30:05 -07:00
Unknown W. Brackets
0ca8f5c655
Improve performance of ScanForFunctions().
...
Mostly affects games with a lot of modules and exports.
2013-07-06 16:58:17 -07:00
Unknown W. Brackets
286c153c6a
Fix memchecks for halfwords and bytes.
...
Before it was doing the range on a 4 byte read, which would trip a
memcheck that wasn't actually being hit if the byte of halfword was
unaligned.
2013-07-06 13:15:48 -07:00
Unknown W. Brackets
25cc09b81b
Improve perf when ignore illegal is off.
...
Most users will have it on, but this improves perf a bit when it isn't.
2013-07-06 13:04:19 -07:00
Unknown W. Brackets
77670876cd
Fix memcheck range intersect check.
2013-07-06 12:08:34 -07:00
Unknown W. Brackets
2b4344f61d
Don't rewind the PC on memcheck w/ CORE_NEXTFRAME.
...
If the memcheck doesn't hit, we'll still rewind the PC, causing weirdness.
This is likely if you try to memcheck an address hit first thing in a
vblank interrupt handler or something.
2013-07-06 03:30:21 -07:00