From patchwork Mon Jul 13 00:33:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 20985 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 7C6D44497DA for ; Mon, 13 Jul 2020 03:40:39 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5205D688392; Mon, 13 Jul 2020 03:40:39 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f196.google.com (mail-qk1-f196.google.com [209.85.222.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8FCA368813F for ; Mon, 13 Jul 2020 03:40:32 +0300 (EEST) Received: by mail-qk1-f196.google.com with SMTP id e13so10745757qkg.5 for ; Sun, 12 Jul 2020 17:40:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=cnUz3xkKMxhPnh1drBLUR2ScmHBUdQKgT/cu11EYM+k=; b=OLvyR6CvTE1hdHFAJbbmr7XxR1jsAq69wVm2aN6HPD4vFPmACNZHiN0HMOAB3UvoHP 9Xd3f40x13rdJzJIj/46+fZk3+uCiHaL3q+ClvkwI95l69btPJL7Ejlj1+tx/Q1noCkU N7e5Tt8OrBhuAiGXP5+vTPZ2eINHgtujx0Vp7s6Hd8xsylutkx5g0IgbXaYQ/tf8Q/Ko hkVML72ILuQ8HZnK5aCXJ9Q6KcTxGRfSBlaAgmWEQSmpKB4uY/ImPnGL0JgQ++GN4ZEN Yx2OMFULCSXn/oh8Z8CayQbtaZZPv2Bu3zlBPtR/e9Ca0PCzChpVNCZjPPjM49uHQKZg sECQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=cnUz3xkKMxhPnh1drBLUR2ScmHBUdQKgT/cu11EYM+k=; b=KNpnkvTPmTrrWM1l4jf+2Zpy9zZAyYRrYlpvYnlQQnnkMcN+RAXo/D/rIAPwoq2b3f 3FogGHX3/i96x8iOltJyVRVihd6pUpSI7/54eGJDmWzpX3CeCPAUIKCBGV4KIqTfcqci 2eilB/5zhLmJqGzgYez5SvpKD5H3O6/7r34R3/H3OnxM2BFu5TGmNbhxWjCBrdWA8Vxc USwyp2C72KPaF2c8dcbspGp8Xt1WfPcLdGImnGfaICDv3bKITYdCbLzxe+2PRPQipodC Pv3wET40NeBGMJQl6x9dSZ6625FXQw/ojkLJ8LbLq03QyWd1zF4GOrW8bIbpD83b5wCn DfBg== X-Gm-Message-State: AOAM531ne8pFe6xFBFu5+RlhBcLWKdYWDK/2aVdnDVqg+gpYZjOsjpl6 AnhOcYTukn1KRs/EnQlagnGzGAeq X-Google-Smtp-Source: ABdhPJyt75mB9ECzFTmhHg6g47WrtDK4Bou+877Ybs/I3wLw0YdlXPU0oH6TQKntlscA7p/qy3Qc7A== X-Received: by 2002:aed:2252:: with SMTP id o18mr84040968qtc.258.1594600414251; Sun, 12 Jul 2020 17:33:34 -0700 (PDT) Received: from localhost.localdomain ([191.84.255.58]) by smtp.gmail.com with ESMTPSA id q47sm18454674qta.16.2020.07.12.17.33.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jul 2020 17:33:33 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 12 Jul 2020 21:33:14 -0300 Message-Id: <20200713003314.2279-1-jamrial@gmail.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] x86/yuv2rgb: fix crashes when storing data on unaligned buffers X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Regression since fc6a5883d6af8cae0e96af84dda0ad74b360a084 on SSSE3 enabled CPUs. Fixes ticket #8747 Signed-off-by: James Almer --- libswscale/x86/yuv_2_rgb.asm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/libswscale/x86/yuv_2_rgb.asm b/libswscale/x86/yuv_2_rgb.asm index 575a84d921..003dff1f25 100644 --- a/libswscale/x86/yuv_2_rgb.asm +++ b/libswscale/x86/yuv_2_rgb.asm @@ -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