avcodec/svq1enc: align buffer used by simd functions
authorJames Almer <jamrial@gmail.com>
Thu, 25 Sep 2014 18:17:13 +0000 (15:17 -0300)
committerJames Almer <jamrial@gmail.com>
Thu, 25 Sep 2014 19:00:20 +0000 (16:00 -0300)
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
libavcodec/svq1enc.c
libavcodec/x86/svq1enc.asm

index 850630f2887a28397bafbdc9ebdec115a3a27528..288da1ff78f7c12b82186596028fec388351be12 100644 (file)
@@ -96,7 +96,7 @@ static int encode_block(SVQ1EncContext *s, uint8_t *src, uint8_t *ref,
     int w            = 2 << (level + 2 >> 1);
     int h            = 2 << (level + 1 >> 1);
     int size         = w * h;
     int w            = 2 << (level + 2 >> 1);
     int h            = 2 << (level + 1 >> 1);
     int size         = w * h;
-    int16_t block[7][256];
+    DECLARE_ALIGNED(16, int16_t, block)[7][256];
     const int8_t *codebook_sum, *codebook;
     const uint16_t(*mean_vlc)[2];
     const uint8_t(*multistage_vlc)[2];
     const int8_t *codebook_sum, *codebook;
     const uint16_t(*mean_vlc)[2];
     const uint8_t(*multistage_vlc)[2];
index 5fb33614339607b41a064191b6f3c77c727e5a5c..24ee70f1082ff5c154fb801e372c29e42d87999c 100644 (file)
@@ -29,7 +29,7 @@ cglobal ssd_int8_vs_int16, 3, 3, 3, pix1, pix2, size
 .loop
     sub       sizeq, 8
     movq      m1, [pix1q + sizeq]
 .loop
     sub       sizeq, 8
     movq      m1, [pix1q + sizeq]
-    movu      m2, [pix2q + sizeq*2]
+    mova      m2, [pix2q + sizeq*2]
 %if mmsize == 8
     movq      m3, [pix2q + sizeq*2 + mmsize]
     punpckhbw m4, m1
 %if mmsize == 8
     movq      m3, [pix2q + sizeq*2 + mmsize]
     punpckhbw m4, m1