Earmark extra space for VSX.
authorHan Shen <shenhan@google.com>
Wed, 12 Jul 2017 19:56:19 +0000 (12:56 -0700)
committerHan Shen <shenhan@google.com>
Wed, 19 Jul 2017 20:59:32 +0000 (13:59 -0700)
commitb72d3e8a25720494cef1911f9b9dc3e2c9090323
tree6e9b516612349fe39180ce77961fd22ac332aefa
parent89a116f4cbcb2340ea51c7484a7503005823fed7
Earmark extra space for VSX.

Backend specific optimization for PPC VSX reads 16 bytes, whereas arm neon /
sse2 only reads <= 8 bytes. Although the extra bytes read are actually never
used, this is not a warrant for groping around.  Fixed by allocating more when
building for VSX. This is reported by asan.

Also note - PPC does have assembly that loads 64-bit content from memory - lxsdx
loads one 64-bit doubleword (whereas lxvd2x loads two 64-bit doubleword) from
memory. However, we only have "vec_vsx_ld" builtins that mapped to lxvd2x, no
builtins to lxsdx. The only way to access lxsdx is through inline assembly,
which does not fit well in the origin paradigm.

Refer:
  vsx:
    vpx_tm_predictor_4x4_vsx @ third_party/libvpx/git_root/vpx_dsp/ppc/intrapred_vsx.c
  neon:
    vpx_tm_predictor_4x4_neon @ third_party/libvpx/git_root/vpx_dsp/arm/intrapred_neon_asm.asm
  sse2:
    tm_predictor_4x4 @ third_party/libvpx/git_root/vpx_dsp/x86/intrapred_sse2.asm

BUG=b/63112600

Tested:
  asan tests passed.

Change-Id: I5f74b56e35c05b67851de8b5530aece213f2ce9d
vp8/common/reconintra.c
vp8/common/reconintra4x4.c