libskia: use GAS for now

Summary: TODO: Requires more UAL conformity

Test Plan: gtg

Reviewers: randall.rushing, anders3408, jriordan001, synergy

Reviewed By: synergy

Differential Revision: http://review.codefirex.com/D435
Revert "skia: NEON blit optimizations from Samsung"

Summary:
This reverts commit 0d516ea523189c3d8996cd2fc0e3f00b9ffc1073.
A lot of this code needs massive cleanup, let's avoid using it for now

Test Plan: gtg

Reviewers: randall.rushing, anders3408, jriordan001, synergy

Reviewed By: synergy

Differential Revision: http://review.codefirex.com/D438
ARM Skia NEON patches - 18 - Preparation work for BitmapProcState

Summary:
BitmapProcState: clean a little and get rid of some asm

replacing the apparently stupid dx+dx+dx leads to more instructions
being generated.

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BitmapProcState: move code common to C and NEON to a separate header

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=
R=djsollen@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://chromiumcodereview.appspot.com/21931002

Test Plan: gtg

Reviewers: randall.rushing, anders3408, jriordan001, synergy

Reviewed By: synergy

Differential Revision: http://review.codefirex.com/D439
ARM Skia NEON patches - 20 - New improved BitmapProcState code

Summary:
BitmapProcState: new factorised code

This one basically factorises the clamp and repeat transformations with
some performance improvements. It has the benefit of being faster, much
easier to maintain (nearly three times less code for more work
done :-)), and more complete (all persp transformations weren't optimised
in the previous version).

It also introduces the use of can_truncate_to_fixed_for_decal where
useful.

The effect on benchmarks ranges from a 5% penalty to a 25% gain on a
Cortex-A9 and from a 5% penalty to a 100% gain on a Cortex-A15.

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=
R=djsollen@google.com, mtklein@google.com, luisjoseromeroesclusa@hotmail.com, reed@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://codereview.chromium.org/23835006

Depends on D439

Test Plan: gtg

Reviewers: randall.rushing, anders3408, jriordan001, synergy

Reviewed By: synergy

Differential Revision: http://review.codefirex.com/D440
Revert "NEON optimized blitter S32_Opaque_D32_filter_DX"

Summary:
This reverts commit 82f951d6c7a3486e6822f51c8fcc57c163424e90.
This needs major cleanup, and usptream NEON opts are better overall anyway.

Test Plan: gtg

Reviewers: randall.rushing, anders3408, jriordan001, synergy

Reviewed By: synergy

Differential Revision: http://review.codefirex.com/D443
ARM Skia NEON patches - 23 - S32_D565_Opaque_Dither cleanup/bugfix/speed

Summary:
BlitRow565: S32_D565_Opaque_Dither: cleaning / bugfix

This patch brings a little code cleaning (spaces/comments) and a little
speed improvement (by using post-incrementation in the asm) but more
importantly it fixes a bug on Linux. The new code now supports ARGB
as well as ABGR.

I removed the comment as I have confirmed with benchmarks that this
code bring a *massive* (3x-7x) speedup compared to the C code.

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=
R=djsollen@google.com, mtklein@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://chromiumcodereview.appspot.com/22269003

Test Plan: gtg

Reviewers: randall.rushing, anders3408, jriordan001, synergy

Reviewed By: synergy

Differential Revision: http://review.codefirex.com/D446
ARM Skia NEON patches - 21 - new NEON S32_D565_Opaque

Summary:
BlitRow565: NEON version of S32_D565_Opaque

Here's a new implementation of S32_D565_Opaque in NEON. It
improves dramatically the speed compared to S32A_D565_Opaque.

Here are the benchmark results (speedup vs. existing NEON):

+-------+-----------+------------+
| count | Cortex-A9 | Cortex-A15 |
+-------+-----------+------------+
| 1     | +130%     | +139%      |
+-------+-----------+------------+
| 2     | +65,2%    | +51%       |
+-------+-----------+------------+
| 4     | -25,5%    | +10,2%     |
+-------+-----------+------------+
| 8     | +63,8%    | +32,1%     |
+-------+-----------+------------+
| 16    | +110%     | +49,2%     |
+-------+-----------+------------+
| 64    | +153%     | +123,5%    |
+-------+-----------+------------+
| 256   | +151%     | +144,7%    |
+-------+-----------+------------+
| 1024  | +272%     | +157,2%    |
+-------+-----------+------------+

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=
R=djsollen@google.com, mtklein@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://chromiumcodereview.appspot.com/22351006

Test Plan: gtg

Reviewers: randall.rushing, anders3408, jriordan001, synergy

Reviewed By: synergy

Differential Revision: http://review.codefirex.com/D447
ARM Skia NEON patches - 24 - S32_D565_Blend_Dither slight speedup/bugfix

Summary:
BlitRow565: S32_D565_Blend_Dither, slight speedup + bugfix

This patch adds a rewrite of S32_D565_Blend_Dither in intrinsics.
The newer version is faster (10-20% depending on the value of count)
and also supports ARGB as well as ABGR. It also adds the missing
assert at the beginning of the function.

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=
R=djsollen@google.com, mtklein@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://chromiumcodereview.appspot.com/22566002

Test Plan: gtg

Reviewers: randall.rushing, anders3408, jriordan001, synergy

Reviewed By: synergy

Differential Revision: http://review.codefirex.com/D448
SkBlitRow_opts_arm_neon: Workaround for lacking GAS type vuzpq support

Summary: Workaround due to integrated llvm clang as lacking full GAS type vuzpq support

Test Plan: seems good to go

Reviewers: randall.rushing, jriordan001, anders3408, synergy

Reviewed By: synergy

Differential Revision: http://review.codefirex.com/D449