Build fixes from linaro.

skia: Use -fno-strict-aliasing for tests

Tests aren't compatible with strict aliasing rules, and aren't
speed relevant anyway -- use -fno-strict-aliasing

Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

skia: Fix build in ISO C++11 mode

Fix macro constructs that could be mistaken for new string literals

Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

skia: Use -fno-strict-aliasing for now

Change-Id: Iced75d8e419ffeee26e478b7716dfcf13e0f53d0
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

skia/bench: Use -fno-strict-aliasing

Use -fno-strict-aliasing for the benchmark so we don't have to use
it globally

Change-Id: Ibe5b80587818058cbb4290fe694c0b5d4cdc75a0
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

skia: Fix build in ISO C++ 11 mode

Change-Id: Ic1241cca1ec6eced270bff62da45e6c6b49e3ef2
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
Merge pull request #1 from CyanogenMod/cm-10.1

FIX: memcpy_76(): add support for non-ARM architectures
Merge pull request #2 from CyanogenMod/cm-10.1

Cm 10.1
Merge pull request #3 from loosethisskin/cm-10.1-linaro

Cm 10.1 linaro
Restore cutil memsetX functions for Cortex-A9.

Restores usage of memset16/32 functions from Android's libcutil
library for platforms running Cortex-A9, since non-Neon
is usually faster.

Change-Id: I7b55e08f9dc4a403caaa8b1f90e0c0eea0d73542
Signed-off-by: Henrik Smiding <henrik.smiding@stericsson.com>
Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com>
Modify sample buffer size for larger displays.

Modifies the intermediate buffer size for sample pixel indexes, used in the
sample proc function calls. If the buffer is not large enough, the job is split
into several calls. This would impact the performance of SIMD optimizations.

Change-Id: I86848d1c44fe338258b40f6ee6a576289cebd496
Signed-off-by: Henrik Smiding <henrik.smiding@stericsson.com>
Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com>
Add shader for Clamp_S32_Opaque_D32_filter_DX.

Adds a NEON optimized shader for S32_Opaque_D32_filter_DX when
running with clamped tile mode.
Improves performance of browser and many other applications.

Change-Id: Ic3d83bfd70c8b0c6c956482db5f3a08667655d6e
Signed-off-by: Henrik Smiding <henrik.smiding@stericsson.com>
Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com>

Conflicts:
	src/opts/SkBitmapProcState_opts_arm.cpp
Add shader for Clamp_SI8_opaque_D32_filter_DX.

Adds a NEON optimized shader for SI8_opaque_D32_filter_DX when
running with clamped tile mode.
Improves performance of browser.

Change-Id: I0e1fa03d4104210953b7ec81ce10eba5f77459cc
Signed-off-by: Henrik Smiding <henrik.smiding@stericsson.com>
Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com>
Add shader for Repeat_SI8_opaque_D32_filter_DX.

Adds a NEON optimized shader for SI8_opaque_D32_filter_DX when
running with repeat tile mode.
Improves performance of browser.

Change-Id: Ic5cc63b3df86eb7e8ea0bbb3b7bddfc73db20025
Signed-off-by: Henrik Smiding <henrik.smiding@stericsson.com>
Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com>
Add shader for Clamp_S32_Opaque_D32_nofilter_DX.

Adds an optimized shader for S32_Opaque_D32_nofilter_DX when
running with clamped tile mode.
Improves performance of system and various applications.

Change-Id: I8dd7be24870315b2b8273bf72d9c22eb0aeb97fb
Signed-off-by: Henrik Smiding <henrik.smiding@stericsson.com>
Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com>
Revert "Neon optimized implementation of S16_opaque_D32_nofilter_DX"

This reverts commit a9a4c66d163e245628ddde71dca40e4c29a44f47.

Conflicts:
	src/opts/SkBitmapProcState_opts_arm.cpp

Change-Id: I3b4054aac74c34eba234f929b56794e54250116c
Add optimized S16_opaque_D32_nofilter_DX blitter.

Adds an NEON optimized version of Skia sample blitter
S16_opaque_D32_nofilter_DX when running unscaled.
Used when scrolling UI lists.

Change-Id: I7a212f2e50aba3244aab237937395af02abe81a9
Signed-off-by: Henrik Smiding <henrik.smiding@stericsson.com>
Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com>
Add optimization of Skia S32A_Opaque blitter

Adds optimization of Skia S32A_Opaque_BlitRow32 blitter using ARM NEON
instruction set. Special cases for when alpha is zero or opaque.
Improves performance platform wide.

Change-Id: I0ffeb23b128e61cfe581ad121f227631d2918686
Signed-off-by: Henrik Smiding <henrik.smiding@stericsson.com>
Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com>

Conflicts:
	Android.mk
Add optimization of Skia S32A_Blend blitter

Adds optimization of Skia S32A_Blend_BlitRow32 blitter using ARM NEON
instruction set. Special cases for when pixel alpha is zero.
Improves performance platform wide.

Change-Id: I6c8bf8a9525838682206ebd139855354d6b3a563
Signed-off-by: Henrik Smiding <henrik.smiding@stericsson.com>
Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com>

Conflicts:
	Android.mk
Add optimized S32A_D565_Opaque_Dither blitter.

Adds optimization of Skia S32A_D565_Opaque_Dither blitter using
ARM NEON instruction set.
Improves performance in browser.

Change-Id: Ie20fb3cf3ad9a60f01b79e3ed2ddba7651bcf013
Signed-off-by: Henrik Smiding <henrik.smiding@stericsson.com>
Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com>
skia: Fix Codenomicon image open failure.

Add code to handle 'No image descriptor' case in a gif image format.
Remove goto call.

CRs-Fixed: 333162

(cherrypicked from commit I80d7df9d5f112b5fe32699ce6dd2df0f48323bb1)

Change-Id: I96bdc71ea6269adfd030d13eba4326a7a14c3690
skia: Don't use -D_FORTIFY_SOURCE=2

SkString uses a dynamic growing mechanism for storing strings.
This dynamic mechanism confuses GCC, which thinks it's operating
with a single character. This causes crashes when we use
Android's -D_FORTIFY_SOURCE=2 extensions.

Consider the following code:

  SkLanguage SkLanguage::getParent() const {
      SkASSERT(fInfo != NULL);
      const char* tag = fInfo->fTag.c_str();
      SkASSERT(tag != NULL);

      // strip off the rightmost "-.*"
      char* parentTagEnd = strrchr(tag, '-');
  [DELETED]
  }

fInfo->fTag is a SkString, which is declared as:

  class SkString {
  public:
  [DELETED]
      size_t      size() const { return (size_t) fRec->fLength; }
      const char* c_str() const { return fRec->data(); }
      char operator[](size_t n) const { return this->c_str()[n]; }
  [DELETED]
  private:
      struct Rec {
      public:
          size_t      fLength;
          int32_t     fRefCnt;
          char        fBeginningOfData;

          char* data() { return &fBeginningOfData; }
          const char* data() const { return &fBeginningOfData; }
      };
      Rec* fRec;
  [DELETED]
  };

When "fInfo->fTag.c_str();" is executed in "SkLanguage::getParent()", it
returns a pointer to fBeginningOfData, which is a single char. The compiler
believes that "tag" always points to an element of size 1. When Android's
strrchr() fortify extensions are called, we trigger an abort, because
strrchr() detects an attempt to read beyond the one character
fBeginningOfData.

Change-Id: Ibe957544b5114c14018630a8f42213bf3dd806e3