Commit Graph
220 Commits
Author SHA1 Message Date
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
Sonicadvance1 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
Unknown W. Brackets de3713fc50 armjit: improve mem speed without fastmem. 2013-03-16 14:37:35 -07:00
Unknown W. Brackets 8f3904d32d armjit: Speed up imm addresses in slowmem mode. 2013-03-16 14:37:35 -07:00
Unknown W. Brackets f1498b68e0 Re-read R9 on iOS each time.
There's maybe a better way.  Anyhow, seems to run.
2013-03-14 02:18:12 -07:00
Unknown W. Brackets 9561f1d9c1 iOS: Protect/unprotect isn't needed for jit. 2013-03-14 02:16:51 -07:00
Unknown W. Brackets ead6983ad2 Don't lock armjit memory before aligning code. 2013-03-14 01:16:28 -07:00
Sacha f88bf8bbff Attempt at fixing JIT on iOS. Can only have PROT_WRITE or PROT_EXEC enabled. So toggle between them as needed. 2013-03-14 14:40:01 +10:00
Sacha 529803e429 Sonic's ArmEmitter changes (cross-project merge from Dolphin) 2013-03-14 12:47:29 +10:00
Unknown W. Brackets ed76563973 Don't bother checking nice, just do it after. 2013-03-11 02:18:27 -07:00
Unknown W. Brackets b5fe67eb3d If the out is RA, delay slot isn't nice for jal.
Fixes Phantasy Star Portable 2 in jit.
2013-03-11 02:14:38 -07:00
Henrik Rydgård 11c730890e Merge pull request #927 from hrydgard/armjit-opt
ARMJIT: Optimize some common ops for immediates
2013-03-10 00:30:14 -08:00
xsacha 1871c4e8bd Merge pull request #900 from xsacha/master
Rounding Mode Handling
2013-03-09 20:30:39 -08:00
Sacha ac3f3099e1 Fix the conditional rounding for round to zero. Implement ctc1, cfc1. 2013-03-10 11:25:24 +10:00
Henrik Rydgard 216dc7ad65 Optimize some common ops for immediates 2013-03-10 00:48:44 +01:00
Unknown W. Brackets a589361b82 Call GEtImm() before Map* in case of overlap. 2013-03-09 14:39:17 -08:00
Unknown W. Brackets 9100c4a5a2 armjit: Don't MapReg before checking for IsImm(). 2013-03-09 11:57:02 -08:00