From patchwork Wed Mar 13 11:30:40 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47022 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:e85:b0:1a3:31a3:7958 with SMTP id ma5csp319477pzb; Wed, 13 Mar 2024 04:31:01 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVZ+8NM9ukbo5cqnKtjN/m//hip69fDB6CBsFI8wyCHyl5PE1KuvQKB3RSwPx2VVTDi0Dl7OJmllRgZjm59bR9S4yL6D/hbPvnzoQ== X-Google-Smtp-Source: AGHT+IESi6eXi8B5lNlFZ9rANTykTm4r31pduuHC+kvIPmCFRY1dBGwbrDl1+7HCFdUUVP83CzQ8 X-Received: by 2002:a17:906:e8a:b0:a43:e550:4067 with SMTP id p10-20020a1709060e8a00b00a43e5504067mr7769286ejf.12.1710329461609; Wed, 13 Mar 2024 04:31:01 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l24-20020a17090612d800b00a46002e160bsi4039520ejb.1049.2024.03.13.04.31.00; Wed, 13 Mar 2024 04:31:01 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=mEd2bEgn; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 78BBE68D083; Wed, 13 Mar 2024 13:30:56 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03olkn2046.outbound.protection.outlook.com [40.92.59.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0C62D68CEEB for ; Wed, 13 Mar 2024 13:30:49 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XVB12E3n3MB7pb3JUST7p4eIR/t3GUVp74Bk+JkTtxgkm1swJPjgZQG4/AUPYOwjVZ2/kjD8UzmGdDkcHP6I8OIn2n8brC0AZzi87J0KH/LurCatqmQ9mJ/dU/jYhya5MMeiwVa+aPR7iMbezlfI+uwE/op9MbUBlQNIgsCvA6pmfHhxD3ZE2PFBYuBOCKkx8DMKdEwY7c/THf8qdd3TrOmzDnLujLlCXUnlhIr6bQi9PGab1ontOVA8otdi4RhIfn0riClZuhH6i481XgwjUDi6XvnemyER1xZBzUAX3B6iO463NKOuiW7cpABKocrSRjrgiqgW4YTmL+4pdC0uBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=FK5Wzhh88TC/kxNLvfTxAl3DcSnRjqnJnRlckxgqXdo=; b=KogdWHs14JctoyuXmxo+OLSE35201uisEwohDrXsqSvvYskKNWSKAJGxoyQdiHUwNi8a+/11QMJCE1NVIF4jK5clGld5vI8AT4QNIAedZRFsA2yjFuw/IMIh4pvx5aaNEn3qQKjR5DHbiNJXIxYimGHgr7DJa3fmgh+/q6YwOJt/qIQeonGu4WzFX5pjL11YbyrXoj9gI8t2x3iN/xuv4bXxpzdvg/Y4jBzy4471IYISgk0duAF5AOJAzU/TVRYGtsyZVlZqBeQfv+NGyLGFFyMaQNdvk8KQLFoN2VtSWJLjNc61XTu9my31aN82XDUYzi2nNE3TilSAYnsvDtgwiQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FK5Wzhh88TC/kxNLvfTxAl3DcSnRjqnJnRlckxgqXdo=; b=mEd2bEgnIlv9nagGl02SeDZ20OePIyET+myVELlWDiVBweNqi8bEjsaxV3WZ6G8VqDcwEdD40Uh7Nm+Um5hXcTKPwloLObzjkwNhaiJZFQOlX8UkfToaPND9QOkyosxXWROHD3xvPCDsXlBJsF7UBheQSC2C0zaYw+ABSxAHlG3FHnTjoRe8NgGpay+NRPzwBsc18a36wOmoQnDOX6ZlZ/NaLgr0YYIqm7vbDv6OdYQIqmwjLdPpa3/BFwZntBfPDp/0g+skef002HJz9OjR14mP3nbhMjernW8Sq2lxJ/YnUikcV1pRacXz+KwBev80Ys06P6TQUrvkigI8FdNmxw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by GV1P250MB1062.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:17d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.35; Wed, 13 Mar 2024 11:30:47 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::228d:8c6f:ed10:82eb]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::228d:8c6f:ed10:82eb%7]) with mapi id 15.20.7362.035; Wed, 13 Mar 2024 11:30:47 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 13 Mar 2024 12:30:40 +0100 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [zz6gADAISYkTplH1+Fy0m4L69nKyCCTmwhp6j/O4Szk=] X-ClientProxiedBy: ZR2P278CA0006.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:50::12) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240313113040.2570524-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|GV1P250MB1062:EE_ X-MS-Office365-Filtering-Correlation-Id: 30b38a58-9caf-4c0a-16c9-08dc43510724 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Gl91w1c/dlZqnbiRdYG7p+NujqOQYpnbN/1J0eXutab2s586MFFawvbtD/Y+jspR4slgN6jPQS8ffS2iIl+YpR6YeSAqlDCq81Qip7ZvqsPNCUOFe/Z8CZamyigSFvn8sQCUZOCMCZc5dFsfChWs5RNrI7ZQk4ymPk6Fb21FGzQA9T50PYhNbrMlWf8CQk7FIuCYnax9tkIWVSR92KSsvniew82A3MJsC1LwLXx5vjha4y0B5GD3jdrY7UY1dpsyK0WlCSWHHY1dnowvWwKvBOEGIBBmctS6ATyaiTDUpam2dj6SgSg6RBvlsPtRdira1C8sXQloKSkkJ5ZbmxBlH1rkL8naJ01+EdFXEwIzID02RCA2eSrNXy29tK6d5fRbZGi0RtKD1+Z6ibxHNoqVp4AdPSTPrLglXEL3Yv5t6utFlSriLc/fWLWS+IoDzi098hByKw05bMcessGNd7Oq7NCR4qzgJun8ofqcsCcVHsE0s2o0eOmXPoIUGqGS8ImuhxX2LeiUc4ZIxVPaA5GwhTv1RVkOTZGX+VZA5xVFV2ruV8ytg6Izyjd5rysz8ksdCPREni8KulAF6bdzBDxF/Guj/6mn4ZW+Rd2DMBVNwxuuLVXZCbohVw9a4twt9ngbkbqYsKQbTs7lhbgMbrsDcVsEv7cd/RhVc7G8Kb6sgQrPCuJu7v7Ek1FwlhL+vOJI X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: VjQZJZsVWpldHyP+vHbXGq9GOag0DijKPs7C0yXkYtXAWqxNuX2J0pxJJjvpiQ+ttylCC+2obCGtwMwnlsb8v9kAaRU3pgufp4QlcQbbinRq7pcoCl+l87AzB23kRK8fW7xfJpS9Vf2iCNoBmObeKFOTeUbADV/XGmoZ0MyZxYCWl5od47rPEozu9mSsvm0Zv3W/YcaQmKKkDsJeB0veju4sBUfTVMp8DSuiNoVKb/oQuYhalz0b4Wh7Bb+GTf6z5celJohHqtxi9KuiUuIZwKmRg2783zPpaZdTLaeRQwdz8E00n9AlytAjSEI4FKGtOgltMBzyoIndOEjL11o4VsJDmZdrXBZNF6cGMsYIshoMmf0C7Cij/RgNEutiNh0P9JC6mVkK/3Z4vkoRoF1Ttva/Yt5o+ZXhBLjrGFSYb0O9Mj2r0RJpddvqe2XtT8Y7z7jLiqTgYx0qaQAzZB1u5sS4iF+Hv26Exq03HMaLKM2H/Aos93P8y+de5vrI3HlS5MxYeehTPsiRmhzUYjtWNrT6sUqj3q2LSmWhXKUDwzBIcgrvrCyLAS81Dpl1cqu31kVhgtrmY7SIwb0zfr/aLOC/qtnEouqvV+IUWjfe9iCDZZnzDTreL9QllQ5QI7HwY13EaYlJlvIEHn/4uUh5Ak2Z98H/46Iz01kMAowEl/ceJ3XzdmeMVRkoEMBokG1BTmUgc0JxnCXsop7G6bbdVVDmv8cRp1Mo4psyX+f/noxHKpLInplQAbZjJ785Vte6F3wH4yrq/fNNCCDejQdF/JNvaYb5KsSiGHUvYzdltk7uirEjqTvhl4ImD7DRcdvUXSlxJuE1qun604ijDby/70MCXFL6Uaqa71uJV7yFUrHU17MfJA1Ogovyg8qPRMNvPAsY1Kd0iyPXAo8mbMw9Z26KzMgGeRyAszY/5fN3Fh+xiiiAllENaB2tfQHGhw6Hz/3R4GAPGIC+dIHA6vBwpxEaw4rEMBbcfebZ/yVFHVEBGjo4O8ShS35XPZzgU62q2r6+i6Bh0FxYWq+MgszGksepNDz1by/GDf92U0ufWDifhAbBlyB71+ChvUujwT/YyRjDuCST5odOpPb1y7lklctM7GKi7TJ0bX6Ot32vLJJGxdDPQE4sb4EflFmrecvS3op4hO00xYI19nsviJRcgWS1JaaW/UGLBMLLTmQuL00ZZQeyFQprrQRq8qcUjbqH6RFSNz3yWcpeMxGxno7u9jiSI4LnbDTnrV8MzZ25P3mAszIUQ5XwJTCwN40Ana2g8kDVGRPfSDNErjM43D3bMw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 30b38a58-9caf-4c0a-16c9-08dc43510724 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2024 11:30:47.3342 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1P250MB1062 Subject: [FFmpeg-devel] [PATCH v2] avcodec/ppc/h264dsp: Fix unaligned stores X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: RSW4WoCo1dgT Also fix an effective-type violation. Exposed by https://fate.ffmpeg.org/report.cgi?time=20240312011016&slot=ppc-linux-gcc-13.2-ubsan-altivec-qemu Signed-off-by: Andreas Rheinhardt --- libavcodec/ppc/h264dsp.c | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/libavcodec/ppc/h264dsp.c b/libavcodec/ppc/h264dsp.c index c02733dda2..f50f2553a2 100644 --- a/libavcodec/ppc/h264dsp.c +++ b/libavcodec/ppc/h264dsp.c @@ -401,30 +401,29 @@ static inline void write16x4(uint8_t *dst, int dst_stride, register vec_u8 r0, register vec_u8 r1, register vec_u8 r2, register vec_u8 r3) { DECLARE_ALIGNED(16, unsigned char, result)[64]; - uint32_t *src_int = (uint32_t *)result, *dst_int = (uint32_t *)dst; - int int_dst_stride = dst_stride/4; + uint32_t *src_int = (uint32_t *)result; vec_st(r0, 0, result); vec_st(r1, 16, result); vec_st(r2, 32, result); vec_st(r3, 48, result); /* FIXME: there has to be a better way!!!! */ - *dst_int = *src_int; - *(dst_int+ int_dst_stride) = *(src_int + 1); - *(dst_int+ 2*int_dst_stride) = *(src_int + 2); - *(dst_int+ 3*int_dst_stride) = *(src_int + 3); - *(dst_int+ 4*int_dst_stride) = *(src_int + 4); - *(dst_int+ 5*int_dst_stride) = *(src_int + 5); - *(dst_int+ 6*int_dst_stride) = *(src_int + 6); - *(dst_int+ 7*int_dst_stride) = *(src_int + 7); - *(dst_int+ 8*int_dst_stride) = *(src_int + 8); - *(dst_int+ 9*int_dst_stride) = *(src_int + 9); - *(dst_int+10*int_dst_stride) = *(src_int + 10); - *(dst_int+11*int_dst_stride) = *(src_int + 11); - *(dst_int+12*int_dst_stride) = *(src_int + 12); - *(dst_int+13*int_dst_stride) = *(src_int + 13); - *(dst_int+14*int_dst_stride) = *(src_int + 14); - *(dst_int+15*int_dst_stride) = *(src_int + 15); + AV_WN32(dst, AV_RN32A(src_int + 0)); + AV_WN32(dst + dst_stride, AV_RN32A(src_int + 1)); + AV_WN32(dst + 2 * dst_stride, AV_RN32A(src_int + 2)); + AV_WN32(dst + 3 * dst_stride, AV_RN32A(src_int + 3)); + AV_WN32(dst + 4 * dst_stride, AV_RN32A(src_int + 4)); + AV_WN32(dst + 5 * dst_stride, AV_RN32A(src_int + 5)); + AV_WN32(dst + 6 * dst_stride, AV_RN32A(src_int + 6)); + AV_WN32(dst + 7 * dst_stride, AV_RN32A(src_int + 7)); + AV_WN32(dst + 8 * dst_stride, AV_RN32A(src_int + 8)); + AV_WN32(dst + 9 * dst_stride, AV_RN32A(src_int + 9)); + AV_WN32(dst + 10 * dst_stride, AV_RN32A(src_int + 10)); + AV_WN32(dst + 11 * dst_stride, AV_RN32A(src_int + 11)); + AV_WN32(dst + 12 * dst_stride, AV_RN32A(src_int + 12)); + AV_WN32(dst + 13 * dst_stride, AV_RN32A(src_int + 13)); + AV_WN32(dst + 14 * dst_stride, AV_RN32A(src_int + 14)); + AV_WN32(dst + 15 * dst_stride, AV_RN32A(src_int + 15)); } /** @brief performs a 6x16 transpose of data in src, and stores it to dst