From patchwork Wed Nov 1 09:45:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 44470 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:6da5:b0:15d:8365:d4b8 with SMTP id gl37csp316051pzb; Wed, 1 Nov 2023 02:44:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFEWj2k/f7/9oQgHL5lVljFpOADVj7ZfoSXK0a9ZsyegFoqGidJueHkUQn2qhphf6ETwTNU X-Received: by 2002:a17:907:d2a:b0:9d2:fe04:b19a with SMTP id gn42-20020a1709070d2a00b009d2fe04b19amr1541765ejc.27.1698831872345; Wed, 01 Nov 2023 02:44:32 -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 dn16-20020a17090794d000b009a59b604305si1352744ejc.406.2023.11.01.02.44.31; Wed, 01 Nov 2023 02:44:32 -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=tk4CYRH1; 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 3FD3068CBE8; Wed, 1 Nov 2023 11:44:28 +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-db8eur05olkn2098.outbound.protection.outlook.com [40.92.89.98]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B86A168CBE8 for ; Wed, 1 Nov 2023 11:44:21 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l4BWdYqcbsKflQKMHARl2nLplUID5OpHGC7/q0Ka9KSoS2+8DHiGke+gxyNsP1TqtBBSWTxx7AI4uS8RCILKl2gwI3HFfM1XWCVkwCZX+1VPah+9HE51h7GakdmIJnWMqq0PBq0ivR2hN2oCs+RbGuVFXaURIXXzf9DsuJnVfy30eTVZ6WGbuq3pwlht9if7aK4gTOy8nt1Cqgx4KtSThF6dPaR8cSpFtmeii5LtmThyEmPIZ90q4Syc4tf/SdBDyPZ/CRevfV8GjQIgoqNAUEkwoTr36VcEYwfbCISXXJnM0x28Gnn7FfQs6fCmo/gtFfNZDj+lfMPJQJ//v7PVCQ== 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=BU5ieovCvti8B4mtePPX5gqYMvmHgId1Uh6gCCvQh1E=; b=KXssn+/L6iTkzDQ12BmVEu8mfahtH4Rs4rYLz3vHJkZdxCPTQr7pSOzMO/UyMukRVAzHnEafKXZ3KfNZE04sNOawZPWNjeTrWSJJSbF4TJPi/2Un0gI5WrGilI6Cj3BCAfz6tbu1U/2Su9BLDBy4lN6jF+bCgEhxGJshQVMdC0ahGSsoeDHBkFjHqAZ2GuvGeigcPmz34R9cmCp4MYW4E0EPjpNDIMlbLTJYoraEF/TyMA9dbdMDdvNgU7y2hm03qopBgbYuZdfs7Pwk196odrzatTa7z9bCCMdyvQtZcRY8Zytpl1R+TEwvTGOh8qDkXzcOXi3+mx74Vz5IQnAZbA== 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=BU5ieovCvti8B4mtePPX5gqYMvmHgId1Uh6gCCvQh1E=; b=tk4CYRH1oU0j83aiNGwbWpRb3qL/dJKg9kDwJinWbSuiudplRdmtSK8YEHe3jS7k66cbcuLkmgb4aIOlPbi5YZ8wMj60qZzNVvT+vfDWRROSMS+yUzuV7hxD+CcUXqo+WWkqMDNi0O3wnQzp/vVNAc+vu6fZameQ14aUO56s4Y9glEoTyH+fyPWQLXLFUPIh4mUumZzVJOlMVgN793lIOyr0yvSxnEatkqB7kp00A2q6pJmyZ4NtjzZYiMe363EmbVuhElFtNIJo655ZqVXQa+e7aq4WKJH5yVX8mE0LAvwlh03TLvBxK4Qn5AG/O5JKFg0z8jbTENs53quIOHQXXw== Received: from GV1SPRMB0033.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8b::7) by AS8P250MB0120.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:373::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.29; Wed, 1 Nov 2023 09:44:19 +0000 Received: from GV1SPRMB0033.EURP250.PROD.OUTLOOK.COM ([fe80::54a8:bde1:da41:a768]) by GV1SPRMB0033.EURP250.PROD.OUTLOOK.COM ([fe80::54a8:bde1:da41:a768%3]) with mapi id 15.20.6933.029; Wed, 1 Nov 2023 09:44:19 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 1 Nov 2023 10:45:29 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [iFFwhwZIpJsrXlmFklme5epn0RGoNZKgpScKpfNxqhI=] X-ClientProxiedBy: ZR0P278CA0177.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:45::11) To GV1SPRMB0033.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8b::7) X-Microsoft-Original-Message-ID: <20231101094532.3588093-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1SPRMB0033:EE_|AS8P250MB0120:EE_ X-MS-Office365-Filtering-Correlation-Id: 51e53407-338f-4fb1-ed2f-08dbdabf1ea7 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1x2tZSQzVV2RZCT42fmQmf0gtIoml7WD/TGrwfm6HsjlP09FYmQDAYyrfLq+ZKp6tHovCt5++XAiRgfpUySqMqputXKk5Ej+2lX5b+yUqjHc7gRBg4hJ0YeR5HPSn0FfDdajmZrHy/Feot8Cok4KvcwddQDiPsNTTQ5ppEAFTsOiN73Uu+zIAF3yr93yR2CFfRkEFtb7idOz8bofRUu/LTwYPDBG8wQ7qsY3Zo3anbW9F4SHiTuc5Hj1KcgL565E0KiFSXSqypAr8oI5WuH1cFreYgM5vNdqFTTsGn0c6UBAk9MRSpQSFvsxFYSFI6cAagV/X+jrDmDNY1vxTTudMiS+kD6tTA4Euv0viymSYeS3Qtb3+vy/BO2RHL8EMC0zmMIGMCvLONVneNyNrU1Jy41WLU2K9f7d58utc0ufHfuYbf2AJilNLi3Utziux1u6C+8GVqGoHj3P62mcMwXcFQK9/ioXvwGmbRGHec17rN1O/4sCv/prUGi7EZteN7nn2Ef8nKyVr728UWEIw/3V9GoeR8lLTvGN9ijOXyNqTXuPEJZwhEI+kaXSmEcVksWILDF6jwPTruKXL8FfNLuF6VWLBg5SYxTlhATU44n9rNCrI/lQEUpNZdRZh/EAUvmU X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Av8TuGPHuQGkkxf5rZliKEa3qp3bYNF3d/Xl82qjazVxRCjvn7C/zFBI130R2gcflOjoayG2M7vrrsaykxcK6G1GKuW+vomaDa86wGznMihyJuSoGyCNE9xfRUeYoPcAi6dSmtU/Juq0pJJKkOEbZLOiqhT+eX4yDgXb98Ysl+/x9NDv3HTnMfbSUrriELLOSnNNcWTbv53ACEFyw2oRdx04PcrQJkjBP6TFVL9PXkq5WesaU70euMYSbl6/PHhicWROQPkAlDPNrFA0XMwY/NX0pIvK3UeaXSa6SFDaryr/bWZhl3wcO0ZQO+tmT/gyLV1LKOZfeYFVgwF7RSyXbCq973nn975wVzAql3Rb5ibnwuvbJDZpPJU6xmrUsVj2eJWMkurrTBsCdyTa49L+YuhyhMNArsGlVicqUMiMbpfDFos3qLATn8KvisWxogYm2xMnGNR/RPHHERBcw0lyNb6WojLBYg3zvAdQ0/lpVITPBNx1FrMx2HC9QiosmzoBnu8Oq/+XYHGv41V5tHlx1MNGzG1MInIWSZzbMP/Z1sAcJzcP0gjVAOphwcnpH/RcR9+hqabgO5ag8x81yI2W4Z8a7NGygWsAZdjcwjQNuGaDnNjLMejvPUH1kkYhb6AOU9Ci8aa7sRHY/OQcO9aiA1IFfB2wTfYQ70y4vpFGmPUFtV9kW1S/Hbye9k1EVpEGqI8gHRwuPFYxs+W8POspH0HMuPaeCv7k8OA1lm+YTRMhnYKQyCpr9+Xm/EMcZxJJ41Tc9TyX6IRaXqHVGL+++xzIFioC6g79mc53gVczYeZbBkwuFAFoEvvX87QV/Vdncwhu0xPs5PMRImfwGNQn8NqvoEIdjipTDBPsblxDFpcDdnfXjogS4yv+MkNbAx5KKavb8WL8zKfR0hzwqOOuAm3A6iZH2ghK29egXOSSUeiVXnm/y870kuKYNjXGb1ddoGu/MSE2FN3s8DsXafvlqvE0Wts3iEt/s7pC/jBDTo6icgV5PajCtVWz8QB5RW/f8MaDfDvybyKRul5Pb6o4vyyLCJiMgffb3/TAHOZbDy5qrhH7jrT1R6e/pu4A0JkOfKszbmi9tRvm93G2P0Uubjl+jPI/dWKdxQ2kXwsuALpRzbO/XuwxkdJ+QBn4BZljPbypNEWnvVO234oemk39gWLwVsC8VlO40RV84yTWYGsPyQQcSwNpIbtxac/O6nR6OOdH0ht6f20pQT3mzQ2KDKaLN3h3FL89lIFYYVFH7XFYV0nJm8RMaO7eYhAKOL+w X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 51e53407-338f-4fb1-ed2f-08dbdabf1ea7 X-MS-Exchange-CrossTenant-AuthSource: GV1SPRMB0033.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2023 09:44:19.3751 (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: AS8P250MB0120 Subject: [FFmpeg-devel] [PATCH 1/4] avutil/x86/pixelutils: Empty MMX state in ff_pixelutils_sad_8x8_mmxext 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: FWJw4Pummqjr 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_pixelutils_sad_8x8_mmxext, as this function can by called by external users, because it is exported via the pixelutils API. Without this, the following fragment will assert (on x86/x64): uint8_t src1[8 * 8], src2[8 * 8]; av_pixelutils_sad_fn fn = av_pixelutils_get_sad_fn(3, 3, 0, NULL); fn(src1, 8, src2, 8); av_assert0_fpu(); [1]: https://raw.githubusercontent.com/wiki/hjl-tools/x86-psABI/intel386-psABI-1.1.pdf Signed-off-by: Andreas Rheinhardt --- libavutil/x86/pixelutils.asm | 1 + 1 file changed, 1 insertion(+) diff --git a/libavutil/x86/pixelutils.asm b/libavutil/x86/pixelutils.asm index fbe9b45971..0bcccb51f5 100644 --- a/libavutil/x86/pixelutils.asm +++ b/libavutil/x86/pixelutils.asm @@ -43,6 +43,7 @@ cglobal pixelutils_sad_8x8, 4,4,0, src1, stride1, src2, stride2 lea src2q, [src2q + 2*stride2q] %endrep movd eax, m2 + emms RET ;-------------------------------------------------------------------------------