Commit Graph
98 Commits
Author SHA1 Message Date
Henrik Rydgård 4582902cf2 Make the ARM stuff build on clang so we can later get the unit test to
work there. also fixes the build.
2013-09-29 20:01:38 +02:00
Henrik Rydgard b661ae6c41 Add very simple jit viewer screen to dev menu. Add untested emitter for cvt.f32.f16 & c:o. 2013-09-29 13:41:56 +02:00
adrian17 5f86bc44d4 Deleted some doubled #includes. 2013-09-27 21:38:07 +02:00
Henrik Rydgard 499dbc05ee ArmEmitter: Merge a fix and some new instructions from Sonic1's emitter. 2013-09-14 12:04:55 +02:00
Henrik Rydgard 324cde5a79 Let's actually use the log category mechanism. A first step. 2013-09-07 21:19:21 +02:00
Unknown W. Brackets 1ed8edb0d3 Avoid some dangerous hex constant widths. 2013-08-22 23:23:48 -07:00
Unknown W. Brackets 49c7b9628a Fix some correctness warnings. 2013-08-12 23:40:22 -07: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
Henrik Rydgard 65f8430c32 Quick hacked-up ARM VFP disassembler. Buggy. 2013-07-30 21:39:37 +02:00
Sacha 663f888a54 Sonic: Fix encoding in VADD (cross-project merge). 2013-07-30 04:37:47 +10:00
Unknown W. Brackets 0cd5766f50 Support clang as well as gcc for Android/Linux. 2013-07-26 22:13:57 -07:00
Sacha 637d75f47d Unlock the other 16 regs that are available for NEON. 2013-06-09 23:15:59 +10:00
Sacha 29d1e40c79 Buildfix for Blackberry, Linux, Symbian, non-ffmpeg platforms, Meego, ... 2013-06-09 22:53:22 +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
Sacha a14a2fafa9 ARMJIT: Fix and use DIV, DIVU, INS and EXT (ARMv7 and VFPv4 implementations). 2013-05-24 08:26:19 +10:00
Sonicadvance1andUnknown W. Brackets cd9b49acfd Updates to ArmEmitter from Dolphin. 2013-04-12 10:14:18 -07:00
Unknown W. Brackets 268f30f522 Buildfix. 2013-03-29 01:27:24 -07:00
Sacha 2f63b56c19 If MOVI2R can be done in 2 ops for ARMv6, prefer that over litpool. Litpool can take 1-3 cycles depending on when the value is used. So, usually 3 cycles :\. 2013-03-28 21:26:13 +10:00
Sacha 471ddd6380 Simplify armjit. 2013-03-26 02:41:15 +10:00
Unknown W. Brackets de3713fc50 armjit: improve mem speed without fastmem. 2013-03-16 14:37:35 -07:00
Unknown W. Brackets 663b481033 armjit: Fix encoding of LDRH/STRH/LDRSH/LDRSB.
Fixes fastmem issues recently introduced.
2013-03-15 00:12:28 -07:00
Sacha 5091c7aae2 Fix Sonic's ArmEmitter changes. FastMem should work now. 2013-03-15 11:26:56 +10: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
Sacha 7782be9a3e Try software rounding mode instead. Use conditionals for VFP functions. Note: Round to Zero not working for some reason? 2013-03-08 22:39:34 +10:00
Sacha fbef590bed Add emitters for VMRS/VMSR. Undisable ceil, which works. Add stub for rounding mode handling. 2013-03-08 22:39:34 +10:00
Sacha b9ec281c55 Disable rounding methods that aren't working in hardware. Add some notes. Fix compare fall-through and choose right round method. 2013-03-07 21:33:30 +10:00
Sacha 9f0bb8cf52 armv6: Reuse constants in literal pool.
May reduce memory loads?
2013-03-07 14:44:55 +10:00
Sacha ae3b881a7f Use correct args for Operand2(..) through armjit. Fix STR(..). 2013-03-07 00:59:07 +10:00
Sacha 268d16bd24 Use correct args for STR(..) throughout armjit. 2013-03-07 00:59:07 +10:00
Sacha 5a134243a7 Armjit: Fix lwl, lwr and enable again. Thanks Sonic. 2013-03-06 03:28:28 +10:00
Sacha 7e67de3334 Armjit: Implement lwl, lwr, swl, swr in ARM JIT. lwr is currently disabled as it isn't working. 2013-03-06 02:11:36 +10:00
Sacha 9152d2f2bb Armjit: Optimise swl+swr and lwl+lwr cases that can be combined to a single sw or lw. Add shift flags to STR/LDR. Add EatInstruction to ArmJit. 2013-03-06 02:11:36 +10:00
Sacha 4641cf376f Armjit: Implement CLZ instruction. Disable reg shifts for now (breaks Wipeout Pure). 2013-03-05 14:16:35 +10:00
Sacha 10ad797c6d Armjit stubs.
Add a double encoding for VCVT. Implement integer divide (but not working yet). Stubs for msub/msubu. Don't detect vfpv3 on Symbian.
2013-03-05 13:16:08 +10:00
Sacha 1089a31a45 Armjit: add reverse bit instruction. 2013-03-05 02:58:51 +10:00
Sacha bce3295950 Fix graphical issues. DISABLE INS instruction for now. Fix OR (it was doing AND). 2013-03-04 22:09:45 +10:00
Sacha 0fc6b60874 Fix Lit Pools for cases where offset goes out of range. For example: Zero no Kiseki has a block that is 7K large. 2013-03-04 14:36:23 +10:00
Sacha 9633239f18 Update for lit pools. Works in some games now thanks to [Unknown]. 2013-03-04 14:29:17 +10:00
Sacha bdfe24a86b ARMv6 literal pool method. 2013-03-04 14:26:45 +10:00
Henrik Rydgard 7dc75d87b5 armjit: Re-enable ext/ins, safer implementation. arm7 path disabled for now. 2013-03-03 23:17:21 +01:00
Henrik Rydgard 1cddc86e05 armjit: Temporarily disable ext/ins as they appear to have broken Persona 3 somehow. 2013-03-03 22:26:20 +01:00
Henrik Rydgard 1e3a00ee9d armjit: implement vzero, vone. Use vmla for dot product. 2013-03-03 20:56:22 +01:00
Henrik Rydgard 650c02c3a5 Some more armjit work (ext, ins) and VFPU prefix clamps (not enabled) 2013-03-03 17:36:22 +01:00
Henrik Rydgard bc15617392 Make un-buffered rendering much smarter, removing flicker.
This turns it into a very viable option for many games. You do lose some FX
but it can as a result even be used as a workaround for the massive glow
in Wipeout...
2013-03-03 13:00:21 +01:00
Henrik Rydgard b781c8deb5 Delete unused ARM emitter function. 2013-03-03 10:55:49 +01:00