From patchwork Tue Feb 13 12:32:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 46236 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9002:b0:19e:cdac:8cce with SMTP id d2csp1260431pzc; Tue, 13 Feb 2024 04:30:26 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVxui/vZsYatRwhOWRLxi8xEeJlWvDjYqS62O017C29FkShf7z2CUglGRRC198KK5oOgcAm+sT5oZiYcgA7CaeFIgaAWFwU9nHMOA== X-Google-Smtp-Source: AGHT+IHZVRTRpEixPMB0cXzyuoQuqVGo1P099BGfHAQXOuKjK5WW29TD127A7opFLgsL4VZpJ2Zq X-Received: by 2002:a17:906:cb88:b0:a35:88ad:e607 with SMTP id mf8-20020a170906cb8800b00a3588ade607mr7742490ejb.31.1707827425847; Tue, 13 Feb 2024 04:30:25 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVFPf8OYjYb9kSgw8rwe0A9gAjrGlsWhpaY2yGXjHgj+v4LsOlOUieY+2fL298rc5RwaO4rxKfdO/7Ij9D/71WcVlSaqroq4yaHqoew9My1RaJf0iBiHDTEfQsLxT9EmuO2GRsta9OnC/F6TeYDyeI7PI4Xr0xq2+MR+Vb36qbdkT5qNwbgXW8bxbkp55mTwiHy7iMhNocxTLL7hOhw0P6s4Wsdo4f37qQwSjvbro1fKLtHmX2cbl7zREwF/7tN8QMaDwKpbHLkGw3rw6Oq7Xw0ScEg9aElfaRuSQTnkeEsVD3GrL2vMeXokbbrTcjDELZqixi2YiDsRQMSg2VMa+NDwIqNs5dEoAyzHMzqxaioSOtsPVcLO7/bauHImZ6JibUiFvLf6b2Jteb9tUFbnlIRRGaxgU0YD7WYbPlu8xU6HBT0d0Ylca7Qr73VwlyZRI3d85ozkxW8ZbuTnjQ8k/8T0szxeBmlaOlKSw6ZklVk+9SqZnmQ+/QMfg6zQuN3bw6bCwXc7URkIMg7l+OEIkBwchJbleR8tcpaWbJoBOy0jbo2xhnPzKwl1/ShQ2nbyApS5pqTz06tYjav79ELhxOyYVq/2GLjtwRMsz6V8WHS/NxVPFyk8on/wQVANdCpVOeZxe6mPpdGJ6zwh5e20igTV3KI+Fd+CsWfbScH3vqRG33QQk2MpALKaoDvkTjkuYG37dyr961csKOm+DfQnqtGhlaLaOKhFsgsJELS3aXVksnaXk9M3iARoU1f5/dn5Orf+QYgOB5OvJ7vysFhstUrsavaRodZNvJCI6d0j16OYG1KSF/lPHtlYawB96nt+teiX0/IFN6rrv+0Dqw6439brrKkUKDqNoWvNjSuDIW7y6CluLWEJN/iX8C2BCHvBr2g58QVpzFuvUUvS/txrQyL/UcgqmJfrIXJ4NKEtIvB5jmN+b8yYR+1lXDzVfYClAQ3HY iDqZwaxXCQnh3QjicOv4uts5mc+KA4ZL4MWy7MO/uEiMP5GQkMc7vin++A9+/0jlfYtXj3lOmlx572lpwggbrsaW7Cjb7D8D2YTFnMWf+uqeDMf1bceoeWebpqYrPwKDwxf8EW3vP0Pe++6S6qzSoxLAC6fFPaEXzr1Kpx1pyKW/mcyB9X06Tilibt8HRgVKYSu+pbRILxwX7q+7xwn61pmqCRzJin3hazbVHB0qGuWhJJHO2HWh12YgjJEdgXc5XhmurlvxQ11Pv7jaetLohAq2iuUqCZ4rFOGZYJE568lZ1KYt50HJXj0NRxezMYnmp6Q4/gaqR4BDmPDcvjArA/CkGqKKSbL3+Su2FFiB7/5+mov17eBnKEtuPpbb64DpPDr6uyBhfMO+TCHO/PXCZnK1HBAy9SW796ZPnIEnnibYJantdQ/lO0xH06dubDQT2lYsq9Ym58VQNTyeXVM08nydh+tEnZ4hxWC8niUqLWyPXQCB0HEdqLfK8s5qHLsG6Gizp8BUzFP5RhI+vMwOLCbGsvddAF8fjHfrAMublyQuEorCWznAqA1xT01l4irIUH+h9eo0GcpF/asYOyCq/aZip+Jg9SkZazbxlv6T4zMAHKOlFLcDXeowZ20jVy Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id gw24-20020a170906f15800b00a38273c1419si1198686ejb.699.2024.02.13.04.30.25; Tue, 13 Feb 2024 04:30:25 -0800 (PST) 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=XmXZhoe8; 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 B2E5B68D084; Tue, 13 Feb 2024 14:30:22 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01olkn2057.outbound.protection.outlook.com [40.92.65.57]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E790B68C9F8 for ; Tue, 13 Feb 2024 14:30:15 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OpnoUdJx7YS5WSX4CifL1gWnLbXwXQZjQRL0d8I6mJPse/rCu5Q1W+dJ+s49SHCxCoFT+wsHpwV17wcpP4Dc75om7wFbnpYn7c256JiwHrHKQNFkPFCITe3J/9664vSEzNc5JYdmN+y3+TjTDqMlDa3QnqdKfVSlrJdPPLACu508AfeFbt1ngLutVzFFzzjVXIcM0ZL8nOAVqdlLbW5O0WAuR3IcK4M+2LN95UJlCULYAv3rDvMW/Ubyk27oOtrj+lRX1DrQq/XFdLz/6z1DECiXAD2d18id+aDkhsdpgCpgMk+/LdNrGAPAd5iklGu82c9/zDXJw3nmnuKkIwOc3w== 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=JIUO75BqTozj6iTISTOs5IdC7vf/b4c50UL4cIamDrc=; b=bHkQ9vJEY6AEz263ST/iIJNwrv2pDJAbu/vucueTtSVQNtTxTRH70zDt1moxXyyRzbn5EngRmpIyRpe9GRfjH6qz9oGde/Rp/Bvz0rhBRkThT9x76eNFbKjkWnbStRFitx9HDLzoHs8JseBE7Fax6JRMJRrDjKwi23Y8LvzPHEb8n1+CdUIqqs17f/9B54ImIlaJ2KxgWQ8wK3EO56Z5ffHNIpgQ50jjvq+zHmd2Qzjza5UjPsxMvlyiwMq9coTJbuARH4ico6QqAa/w/8nwEsjxXn3FrOaz+GRQgRlL2uc3KmD+ju1H6F7inqDGntycuuB3rGrynefwwM8OaQO15w== 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=JIUO75BqTozj6iTISTOs5IdC7vf/b4c50UL4cIamDrc=; b=XmXZhoe8GcRvTZRL7nGwbtWpMSacURMg2S2IRFaJ9Qj6o71MMV0imdDf9fURgaLK9e0WVdjpNZ+jXuW6eeupB0DMgrRe9vWmw5UakLvAGDK7qQN4nq5asZYl88LxRiQRJ5GGlDBTAfpHhqkAh0ccEX9ZvgtqydVE77xfjVa6yWFmcvf7u+Ydowp+qa7/6taNbWw7AkJJTd8Wk0D95kUkOVq4sZ+7TSXE8qoiQV7GNVW1JZTwKmaV3ttSQ4g9c5qjhkLk6MRtqTtS7T35mNAm6gtwuCTaCl3AjW966mzR9StfL/Uw58ANPD29N45klwgdH7epgIQ5WpK9V1eTIjtmtQ== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0094.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:239::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7270.39; Tue, 13 Feb 2024 12:30:13 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7270.036; Tue, 13 Feb 2024 12:30:13 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 13 Feb 2024 13:32:02 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [el32F2NBo6WpPbmzR9ZbdOH2P03cUPbBPvtxBRJQ3Bw=] X-ClientProxiedBy: FR5P281CA0042.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f3::15) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240213123202.311421-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0094:EE_ X-MS-Office365-Filtering-Correlation-Id: 46f96f1f-1e6c-439f-2dd9-08dc2c8f86f9 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ctKci8hCYz9YfLDJYWA+WahG1JINubZgtz0h8CfyLTn4SxdXOdpJy+xy2UWOKOv3uuzomMweqVIvrOW01dpDTRUTp+KAU7W814vch2rrLlWLrA7wxwMxlC0xUJnWsjRluT/IRRAC/9potDJa3SFDy3mbat9SiIs1bMqO/KZ9lMHmHymQfbkhEbUoTdf2LU9oik42S62BU/BhzniExgVckLQADIeIVrF0Tuuhv5mHiJSRr4BGe3rTWLqjGIMMH+r/+mhQwpuUb9oJrn6UIouopwH0MIcL2ccH0VK5v6tKAj7jp1VXuc+4VQjmxjzqfIxwVKCk+ox1GVP5SXm0+bBNE/G1Sp+1boVzCeUPSE7a0pfEtSbLMOp3ZYp4G/f6kyPbhSThgZ80tE6/FU5M9GXqKYwvk0IsEqBQxurXd9T8/v3xqGA92lXodIyXgdG9T7IanG9icasQIzEJ7cokQiJeLHppOtXxEWmQ/mEKj+/5ratR32P3UTwzt+9Dziufu+7LxZldJIBASe4q5+NsXu2bio33gw53dNPbADecpRPkbHOJsCSEmF/0v8k7rw9G4u2AmZ8IEf7PZnRUOUfot0pw1pKeQ4EMCn8YYG4UZbJ9Wi47xIHf5OPRCnXDJNo7WpWq X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: NrYXhcS7PMUh2NSiMT46yysAUpy3rLY/HuZoxQsMJHfhMC1kgEty4kkAknvRtmBIIO6HqGoBufsswOs5mr6nZS6UM8KG5KDIk5CUawTYc5I0zp3E2OE1ERKVvPtB2fDUXhcJPRWX3E4b4srvvi8E8TRhJf+LD2mJ2R7HgcIWp3s3YnVlS11JWxIixCiFkxZ4nOqsrxkQCjvTAgLBVnC88DxMM8saLTjs2/hSSXdbGoYUEOKaFCedT6gw+bMAJyS+XO56QgKPOUGNtAPNqbF/x9OI8dr3rC1gmz9JATFpVJQTrJNxwwUGgDGJz7mmoejprxOO91egEwciM1LBwFtl6mKbYJYLIxllVT5kdSvd/bJBj0BD4rZnAm82OAEJnF2jCSU65EoO6ovrL3hBZccYcbpx1ALvn1cQOJFgzoGIsiX1wYxtS9iuYyqwM9k/nUwAdhyoyjT8IZ+G0wPTAhtQVf3+MoD7kro0h4S30JyZJ0K3M17u7T5o0d048BD4V1WfkuySjp/PeOkpt8B9vBH3UTMno+j/NBxQJqy4YnBUq5piogeq+8lzoanB9kFRDRVP+WDagwE9L3EtTdqS9DKdw/KJSihkOYXc5NwxEtpm5ojqx0Vq2ogTBEqSw5Dw6wgZ05Xp3jcmBGJ6Tlo0aaQDYyzoRcvx84qp0jMLoIqCgmNFGzeJuWhsC95RdLZgkuGXKP08nINF2zYjiZMd5WlxQ5/TKt2fZUu9N38eLtxP0gBkjE/2wGC65EVJdxTGiFikeQhkgOejj8S+BDgFsPq9nNLysS8xg4LK8OrB/bSglKtwcnvl4Zxh9cRFWIn2/YlG4snN4wMdZJ1ieBWM1avLL5zRkoj8gYfrMDey2Z7xk2Sn7VeyCFhGSXC/ILTPSgPdQgILWxrVO0JuvtdueSEv6VPFWAD616I2XyqFTdjOpyft8LgPFAEnOXBFT4IkrEryilKcJtB/U4tHpjhHDRrXEtGQdZ/uzL1r94mQG/iz/UlgTCGsXO8yEbceVme9I2PNR0QcpMkQujBJAOo0eyahJfHLASMBE5duGjfQXI3my0ATpI/XGxH6ZMBCKHnJCzHyNWywWs1l4c9QNqjvF+BaJlz49NzF1hjwdXSqLsGxhtemBln/Vb08dHMbokapjIQZyS74vd3cazVb39X+tIkpQ2aSn9MBNj8Q3l/UQUJil84q5KKrTiivCCaYFXGNSvFzGBStXIPwT/e7EfHz8BZkSdrFnJbw7EoXCNhN1fCk2viH9v8RuMVKtki84pMR0PX4reodYm6jcQua0L74tcBOJg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 46f96f1f-1e6c-439f-2dd9-08dc2c8f86f9 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2024 12:30:13.7895 (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: DU2P250MB0094 Subject: [FFmpeg-devel] [PATCH] avcodec/x86/simple_idct: Empty MMX state in ff_simple_idct_mmx 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: 0EMSG7vwM0Sk We currently mostly do not empty the MMX state in our MMX DSP functions; instead we only do so before code that might be using x87 code. This is a violation of the System V i386 ABI (and maybe of other ABIs, too): "The CPU shall be in x87 mode upon entry to a function. Therefore, every function that uses the MMX registers is required to issue an emms or femms instruction after using MMX registers, before returning or calling another function." (See 2.2.1 in [1]) This patch does not intend to change all these functions to abide by the ABI; it only does so for ff_simple_idct_mmx, as this function can by called by external users, because it is exported via the avdct API. Without this, the following fragment will assert (on x86_32, as ff_simple_idct_mmx is not used on x64): int16_t __attribute__ ((aligned (16))) block[64]; AVDCT *dct = avcodec_dct_alloc(); dct->idct_algo = FF_IDCT_AUTO; avcodec_dct_init(dct); dct->idct(block); av_assert0_fpu(); [1]: https://raw.githubusercontent.com/wiki/hjl-tools/x86-psABI/intel386-psABI-1.1.pdf Signed-off-by: Andreas Rheinhardt --- libavcodec/x86/simple_idct.asm | 1 + 1 file changed, 1 insertion(+) diff --git a/libavcodec/x86/simple_idct.asm b/libavcodec/x86/simple_idct.asm index 982b2f0bbb..4139b6dab5 100644 --- a/libavcodec/x86/simple_idct.asm +++ b/libavcodec/x86/simple_idct.asm @@ -845,6 +845,7 @@ INIT_MMX mmx cglobal simple_idct, 1, 2, 8, 128, block, t0 IDCT + emms RET INIT_XMM sse2