From patchwork Tue Mar 12 22:15:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47012 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:e85:b0:1a3:31a3:7958 with SMTP id ma5csp39321pzb; Tue, 12 Mar 2024 15:15:33 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVS0IrQamxhbd01UJEGIwd2SjjmndYVzAu+Yj9+sf9qBjBetiLZxRgvEL0d1yb+w2p30X9sZks/p/Q5DOS2DTWjbDwZe/6hqiAYrA== X-Google-Smtp-Source: AGHT+IHnmgkzH7KCpRzmfxEGoJEbRFSGinNkFaos8IugFQuMV57qiKHxQymOFtIIK2Cj/376Gf50 X-Received: by 2002:a17:906:6d4a:b0:a46:38aa:a649 with SMTP id a10-20020a1709066d4a00b00a4638aaa649mr722311ejt.34.1710281733565; Tue, 12 Mar 2024 15:15:33 -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 qf33-20020a1709077f2100b00a4532d33290si3902570ejc.381.2024.03.12.15.15.21; Tue, 12 Mar 2024 15:15:33 -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=ocLaCYJf; 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 40FF468CF10; Wed, 13 Mar 2024 00:15:19 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2022.outbound.protection.outlook.com [40.92.89.22]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0C96568CC60 for ; Wed, 13 Mar 2024 00:15:13 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hKDLO8T+CoiwPzeOHJgFSTkFmdu6TH115uGEB9xY0+k/RR9MQ+cMQq53gs5fkhOk80DavR/X2KieuHTohZhG0U+uUnj1AZz7pa7KkHXyaKuhOnt1mFuSQ9JYyEeiPIwdmwtuwTziSdHpJ8YmRALT/TI80Pazj5zUGwVMH8nTqXnsMXpPAU28hWhrC+9Ua6CMQksnpmGbtmjIGWRtJk3vvMKhx81G7DbDqLj99LvLwn7nTGHBMKy1M08SgNluDawutbmfSMsLZkMVRJZUUOUNBFbxlWx0Q17yLCPsTOQEPJqRlpp+/s0c+5vc8EiVjQfJODEs9t4vWaUo0r7gPWLZew== 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=6eUJt3uATB6FxyIaNIcgcN590+dHzZl8LyqnJDyA5iA=; b=DK/bgtcbirnE8uBCO2SiZda2W4NFpI5MsAWCpXR629w/Y4CGIKZgW87lTksxMpPeCsOLvQcvmkDSBSgyuiI4z81a7+Km/h7vEhf1C1sslQkgRs/FvhBEoSf40u8aWYZMab5niEdzdAiGqneZCgnYahG6djXvUslkpHOwFUczvJvfdREAGAXEsc+1ycMCHIIMWs65Nu3Pam0NKFsRvKt8DwtYwLKmAPgRR3OlxKfDB6S7oSs2tPdNYg/OtqMbWaTQqxZ8iOc8UQ43hvIBCpptgffBoDT33IQ7yUEpBADbD3nEd/7Ax6d48F634X7mjC67gnuLzPr4PMP/5YxL4VgrZw== 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=6eUJt3uATB6FxyIaNIcgcN590+dHzZl8LyqnJDyA5iA=; b=ocLaCYJficfCTFmI/yKsnwORWUXeB1TcxM2779iprCuff0nKYkd2nrFoMnhyQl66pRw6lpsVdl6rWg7Ziq/WEKq+D6x9GTHyog+mSqcr/Yu/WNh6d5oc+g8FB6OicdYF4Z3p+wMSMcfBjUDb7ZvBBGgPvdMSVl4XgLZHLsm5y6YmeDSvCD5NKn0iZEnxcjL585oTOZCGcr5ZiXDNKPiRRs0BXxeK62wnTciw3UTQdpK6gS63DjjFsS1Q9VpgKwh7XOV+/GQdxdnYxgEs1gfN1w70kvwymckhLUqb4PZ9KB5Cl2JSu711vy+qHRMx70Ls0H12Ie+GSqmZr7j1PiblxQ== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0140.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:323::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.36; Tue, 12 Mar 2024 22:15:11 +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; Tue, 12 Mar 2024 22:15:11 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 12 Mar 2024 23:15:04 +0100 Message-ID: X-Mailer: git-send-email 2.40.1 X-TMN: [14H5XoidPIo46bS/tRuLcvr63T0iAklKRI/fR/PSU8E=] X-ClientProxiedBy: FR0P281CA0065.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:49::18) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240312221504.1471508-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0140:EE_ X-MS-Office365-Filtering-Correlation-Id: 88448cde-841b-4bd7-1f89-08dc42e1e243 X-MS-Exchange-SLBlob-MailProps: obhAqMD0nT+NcFk63dsqyFqBdZFxgNNalFNEYY8Uu/Cw263OWwZ6gXdDBE0wMUzwLs8X3zclwNBZky9JyELoCKGgzeu5FYNy0EgVOeVanBmpgVeRGsSaKRbxFjUa6kMH96l1LpTSoPYDbnGkFn0e3D3uQczyJQxXx2VC7QBpmNlG/FnWnTN/UTOfnHFV24L5mcmChOFp4yJg6kxf5H1IHXIiWKsRjfIjBTjeiYutAWWoq2VjD1vUPJW6HiZuZvLKAyLsjE/See3ePNmgAUIkpFfvhGdOqKRJZI+lcrP2PnqZghebNrlBeGIoe4zl1ZAtlX5MNZ/SW3rLfls7blMZ86mNPO6Ge9VZon+RA+1oxSF0xwkQabWk25muV6yGHobKP68wkw0+mWGgOceUncMaEjcsM9crVAGHHDizDEWDlaSH3ff/s6O7WUou8KugU+0UhpddJfUoMmEewmcastAIPJYesh+FwSFO6DyK3mlsRNJUzw+Iynv98sYPawX0UDyRFrJKyGeKvK6TbWRzzN+vUprryo6GYtdoNdMPTFGVrD6xwpEleAMuMZ/IFKX4HOIy8QGJpLO/NbomYDPfM+zVvsCHWnxbVnViXqU/5JcKVT93ZyJWTNAwaN3InhuCdzfnUTc60Whf27TVZ9t+bLjquajq/QVUSfvGGu8CXNFyZNQtNgdDqt0V46DpTRR3QcGKCc8qpcprHvR8GU8vDCMEln83TypI7NLNZZsVJ8tXgP+1TRXkL2AcHQu/uSd/Vz4fVPC8ojZ6XQX+PyUUrcX42fu31+Tj3tWneBxnKC3NGOOI4W8l/1otHMgYARZFuI3M X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CYC2fNWZ+hhQ6x08B/rCCtCrFKJJcnP74+V80QB/hPGUIUza5JlJUJ4JRFD4sVz64Rgzj/6cbnee2eZSdRMVBzRg8BCteTuu74SNs2I0Al4oeeL+ovnPIMsmoup53lzVdVo7pEKhJ8/8/E2fDtjEQDSKYH1jhUO8B0c0QRFNNgcK2ARXRtKYAt1K1PAlvVYkgPpBJrH/i+TVCS/wcomR8UZrdL+07xW12nfYTREAqd1mlagBW+peZyO346Y04vJhe63iFpjRBxnHV013gxt/eKjEO//TJWRWqXlDapIAfuGbWyExMV6lfH+Vkwm/LH9celVPfcZP8Z63vkh7BZwvzTF6lP02taHkHXaqofPHcJTvF7WG0mdVprn9VyVO+vSkHBsgP5XS4lv3In9DnnZFQM9qfdls6WN9ZsFTaw2snCz34XupQgJFLMk8GZChBTg0iYhVgmSwd73suhui36NGoaK/9bhY6BKA5+W6QOV0D80D0+mxLImQfPLPALBrYG52GdGqRdY5zAxWlHICzKdVMvdH68nY0Vms+rsnE/p8PGzPtS1d0WMg1YRtqMtQi2wm+SbckgwcBTxUCdMS/64v7+NulICW3Kagb2qJgsBDhj5gdIKugeccCcDSsTx5w+GcZFvz9t+4/+qB793NZbIKquHoaXFce224WygqluZbhaWuRT7ROTJh+yth+/LGJRci X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 3CXUo+Cjgv0amh24LTM80uJuhis1Whmn8Ze4A3IS63J+1z3WrFd1gKR3m1XZFWqyl8anBCU4f+/fnNH7Gx2Yhnkg1kz7gSE0wuDk/7IMHfD1jeQgO2uyxT0QVG4GU8ds8SUNgi1lnuDXJeQcGNezczsQA5Yt9/hjZRw+8r77f3PyWI52ODHwHsA1KmP4l99K0Mdz6PwitWxO6PlpqTVK2iKYQjUest1dI6seoKUi2ldrt0fcPc4FwhQ/G2ENHah71cmFkQ4f4sF18ZqJxH10BG/de5ygkhmY4kyA1WcJ9DxQ4Ctg7dENR+ze3dTtLpLdJQ4tvZcX8g3/y/kE86GoaYxM6YP8ZCjZxWaGFfQKpyuT97oLjqOswGKEQGeJw4YbM2KrOVJGhCdQkDam9NOt+FfNkfzbIHuffo+sZx4Vnq7zzPO76TSAghHC2pgJJV+D1/MSMc9EqRFF9ebaJ3E3RmV6FaWDvKLiLSIs0b72o+D087vZy4mfsFMJZ8NN3lwxaa3Jvi2E6X0q2jMCA/xXYnIDWILFdw8ukXHlKW+pQMOGYerKSExsaH5xVctliD4NqkCiAHq8N0gkTymtOEnDJERV+x7xW+T3FfxkNzajL31vqc3si0QVeRvm1nNHznZuggAb7qE4rwdOaHvWB/SPiWVwq+RtXJHpDP6mOjcdEvNYXEgnPI6dP/bmh8/T6+ZvGroCNetoHBPPXfgebpJl+EjPMuI5+6LGNIbUAuI4lmv7w+xQBEFlBdm6cMNpmlicuQJbDg2b972i6jNCdRhnnMrsHgHnLzOMCB90j/28RiAdCE4IoBs0sDqMaEtvXgIZFn52Y6aAg4NhRSJ+PqhqxQgh0RBgYbZ/XZXeNWZpybLgID6Y0/FSVib+S/YWW0plVsvOI4ju5ThflcFgqpe9LSF65w118lkSxG1gpzOZ5n8TEgcGtAgmB3/ZEios1r5eV/sv+4AV/sKc3d8kY1HHR7zWeBEAijeG19FAL/wbHyaXBke6Ro0pMjC6bVrSvsBZd0rOQBsriQ13SQU6oAj5ePeTAE2EK+jHAIRUGwpNFCY+Btu84aYVslKF080R47A2sdxbmWnYTMiW/Gd0qvBOq6WaRHcxbxP84mpBOpmBxTI3RgbgthF83+xmNLmJo23BlBJpQ3tprYaHJkKKyJy+p2cH7rIUN97+r4niT3kV8W5tzongqibEIzmSVVP91qQWjEz3g9X23cQwFqoi5zzIRkHWX6OAh6FQMzjv/fqc4d+OPr1QCnolxUOm/Sb78eXq+IrvUiOsVbik8a31VoeFhA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 88448cde-841b-4bd7-1f89-08dc42e1e243 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2024 22:15:11.2501 (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: AM8P250MB0140 Subject: [FFmpeg-devel] [PATCH] 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: vSWIW5N9BiZu Exposed by http://fate.ffmpeg.org/report.cgi?time=20240312011016&slot=ppc-linux-gcc-13.2-ubsan-altivec-qemu Signed-off-by: Andreas Rheinhardt --- I only tested that it compiles (and the size of .text even goes down a bit, presumably because of the elimination of int_dst_stride (which basically means that the lowest two bits of dst_stride had to be zeroed (because the compiler didn't know that they already are zero)). 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..21f8c13ca9 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, src_int[0]); + AV_WN32(dst + dst_stride, src_int[1]); + AV_WN32(dst + 2 * dst_stride, src_int[2]); + AV_WN32(dst + 3 * dst_stride, src_int[3]); + AV_WN32(dst + 4 * dst_stride, src_int[4]); + AV_WN32(dst + 5 * dst_stride, src_int[5]); + AV_WN32(dst + 6 * dst_stride, src_int[6]); + AV_WN32(dst + 7 * dst_stride, src_int[7]); + AV_WN32(dst + 8 * dst_stride, src_int[8]); + AV_WN32(dst + 9 * dst_stride, src_int[9]); + AV_WN32(dst + 10 * dst_stride, src_int[10]); + AV_WN32(dst + 11 * dst_stride, src_int[11]); + AV_WN32(dst + 12 * dst_stride, src_int[12]); + AV_WN32(dst + 13 * dst_stride, src_int[13]); + AV_WN32(dst + 14 * dst_stride, src_int[14]); + AV_WN32(dst + 15 * dst_stride, src_int[15]); } /** @brief performs a 6x16 transpose of data in src, and stores it to dst