Bug 1423814 - av1: Fix simd alignment on 32-bit x86. r=kinetik

Thanks to David Major for crash analysis and finding the fix.

Backport of upstream commit 15269e6e9288a6ed655c2ee73be6fbb4e0ea3cf5
by Yaowu Xu <yaowu@google.com>  Mon Oct 16 10:48:55 2017 -0700

Align more restoration work buffers

Fixes crashes on x86-win32-vs14 build

Change-Id: I045dd0fe4e9af3bfb80223e291617b717cbcb231

MozReview-Commit-ID: 1p3tKFVnIfT

--HG--
extra : rebase_source : e0d20b3d8d36b9462b9de3fd800a7e07c11b1043
This commit is contained in:
Ralph Giles 2017-12-06 23:36:12 -08:00
parent 0a2d9d84db
commit 5f1f476f4c
2 changed files with 4 additions and 3 deletions

View File

@ -34,7 +34,8 @@ void aom_highbd_convolve8_add_src_hip_ssse3(
const uint16_t *const src = CONVERT_TO_SHORTPTR(src8);
uint16_t *const dst = CONVERT_TO_SHORTPTR(dst8);
uint16_t temp[(MAX_SB_SIZE + SUBPEL_TAPS - 1) * MAX_SB_SIZE];
DECLARE_ALIGNED(16, uint16_t,
temp[(MAX_SB_SIZE + SUBPEL_TAPS - 1) * MAX_SB_SIZE]);
int intermediate_height = h + SUBPEL_TAPS - 1;
int i, j;
const int center_tap = ((SUBPEL_TAPS - 1) / 2);

View File

@ -1375,10 +1375,10 @@ void av1_selfguided_restoration_highbd_sse4_1(uint16_t *dgd, int width,
int height, int dgd_stride,
int32_t *dst, int dst_stride,
int bit_depth, int r, int eps) {
DECLARE_ALIGNED(16, int32_t, A_[RESTORATION_PROC_UNIT_PELS]);
DECLARE_ALIGNED(16, int32_t, B_[RESTORATION_PROC_UNIT_PELS]);
const int width_ext = width + 2 * SGRPROJ_BORDER_HORZ;
const int height_ext = height + 2 * SGRPROJ_BORDER_VERT;
int32_t A_[RESTORATION_PROC_UNIT_PELS];
int32_t B_[RESTORATION_PROC_UNIT_PELS];
int32_t *A = A_;
int32_t *B = B_;
int i, j;