]> git.sesse.net Git - ffmpeg/commitdiff
x86/yuv2rgb: fix crashes when storing data on unaligned buffers
authorJames Almer <jamrial@gmail.com>
Mon, 13 Jul 2020 00:32:01 +0000 (21:32 -0300)
committerJames Almer <jamrial@gmail.com>
Tue, 14 Jul 2020 17:06:04 +0000 (14:06 -0300)
Regression since fc6a5883d6af8cae0e96af84dda0ad74b360a084 on SSSE3 enabled
CPUs.

Fixes ticket #8747

Signed-off-by: James Almer <jamrial@gmail.com>
libswscale/x86/yuv_2_rgb.asm

index 575a84d921e9a265c12b77da17298ec0e190dac0..003dff1f259c2b50e2ddd86f1d7f710fbcdef1f6 100644 (file)
@@ -268,9 +268,9 @@ cglobal %1_420_%2%3, GPR_num, GPR_num, reg_num, parameters
     por    m2, m7
     por    m1, m6          ; g5  b5  r6  g6  b6  r7  g7  b7  r8  g8  b8  r9  g9  b9  r10 g10
     por    m2, m3          ; b10 r11 g11 b11 r12 g12 b12 r13 g13 b13 r14 g14 b14 r15 g15 b15
-    mova [imageq], m0
-    mova [imageq + 16], m1
-    mova [imageq + 32], m2
+    movu [imageq], m0
+    movu [imageq + 16], m1
+    movu [imageq + 32], m2
 %endif ; mmsize = 16
 %else ; PACK RGB15/16/32
     packuswb m0, m1
@@ -300,10 +300,10 @@ cglobal %1_420_%2%3, GPR_num, GPR_num, reg_num, parameters
     punpckhwd m_green, m_red
     punpcklwd m5, m6
     punpckhwd m_alpha, m6
-    mova [imageq + 0], m_blue
-    mova [imageq + 8  * time_num], m_green
-    mova [imageq + 16 * time_num], m5
-    mova [imageq + 24 * time_num], m_alpha
+    movu [imageq + 0], m_blue
+    movu [imageq + 8  * time_num], m_green
+    movu [imageq + 16 * time_num], m5
+    movu [imageq + 24 * time_num], m_alpha
 %else ; PACK RGB15/16
 %define depth 2
 %if cpuflag(ssse3)
@@ -342,8 +342,8 @@ cglobal %1_420_%2%3, GPR_num, GPR_num, reg_num, parameters
     mova m2, m0
     punpcklbw m0, m1
     punpckhbw m2, m1
-    mova [imageq], m0
-    mova [imageq + 8 * time_num], m2
+    movu [imageq], m0
+    movu [imageq + 8 * time_num], m2
 %endif ; PACK RGB15/16
 %endif ; PACK RGB15/16/32