Commit Graph
685 Commits
Author SHA1 Message Date
Henrik Rydgard 48791876f3 ARM Jit: Implement VTFM* 2013-07-28 23:16:19 +02: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 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
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
Henrik Rydgard 59644ad59b Jit: Implement VMMUL for ARM, optimize the x86 implementation. Also add VCST. 2013-07-28 12:14:35 +02: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
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 7960bd0767 Fix dumb mistake from x86 jit changes, fixes #2635. 2013-07-05 22:05:55 -07:00
Unknown W. Brackets d823989330 Implement vmone/vmzero/vmidt for the x86 jit. 2013-07-04 18:16:57 -07:00
Unknown W. Brackets c9c3bc83e4 Log more info about branches in delay slots. 2013-06-30 13:19:27 -07:00
Jake Traynham e89b2055a6 Reenabled armv7s for iOS with JIT fixes 2013-06-20 11:44:59 -05:00
Henrik Rydgard ce2c18d2fe Remove redundant vmov instructions (seen in wipeout) 2013-06-15 00:19:48 +02:00
Sacha 2450c0d28d We can't use S2 or D1. Use alternative means. 2013-06-10 19:28:53 +10:00
Sacha 104a3a316b Revert extra regs allocation. Causes some crashes with ffmpeg. 2013-06-10 00:29:08 +10:00
Sacha 637d75f47d Unlock the other 16 regs that are available for NEON. 2013-06-09 23:15:59 +10:00
Sacha 583927988c Armjit Update: Improvements
Implement vsat0 and vsat1
Introduce VMOV for immediates.  Use in MOVI2F where possible by detecting if float val can be encoded.
Combine some vneg ops in ApplyPrefixST.
2013-06-09 21:27:16 +10:00
Sacha f21218c3f9 Armjit: Combine mul.s + neg.s to VNMUL. Implement VNMUL, VNMLA, VNMLS.
I had implemented mul.s + add/sub.s + add/sub.s -> VADD/VSUB + V(N)ML(A/S). Turns out it doesn't happen enough though (once or twice per game).
2013-06-08 16:39:59 +10:00
Sacha 10c976b2af Armjit: Improve ApplyPrefixD. Add VABD to emitter. 2013-06-06 03:08:58 +10:00
Sacha 6712de1136 Armjit: Implement wsbh and wsbw (rev16 and rev). Fix encoding for rev16. 2013-06-05 11:32:44 +10:00
Unknown W. Brackets a640ac4001 Bail out on a delay slot in VFPU on arm also.
Otherwise we loop infinitely.

Workaround for #1926.  Should fix #1679.
2013-06-03 00:06:24 -07:00
Unknown W. Brackets 5595146f56 Add reporting for jumps in delay slots. 2013-05-26 20:30:14 -07:00
Sacha a14a2fafa9 ARMJIT: Fix and use DIV, DIVU, INS and EXT (ARMv7 and VFPv4 implementations). 2013-05-24 08:26:19 +10:00
Henrik Rydgard 1a1c161a0d Implement vmin/vmax in x86 jit, slots right into VecDo3 2013-04-27 20:52:42 +02:00
Henrik Rydgard 6f4ad05582 Remove some unused code, add some stubs to vfpu jit, some cleanup 2013-04-27 19:35:42 +02:00
Henrik Rydgard 78fe42fe80 Buildfix 2013-04-27 12:04:42 +02:00
Henrik Rydgard 2a39a3b972 JIT: Get rid of one memory access per dispatch, and get rid of blockcodepointers. 2013-04-27 01:32:03 +02:00
Henrik Rydgard 9eace8a80e Combine the two JitCache implementations (x86, ARM) into one. 2013-04-27 01:32:03 +02:00
Henrik Rydgard 8a904fe478 Some JIT cleanup 2013-04-27 01:32:02 +02:00
Unknown W. Brackets 3bb5651ca7 Initial x86 jit for vtfm/vhtfm. 2013-04-20 01:52:06 -07:00
Unknown W. Brackets 9245490b53 Initial / simple vmscl for x86 jit. 2013-04-20 01:34:16 -07:00
Unknown W. Brackets 29109d25af Non-optimal vmmul for x86 jit.
It's faster than interpreter anyway, but it could be much better.
2013-04-20 01:15:15 -07:00
Unknown W. Brackets cfac7324d6 Implement vscl in the x86 jit. 2013-04-20 01:15:14 -07:00
Sonicadvance1andUnknown W. Brackets cd9b49acfd Updates to ArmEmitter from Dolphin. 2013-04-12 10:14:18 -07:00
Henrik Rydgard 724a600381 Buildfix android, misc other fixes, some include cleanup 2013-03-29 20:55:32 +01:00
Henrik Rydgård 04b1518874 Merge pull request #1074 from xsacha/master
Simplify armjit.
2013-03-26 01:13:56 -07:00
Unknown W. Brackets e4223dbcb0 Simplify adding report messages, add a bunch more. 2013-03-26 00:54:00 -07:00
Sacha 471ddd6380 Simplify armjit. 2013-03-26 02:41:15 +10:00
Aapo Rantalainen 2b965a6f03 Maemo5 support 2013-03-22 09:15:00 +02:00
Henrik Rydgard 5293c152c6 Untested support for Android-x86. No idea if this actually works. 2013-03-21 20:52:33 +01:00
Unknown W. Brackets 796d2c10c6 armjit: VRAM comes before RAM, fix slowmem check.
Can't think of anything else, hopefully fixes #1021.
2013-03-18 08:08:40 -07:00
Unknown W. Brackets 5e537bd528 armjit: Optimize imm addresses in VFPU, slowmem path. 2013-03-16 20:31:52 -07:00
Unknown W. Brackets 3466f3c721 armjit: Add fastmem check to FPU.
Could reduce crashes that don't happen on x86.
2013-03-16 20:31:51 -07:00
Unknown W. Brackets b8eb526691 armjit: improve slowmem, fix vram check.
Darn, copy/paste error.
2013-03-16 20:31:51 -07:00
Unknown W. Brackets 6ef5f4c8dc armjit: Refactor slowmem path for reusing it. 2013-03-16 14:37:35 -07:00
Unknown W. Brackets 45b0b1203f armjit: No, LDR/STR do not update flags.
Oops, had some other bug and thought this was the issue.
2013-03-16 14:37:35 -07:00