From patchwork Thu Jun 9 23:54:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 36113 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:6914:b0:82:6b11:2509 with SMTP id q20csp654499pzj; Thu, 9 Jun 2022 16:57:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyErPE4vVCIaOCOkTAOpvLMKAiItjdLgSkz1ZDZs8FEYdPnELuTfptH1UWTN88+fKC/Z8dD X-Received: by 2002:a17:907:3ea0:b0:6ff:7d7a:480d with SMTP id hs32-20020a1709073ea000b006ff7d7a480dmr38641269ejc.750.1654819032170; Thu, 09 Jun 2022 16:57:12 -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 d15-20020a056402516f00b0042b2375f906si17104459ede.327.2022.06.09.16.57.11; Thu, 09 Jun 2022 16:57:12 -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=OYHqzyg0; 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 9BBDF68B866; Fri, 10 Jun 2022 02:56:13 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-oln040092070085.outbound.protection.outlook.com [40.92.70.85]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6CEE568B840 for ; Fri, 10 Jun 2022 02:56:08 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=irA0bmnlWQ0yZA0pOmeBBSz8+adDE7ZV3a+9CEHdUA9rC7gDEvTahOJ2nNx9ODlKD7xMPbnqxO7jZ273oO/6YrLvXzRKus/06BwgfJFwT4tPleVxQRQv11vDm5PGKtcPYZdS9i3sJFCttuHztyX4eJmZ7dgfSsZme8B0QswXCXAPnJi6+zWTNbwrbYx+aGR4rTn7t30qduFe+bkXFkV/Dy3QD4m/zOx7KCenDiQjiOVauIKcR+9vPeAjhdD9Y0UR4/8XH1DvtLCcVME6HqnVEvcnhYjMAMeAT1wkmyQSoRxSu2ewtLm1fIUtQh8OgGLGd+57Afx4531hjg1M/nIY/g== 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=YKp14LLqSYipMKOLjsIsXgckmRdxeUMemdhaGLlKeTI=; b=MmgN3a3FssePS5ag11ypeq00Ry2dh165mnjPWbQ9E7yTh8hGXIwY5QF0BPDuBEvvC7oXH30pbcJcBIUXzRFIYfsjlHfYFrlrx0zq3mEp8NaV8fuUKaLxVkgo6XTY43zHOP1rQyx1KCb0+Y/B3yTWC3rtmuM8KdXfBry2csLU1+E7YPrtFxdnKk9cHhC2ytrORNiJx7gViDQ3jb3Sf4dkDpOpDQarSORwdcgSLAtjJCPh1u8kY1dLt2jNqhhcNognIfwpu9PR6GNAAWsyh7tMhSE9hg1CtLPgyiIVGvj6cJ9zxWXLKQdKPdiJfPuO1t3/FebOWHF1G0lfAKjeE9PIcg== 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=YKp14LLqSYipMKOLjsIsXgckmRdxeUMemdhaGLlKeTI=; b=OYHqzyg0DYfAfTVmk4dh913t/YNT4Wb84U/+e26Cg1K6SVoVHosJTSXZKisAkEyqd9iDPCOXjp0VZqpwvCrZG+cvkhR6AIJk4+zKf5eut7R2vE0Ho3aBHHzo1IBsAZ19MDVaaS0SOjT5F2YKedjbzxBq/diC1e18s4nkZGOp4SUNBnBJFVfjoGgvnHu9mQ4+hNn/SqA1nOAYQxnzl9uIZSRBr42UrXtxDeAEaRQ4cb82zL6LmCUekINU5j3bqiobyr1Kxcy773Pg2A9zkx99fqtyVY/Ongs99ek0kp1v7S+PxS2Vs6G54cMvbJrOB3htlZCYMZXXmK67o+g8WmEL0g== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by AM0PR01MB5809.eurprd01.prod.exchangelabs.com (2603:10a6:208:16f::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.12; Thu, 9 Jun 2022 23:56:06 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c%10]) with mapi id 15.20.5332.013; Thu, 9 Jun 2022 23:56:06 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 10 Jun 2022 01:54:51 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [QeX5jyDOa9Dx6LjaSKXtfMHi1bzE/eGK] X-ClientProxiedBy: AM5PR04CA0005.eurprd04.prod.outlook.com (2603:10a6:206:1::18) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220609235523.458689-9-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7159a712-a558-43e1-b526-08da4a739e1e X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiTijo6adWu98SHbtEySq1lKMY/u9/dCHeuGrjcp4sPm33RddRueCLoE3keyqQKiDzyGvUoju/10Ja4prtx4+FBWjZRc/W/siMLwBntYPFiDJU0Uer1VQXf4F2ZuucpUaqXGdsjNMSWIvl98OrlEwswmoIEekvkNHAD7Q45pDQqWpsl0e1PvdmXl2QmGJHUxAUgXGdq2xvW1WEETGyVzXKbpNBb/MVhztyTICqJjTswZpJaSZHPW0H8imh0IBL3g2iyCQQequntbDwqJmUunXgrPFTwQybEQkHsUifjVvjY/brDS+B7N3yISW9TpkUOjnmwIbfFpPi3WkPGtq/HfzSzuRZKyAaMjUNMGPhrdedBZnyvMLiwFpLSe5R9JW0GqqWOm5R4DMttngqjcWvGMgubpgaJRgOLJb9DTFdNwoeYCD5a2mWhep5wa1m/26FxA1zgSdixOmGXgCmViCoO60q3XUe0MIO57RBtmhrIbXpUvs+gBwO5JDR5MNvVql9G7UH7HGQzo1NG9PGqV5139VZMNIaAj6aOHusesFuurNJ2aN7wD+TAWxa6vlpe/JFepewsFGN1p/Tj35ERPrQCrEwpojG11+ViG+iXdKeOToREcIIdLWTZmQ+dzcSey1wynehGiKR0VPj5pVbTbZ6dAqg9PHbvxZqm0BaycCzEftwSt9dyhL4B4knyimOFBLE0VDDQKwLdRbBQU39p+iTvHkl41tqhJpfvA3eVJKftM3OJcCOBkEC/oPFECACm7WE7e0hQ= X-MS-TrafficTypeDiagnostic: AM0PR01MB5809:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ejMncJdbsmTx680kLS1GCuHyn+zJJKJfwst/db+YylnYKc2oq28k8bmmj85w/JKY66kqlHpbsikipqDrKGDunkrPqU1ZQ6DfKSHAsNL/RNW+tGL3o65hFGn2DS9wCXQnzC8YUOYXcE0HOpwaTFAdpWgj6a1Z6Rj3KD1+rWUY+/iwEKx8YS+6CC65uStQZyHwBeKziLNdtXhCleZZwld6+7FtszAUeqZaUb+dpeF68AQRTWOV+ebhf7oi085lJTQKMPwq8eSW00Iv3fkkqoMBFTnhQyZ1FjxeKePqQ4vQvEsNqewiCjL0ir+QC6eJfUEZn+y73Bf9U2XNglXlyU/QrlqscR+dEzcqS0DMDIw0NgLUtdikKNyyfQ05MG1OHmONM0s2ZQ62cnCP2TYOTKTZNPWymFZLU5ALLzRwkWBYYAgwPr4YaBAmxYp3gpEayp4z2VlDAJtYC8bPpKzJsKVHBgn31LZ/WA4bzucX3s/F+oFtv+F27rcHkF6WvXEACeGI5gsitTC4DzpMSETY+pHdL6VIU05PquDKNNVts4ErHbnO1M8kybGvKbiUb1xZH6+/5LQ8LTDhQl9Yt6NdEkNxnQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: wDspCqkI78es0qqCJQlHV6zy9U34dWAAfj7RnlsPIx1YbLmQEXILmK87uFSycPXUq1m7Bxr5nZ7aUw3paYT6gSilBmxJZ1Dj5fJcFKXL7jp4CpcH2AhujFZdkBIuGIxLrwBWZ5uZ3cB9/xSOVCZmsVsLOcang6KI2FTmFu/e5QHxtZzW3mMxfEdOUnWjX42h0w9eZNe2U7WK03315fHmZKZmv0MOASkGoIxjR89YaqV3mP7DE8h/MvLKIFSoMyZOFuD82KyRbafPYydb+FewyBdERamzwFxaRicL9DVE5i/MBk9FBhPsO9yydAM1ytvK/wr1ncJYN4PVcgP4+xkF3u9cnjVg6qrDIb9a52nwoscesgqN+xLUmxz8fiHQNJvGtQqGyn0YNr7ZGdsndQMOGPHsY/u1NOUXGxfuYUgY3U77F4FcY6RePNBqlqABaZc86cVC+DJJS6JqstM8y/adiE/OW5yHJub2M9bG8Vl8Xze8uSEhRi2xdrAWdDcv5WaPh8yFeXTyaGVYUkGEbosu5+yus+RT4ReP7B+/Vihximg59DYWaz1IXV0sA4TdLCj1kI01bIwkdHbCzC1s9DTVNIHja6fV5vLBISAoD15m755ZpYkIcY/S8YhMso0ZMQJrDepqNK4Q4YPHRz8/ZteSPomc+guV2FYksJdKLuPUuXP812J4JSdVN7Cf1+3GuLWxZOnyxdhEgiyxnp9mUK9jbukb5YqF4L3eKWNhxBl4br1Z1rgTQXiAvwUcwLApBv4HLup8MjCk3jeM8YNYkqJjGTo8ztEdTcnDrJlKYiOwUToeCiZVCTPoa+6aLnnNqcZYmWlD2uaqOFqXGhcF3dj1OddxH3im/FlN6WazwFXanluXrreimpS5HOOJhVl1M+LkvXbaSw0pTDQQvIycnG/4wwPgPsOqHDAwDOmvtZ0Ec4ax55e5tA/ncAUY5aIyg56fx13Ka6McbhWFWtT7AHluF7/7zFKGDSPsPI1TjXkXOdfJgMHQFNzdzLRThCn392WHl/LxXZTCGsyE/56yXOGH2rwWjGZnlM06yx/Tbz7qSivvh2gpL6s3jBGyiMtg5uB772/bFKWSl50M+YLgzBngjhfrBk9ATS3A/DApNAPucxeHiZAiAlwj0AdrGlWckVn4M+sZ2sVYd4bp8RcIGRJaxWEsuLWLQ2iCNWZkWFTj3jf+c1THbYcbOC0HVl1zjY2neAqXif4GmP4rsxMsDSlqWqxrorV3DQcXSABMa4ZM6dZr/5o+rZpUckVj//fw1MyJegfAs+HiHPc4yxZCQpIliKhTbVMrWSaLwuLRMT/rI3ABc02FMKUXAtLiAsx98uexPQoh8TuHXql/ZTBC+MLctSac8jBcJTIsZNUHq7roQXg2nPsykRNZRmTRCyN87COwVlU6NOeWk+4VmVJ93Mm81iMvCgyf3fBx0+B0HLvbkrQoNkHO8VWuv/H1doith+vYrOAbQfRQrQzDDSxTXg0qbg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7159a712-a558-43e1-b526-08da4a739e1e X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2022 23:56:06.3197 (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: AM0PR01MB5809 Subject: [FFmpeg-devel] [PATCH 09/41] avcodec/x86/vc1dsp_init: Disable overridden functions on x64 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: YhOyO/98AzH3 x64 always has MMX, MMXEXT, SSE and SSE2 and this means that some functions for MMX, MMXEXT and 3dnow are always overridden by other functions (unless one e.g. explicitly disables SSE2). This commit therefore disables these functions at compile-time. Signed-off-by: Andreas Rheinhardt --- libavcodec/x86/h264_chromamc.asm | 2 ++ libavcodec/x86/vc1dsp_init.c | 41 +++++++++++++++++++--------- libavcodec/x86/vc1dsp_loopfilter.asm | 2 ++ 3 files changed, 32 insertions(+), 13 deletions(-) diff --git a/libavcodec/x86/h264_chromamc.asm b/libavcodec/x86/h264_chromamc.asm index b5a78b537d..0421fa8695 100644 --- a/libavcodec/x86/h264_chromamc.asm +++ b/libavcodec/x86/h264_chromamc.asm @@ -448,7 +448,9 @@ chroma_mc2_mmx_func avg, h264 INIT_MMX 3dnow chroma_mc8_mmx_func avg, h264, _rnd +%if ARCH_X86_32 chroma_mc8_mmx_func avg, vc1, _nornd +%endif chroma_mc8_mmx_func avg, rv40 chroma_mc4_mmx_func avg, h264 chroma_mc4_mmx_func avg, rv40 diff --git a/libavcodec/x86/vc1dsp_init.c b/libavcodec/x86/vc1dsp_init.c index 2fbf0b3a74..66d894061c 100644 --- a/libavcodec/x86/vc1dsp_init.c +++ b/libavcodec/x86/vc1dsp_init.c @@ -33,9 +33,10 @@ #include "vc1dsp.h" #include "config.h" -#define LOOP_FILTER(EXT) \ +#define LOOP_FILTER4(EXT) \ void ff_vc1_v_loop_filter4_ ## EXT(uint8_t *src, ptrdiff_t stride, int pq); \ -void ff_vc1_h_loop_filter4_ ## EXT(uint8_t *src, ptrdiff_t stride, int pq); \ +void ff_vc1_h_loop_filter4_ ## EXT(uint8_t *src, ptrdiff_t stride, int pq); +#define LOOP_FILTER816(EXT) \ void ff_vc1_v_loop_filter8_ ## EXT(uint8_t *src, ptrdiff_t stride, int pq); \ void ff_vc1_h_loop_filter8_ ## EXT(uint8_t *src, ptrdiff_t stride, int pq); \ \ @@ -52,9 +53,13 @@ static void vc1_h_loop_filter16_ ## EXT(uint8_t *src, ptrdiff_t stride, int pq) } #if HAVE_X86ASM -LOOP_FILTER(mmxext) -LOOP_FILTER(sse2) -LOOP_FILTER(ssse3) +LOOP_FILTER4(mmxext) +#if ARCH_X86_32 +LOOP_FILTER816(mmxext) +#endif +LOOP_FILTER816(sse2) +LOOP_FILTER4(ssse3) +LOOP_FILTER816(ssse3) void ff_vc1_h_loop_filter8_sse4(uint8_t *src, ptrdiff_t stride, int pq); @@ -71,12 +76,14 @@ static void vc1_h_loop_filter16_sse4(uint8_t *src, ptrdiff_t stride, int pq) ff_ ## OP ## pixels ## DEPTH ## INSN(dst, src, stride, DEPTH); \ } -DECLARE_FUNCTION(put_, 8, _mmx) +#if ARCH_X86_32 DECLARE_FUNCTION(put_, 16, _mmx) DECLARE_FUNCTION(avg_, 8, _mmx) DECLARE_FUNCTION(avg_, 16, _mmx) -DECLARE_FUNCTION(avg_, 8, _mmxext) DECLARE_FUNCTION(avg_, 16, _mmxext) +#endif +DECLARE_FUNCTION(put_, 8, _mmx) +DECLARE_FUNCTION(avg_, 8, _mmxext) DECLARE_FUNCTION(put_, 16, _sse2) DECLARE_FUNCTION(avg_, 16, _sse2) @@ -114,9 +121,10 @@ av_cold void ff_vc1dsp_init_x86(VC1DSPContext *dsp) if (EXTERNAL_MMXEXT(cpu_flags)) ff_vc1dsp_init_mmxext(dsp); -#define ASSIGN_LF(EXT) \ +#define ASSIGN_LF4(EXT) \ dsp->vc1_v_loop_filter4 = ff_vc1_v_loop_filter4_ ## EXT; \ - dsp->vc1_h_loop_filter4 = ff_vc1_h_loop_filter4_ ## EXT; \ + dsp->vc1_h_loop_filter4 = ff_vc1_h_loop_filter4_ ## EXT +#define ASSIGN_LF816(EXT) \ dsp->vc1_v_loop_filter8 = ff_vc1_v_loop_filter8_ ## EXT; \ dsp->vc1_h_loop_filter8 = ff_vc1_h_loop_filter8_ ## EXT; \ dsp->vc1_v_loop_filter16 = vc1_v_loop_filter16_ ## EXT; \ @@ -127,19 +135,25 @@ av_cold void ff_vc1dsp_init_x86(VC1DSPContext *dsp) dsp->put_no_rnd_vc1_chroma_pixels_tab[0] = ff_put_vc1_chroma_mc8_nornd_mmx; dsp->put_vc1_mspel_pixels_tab[1][0] = put_vc1_mspel_mc00_8_mmx; +#if ARCH_X86_32 dsp->put_vc1_mspel_pixels_tab[0][0] = put_vc1_mspel_mc00_16_mmx; dsp->avg_vc1_mspel_pixels_tab[1][0] = avg_vc1_mspel_mc00_8_mmx; dsp->avg_vc1_mspel_pixels_tab[0][0] = avg_vc1_mspel_mc00_16_mmx; } if (EXTERNAL_AMD3DNOW(cpu_flags)) { dsp->avg_no_rnd_vc1_chroma_pixels_tab[0] = ff_avg_vc1_chroma_mc8_nornd_3dnow; +#endif } if (EXTERNAL_MMXEXT(cpu_flags)) { - ASSIGN_LF(mmxext); - dsp->avg_no_rnd_vc1_chroma_pixels_tab[0] = ff_avg_vc1_chroma_mc8_nornd_mmxext; + ASSIGN_LF4(mmxext); +#if ARCH_X86_32 + ASSIGN_LF816(mmxext); - dsp->avg_vc1_mspel_pixels_tab[1][0] = avg_vc1_mspel_mc00_8_mmxext; dsp->avg_vc1_mspel_pixels_tab[0][0] = avg_vc1_mspel_mc00_16_mmxext; +#endif + dsp->avg_vc1_mspel_pixels_tab[1][0] = avg_vc1_mspel_mc00_8_mmxext; + + dsp->avg_no_rnd_vc1_chroma_pixels_tab[0] = ff_avg_vc1_chroma_mc8_nornd_mmxext; dsp->vc1_inv_trans_8x8_dc = ff_vc1_inv_trans_8x8_dc_mmxext; dsp->vc1_inv_trans_4x8_dc = ff_vc1_inv_trans_4x8_dc_mmxext; @@ -156,7 +170,8 @@ av_cold void ff_vc1dsp_init_x86(VC1DSPContext *dsp) dsp->avg_vc1_mspel_pixels_tab[0][0] = avg_vc1_mspel_mc00_16_sse2; } if (EXTERNAL_SSSE3(cpu_flags)) { - ASSIGN_LF(ssse3); + ASSIGN_LF4(ssse3); + ASSIGN_LF816(ssse3); dsp->put_no_rnd_vc1_chroma_pixels_tab[0] = ff_put_vc1_chroma_mc8_nornd_ssse3; dsp->avg_no_rnd_vc1_chroma_pixels_tab[0] = ff_avg_vc1_chroma_mc8_nornd_ssse3; } diff --git a/libavcodec/x86/vc1dsp_loopfilter.asm b/libavcodec/x86/vc1dsp_loopfilter.asm index 74360949dc..3475a682b3 100644 --- a/libavcodec/x86/vc1dsp_loopfilter.asm +++ b/libavcodec/x86/vc1dsp_loopfilter.asm @@ -249,6 +249,7 @@ cglobal vc1_h_loop_filter4, 3,5,0 call vc1_h_loop_filter_internal RET +%if ARCH_X86_32 ; void ff_vc1_v_loop_filter8_mmxext(uint8_t *src, ptrdiff_t stride, int pq) cglobal vc1_v_loop_filter8, 3,5,0 START_V_FILTER @@ -265,6 +266,7 @@ cglobal vc1_h_loop_filter8, 3,5,0 lea r0, [r0+4*r1] call vc1_h_loop_filter_internal RET +%endif %endmacro INIT_MMX mmxext