Unknown W. Brackets
2f5c6a5660
Fix VLDM/VSTM encoding for double/quad regs.
...
Duh, forgot to check Vd. Fixes #5723 .
2014-03-25 22:08:20 -07:00
Unknown W. Brackets
009c3ee3f7
vertexjit: Save S16-S31 registers in ARM.
2014-03-23 16:26:13 -07:00
Unknown W. Brackets
ff2d5bb17e
Add a float->GP reg, fix VDUP for I_16.
2014-03-23 16:25:56 -07:00
Unknown W. Brackets
8056440ba1
Implement NEON register VMOVs.
2014-03-23 16:25:52 -07:00
Unknown W. Brackets
3e1cd5c161
Add a NEON VMOV imm encoding to the emitter.
2014-03-23 16:12:46 -07:00
Unknown W. Brackets
f3d38ee269
Fix VMOV for Dregs and VSHL reg order.
2014-03-22 16:12:00 -07:00
Unknown W. Brackets
0da9c1851c
vertexjit: Add VQMOV(U)N and fix VMOVN size.
...
It will be too confusing if it's specified as the destination, unlike
VMOVL. Plus the assembler syntax uses the source size.
2014-03-22 16:11:36 -07:00
Henrik Rydgård
8dfadf7b8e
ArmEmitter: Add VMOV_neon and a Size parameter to VFMA for consistency.
2014-03-22 16:31:16 +01:00
Unknown W. Brackets
e783627947
armjit: Use our I2R funcs on reg/reg math too.
...
When one is a known immediate. This should catch more cases, like:
ori v0, $0, 0xFFFF
and v1, v1, v0
2014-03-14 19:15:43 -07:00
Unknown W. Brackets
3a07924ad9
Add Try arm emitter I2R funcs.
...
This way we can use them without giving up the regcache's immediate
optimizations.
2014-03-14 19:15:42 -07:00
Unknown W. Brackets
76305130ee
Add a couple missing (unused) ARM instructions.
2014-03-14 19:15:39 -07:00
Sacha
30a6a5d10f
ARMJIT: Implement VLDM/VSTM load/store combinations and use in armjit. Also add them to disassembler.
2014-03-07 02:56:34 +10:00
Unknown W. Brackets
2655a4cba6
Include some now-missing things for Linux.
2013-12-30 21:15:00 -08:00
Henrik Rydgård
e5e17fbc6e
More include cleanup. Hoping for very slightly faster compile times..
2013-12-30 10:49:05 +01:00
Unknown W. Brackets
e6b2d00a2f
Avoid reseved identifiers like _SP, etc.
...
R_SP is not that bad.
2013-12-29 14:25:34 -08:00
Unknown W. Brackets
5d2ff64252
Support for modified jit-enabled VerySleepy.
...
This allows profiling the jit. Should have zero perf impact when not
in use, since it's entirely triggered by VerySleepy.
2013-11-30 19:20:21 -08:00
Henrik Rydgard
030e6460cc
ARM: NEON-optimize software skinning
2013-11-24 18:03:42 +01:00
Henrik Rydgard
dfea160491
ARM: Use PLD (cache preload) in vertex decoder loop.
2013-11-24 15:08:47 +01:00
Henrik Rydgard
f650b23c90
ARM: Add NEON widening and narrowing moves, and float/int convert.
...
Experiment a little in the vertex decoder.
2013-11-24 13:30:28 +01:00
Henrik Rydgard
8e513ec38a
MOVP2R linux buildfix attempt
2013-11-23 16:50:08 +01:00
Henrik Rydgard
16509ba3e9
ARMEmitter: Make the helper functions private.
2013-11-23 13:43:22 +01:00
Henrik Rydgard
cda4e9cbf3
ARM emitter: Complete VLD1/VST1 for lanes and to-all-lanes.
2013-11-23 13:36:26 +01:00
Henrik Rydgard
e0eb152fb9
VLD1/VST1: Change argument ordering again.
2013-11-23 11:05:19 +01:00
Henrik Rydgard
b64f44c3fc
ARM emitter: Implement VMLA and VMUL by scalar, VLD1/VST1 multiple
2013-11-23 01:51:35 +01:00
Henrik Rydgard
97cfbd1a5f
ArmEmitter: Introduce MOVP2R, let's you load a pointer without casting.
2013-11-22 23:10:25 +01:00
Henrik Rydgård
ddf5b695ac
Update ArmEmitter with Sonic1's new NEON emitters. Thanks!
2013-11-13 11:34:47 +01:00
Sacha
d50b01a778
Doesn't really 'free', so called 'reset' instead.
2013-11-12 02:13:34 +10:00
Sacha
3bc8adf426
Fix crashes on Symbian related to memory allocation.
2013-11-12 02:06:12 +10:00
Sacha
2c795907b2
Symbian: Handle multiple executable memory allocations.
...
Windows: Remove MemUsage (from Dolphin) as it was unused.
Fix some tabbing.
2013-11-11 02:55:45 +10:00
Unknown W. Brackets
6038d96b46
armjit: Flush regs using STMIA where possible.
2013-11-09 08:25:07 -08:00
Unknown W. Brackets
7a8671f8a2
Add a TSTI2R helper for readability mainly.
2013-11-03 21:58:26 -08:00
Unknown W. Brackets
5de7181b36
Add other forms of LDM/STM to the emitter.
2013-11-03 21:31:05 -08:00
Unknown W. Brackets
ffa0f2fb44
Fix some arm emitter warnings on win64.
...
We link it in for debugging purposes.
2013-10-26 17:57:40 -07:00
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
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
c8716d9a02
Fix a few minor typos + small reporting change.
2013-08-12 23:02:39 -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
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
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
Sonicadvance1
cd9b49acfd
Updates to ArmEmitter from Dolphin.
2013-04-12 10:14:18 -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
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