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
Henrik Rydgard
8956fb2932
Minor optimization in ADDI2R
2013-11-30 15:52:59 +01:00
Unknown W. Brackets
dffa35ef2f
When ins is used with a zero argument, don't OR.
...
Seems it's used effectively to mask out bits with rs=zero. Makes sense...
2013-11-29 09:17:12 -08:00
Henrik Rydgard
aaab7e32d2
ARM emitter: Fix VDUP
2013-11-24 19:30:25 +01: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
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
Unknown W. Brackets
c50ab6d6aa
armjit: Fix divu when divisor is a constant 1.
...
Fixes #4539 and #4520 .
2013-11-19 13:24:15 -08:00
Unknown W. Brackets
f165a15eff
Fix a -unsigned warning.
...
Looks ugly, but (u32)-(s32)val is what we really want here.
Also make a __FUNCTION__ redeclaration warning go away.
2013-11-15 08:18:34 -08:00
Sacha
e3bdb3e09b
Disable LitPool as it is causing crashes with Vertex Decoder JIT. Performance seems to be almost unaffected since the IMM changes.
2013-11-15 14:12:00 +10:00
Sacha
20e8a81268
Switch to compile-time ARMV7 define.
2013-11-15 11:20:39 +10:00
Henrik Rydgård
ddf5b695ac
Update ArmEmitter with Sonic1's new NEON emitters. Thanks!
2013-11-13 11:34:47 +01:00
Unknown W. Brackets
1a98691c57
armjit: Fix ANDI2R() clearing low bits incorrectly.
2013-11-11 19:07:16 -08:00
Unknown W. Brackets
ee492099b5
Avoid a literal in ORI2R where possible.
2013-11-10 14:38:08 -08:00
Unknown W. Brackets
83fe874dcc
armjit: Use multiple BICs in ANDI2R if possible.
...
Rather than a temporary.
2013-11-09 08:42:31 -08:00
Unknown W. Brackets
6038d96b46
armjit: Flush regs using STMIA where possible.
2013-11-09 08:25:07 -08:00
Henrik Rydgard
1bf83efe9e
ARM optimization in ADDI2R: Dual adds instead of MOVI2R, ADD when possible
2013-11-08 12:43:47 +01:00
Unknown W. Brackets
f6662054bd
Fix arm emitter bug in LDRH and friends.
2013-11-05 00:32:08 -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
95c8ee5089
Missing stddef library (Linux buildfix.)
2013-10-27 15:52:40 +00: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
Sacha
18b7503dd5
Fix rounding errors in armjit.
2013-10-14 19:24:13 +10: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
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
Sonicadvance1
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