From patchwork Tue Mar 12 08:27:19 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Martin_Storsj=C3=B6?= X-Patchwork-Id: 46985 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dc95:b0:1a1:738b:6bc0 with SMTP id ky21csp1713237pzb; Tue, 12 Mar 2024 01:27:33 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXr2ic12EeZY+03H0DChyn8aPfGe/XGjzLH6ukcDytfBS9sLpa68PFlIB5CGzBDt336SsIZ/SPmfOSUOtTRqTL+KJiACkPiqbKzOw== X-Google-Smtp-Source: AGHT+IGHPGf+qSwMg8dobEq9fWMxuf4aVEcXf+KZ/BTMQa3f9hL2Ii4WF7AlOm+W5wEMxi/zG0uB X-Received: by 2002:a17:906:99d6:b0:a46:4a64:5fd2 with SMTP id s22-20020a17090699d600b00a464a645fd2mr267236ejn.49.1710232052790; Tue, 12 Mar 2024 01:27:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1710232052; cv=none; d=google.com; s=arc-20160816; b=voWa7zg0AFZur6uAjDtEkbmsW+q8n42b+Hju7QvKCeGzJQjVm9yvITHoXa+lcATnDf vkJRXLfoqcYfpA/MbkIzBWGRIBkh4p1QOjo2DH3NkrLTKjvDRwCR11DpIH7wNkxE5zsY K7ZfTA0j9CUqB2uetCFpfU7FtM8LsMLI/S/JartadosMNVBIKmGizt6xYV7gEgOsnoho 3/uyBxu7fxF5NIn1/2l2ct+zK9Or+SDxMv5lPqhNyJPHoo5xlLYh5yeAVbOE64p/LYYQ pA22PO3/aniU9LDXJkV/M17qv0gdcXVHXtyszEIEMXgXIBRNsdkcw1ZXsD4aMJRmfQkI JigQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=Dkr/TI/STsLuNsBG95LpyOG396J2TVSjSeF8KK4pp/w=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=Jr0Z+bS0aOd/3b7cl+5djhbs5Nt+yb2Cz+s/jBLi0O78Z1Oz/1WRUkYszsa9VOQUJ5 r44ewuowaTCGSszgCn/W7Ow/tcLIswiM0C3eS0lVpBG+siuapFkoxZ/g2kbPdMUbvK9R 6R0FbAxTEqeKLY983s2tOp4nfOX8IIFEOFdzmpFIpK2dJYQSiJQBWJ8fNjfmWLy9qbcV EBedUYwl0h5+DjkYmf7c/7NF7/EYjGtBHJRzpqwjKuFioD+JSC4czUXZNtRjCyaRJBd4 G3HzrSN8zRN+GaBReYDdkKxXeUxU0BUl9NeikTFBFFn9iXF5PZvH5B3n4P1Kbmnpom9X c6UQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@martin-st.20230601.gappssmtp.com header.s=20230601 header.b=buJ4F2zW; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id mc24-20020a170906eb5800b00a463d3e88c7si580121ejb.684.2024.03.12.01.27.32; Tue, 12 Mar 2024 01:27: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=@martin-st.20230601.gappssmtp.com header.s=20230601 header.b=buJ4F2zW; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4D1D368D123; Tue, 12 Mar 2024 10:27:28 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f173.google.com (mail-lj1-f173.google.com [209.85.208.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1444168D07E for ; Tue, 12 Mar 2024 10:27:21 +0200 (EET) Received: by mail-lj1-f173.google.com with SMTP id 38308e7fff4ca-2d2ab9c5e83so50001301fa.2 for ; Tue, 12 Mar 2024 01:27:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=martin-st.20230601.gappssmtp.com; s=20230601; t=1710232041; x=1710836841; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=GHI+YHb7brGSQda+60pc6qHS/TvFQvvgPcOQtUy9PgI=; b=buJ4F2zWG41fCy5N7q+W2VWWBSpavxCwOYq876M7UNxOeD5VfbAuWAYqdEouTftACP 1g612b5/IDBNY/huCHW6htfGpZej19TFUZIuyv86UYpKLadmiq+8LVXdWlqt86S+Nd+Q M1MGYmgB7i9ODzlWxmm5oRVo0XtlUtD4n8gjv/4JXEm6hN9X2uH3mJd/si7cO5qHhFy+ IgU9tpIr6K8dafXnrPQ2CtYf3fTOmg3lFr5zx+vUw5olv2nbeIyK05vypBUpAaz+L16f h2wvknChQ7j/if5luH1wPdn4mx6z9wFV1YctGb+cQp5dE0Dt9U8pFWKE49ykAkkHAQfw ESVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710232041; x=1710836841; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=GHI+YHb7brGSQda+60pc6qHS/TvFQvvgPcOQtUy9PgI=; b=GRVAaJhh4Kyx0wE5p4V8c75YTPNDA3EWP0nad46DXu4Od8g/Pz3C5s9FEeZ3LCObVJ iNTEMqBoyjl+OFZ4KFRd7PrqjpfvXK3FlPIxMw7Ki+JR38aEkrYBoHCpSPJtbh4W1Zgp YMAyS5qw65pZaGs+zpP9y2Abe/pyBpfu93USwstzxGetJd8DGIRL+gOthTTsNJaCWJB1 fYeoX8NjtU1Pxqg/AENFQo9VXB+M9njNTk5drcCJg9zavXddK3dYgbUmFYh1zlj7SX0y /cJHZydBw2xB9STWTCodP4sSWvzro08XvwT2dQXMN0ovHs8AU5Z213Fx9nHxMSensF/T eNsg== X-Gm-Message-State: AOJu0Yx83a/9gBkVB81XfaaFOpe9SdTW4A1AxbWLRziZ2iCKTCVJN5Nz Lqf8ZpEtPsQFEzpKfX/ZLbyJZ4JX5t62CK6vufKpulNYFOdhCdAPfIhyMsT4LWYpMnNtRf245nn zZBs9 X-Received: by 2002:a2e:b0ef:0:b0:2d3:d71:98d3 with SMTP id h15-20020a2eb0ef000000b002d30d7198d3mr2324849ljl.29.1710232040841; Tue, 12 Mar 2024 01:27:20 -0700 (PDT) Received: from localhost (dsl-tkubng21-58c01c-243.dhcp.inet.fi. [88.192.28.243]) by smtp.gmail.com with ESMTPSA id bj40-20020a2eaaa8000000b002d4545e5c77sm178383ljb.140.2024.03.12.01.27.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Mar 2024 01:27:20 -0700 (PDT) From: =?utf-8?q?Martin_Storsj=C3=B6?= To: ffmpeg-devel@ffmpeg.org Date: Tue, 12 Mar 2024 10:27:19 +0200 Message-Id: <20240312082719.1884075-1-martin@martin.st> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] aarch64: Factorize code for CPU feature detection on Apple platforms 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: EZ1lI9hWfT0f --- libavutil/aarch64/cpu.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/libavutil/aarch64/cpu.c b/libavutil/aarch64/cpu.c index 7a05391343..196bdaf6b0 100644 --- a/libavutil/aarch64/cpu.c +++ b/libavutil/aarch64/cpu.c @@ -45,22 +45,23 @@ static int detect_flags(void) #elif defined(__APPLE__) && HAVE_SYSCTLBYNAME #include +static int have_feature(const char *feature) { + uint32_t value = 0; + size_t size = sizeof(value); + if (!sysctlbyname(feature, &value, &size, NULL, 0)) + return value; + return 0; +} + static int detect_flags(void) { - uint32_t value = 0; - size_t size; int flags = 0; - size = sizeof(value); - if (!sysctlbyname("hw.optional.arm.FEAT_DotProd", &value, &size, NULL, 0)) { - if (value) - flags |= AV_CPU_FLAG_DOTPROD; - } - size = sizeof(value); - if (!sysctlbyname("hw.optional.arm.FEAT_I8MM", &value, &size, NULL, 0)) { - if (value) - flags |= AV_CPU_FLAG_I8MM; - } + if (have_feature("hw.optional.arm.FEAT_DotProd")) + flags |= AV_CPU_FLAG_DOTPROD; + if (have_feature("hw.optional.arm.FEAT_I8MM")) + flags |= AV_CPU_FLAG_I8MM; + return flags; }