From patchwork Tue Aug 13 14:03:34 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "J. Dekker" X-Patchwork-Id: 50998 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:a746:0:b0:489:2eb3:e4c4 with SMTP id f6csp285670vqm; Tue, 13 Aug 2024 07:04:45 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCW6HbxHmHxa2b19BCiAtlXKbbVNZ+2TiLJh78VcA+LP1yZsVOHISHx7Xwr0cDXWqnnZDNPhMR3GDMLh1h212oU4WCALIlNxwa4+EQ== X-Google-Smtp-Source: AGHT+IG1VRKjxRRcZQ41yVLusvmupmpjGnaGo53ZJyD8CQm81Q+LuikdTPbKk7aq2EBOWXKr4vTI X-Received: by 2002:a05:6402:e89:b0:5a1:61a7:56ce with SMTP id 4fb4d7f45d1cf-5bd44c79635mr2032290a12.35.1723557885498; Tue, 13 Aug 2024 07:04:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1723557885; cv=none; d=google.com; s=arc-20160816; b=dZ/XEnC9clYLpSoYmDQV9bGNEMv+KgwEQxeAZ+jKr70qUXFnlkniwToHI4X+9dzncN R/BBe5HzYjKeFzsSXVbbsexvX0Xe+yIYbhEhckcbObPsRBgNXEgjnVDdVj+PbrEtssC3 mxp8nV1xeOVMXawMvWHiSgclHcDzys/aeJDvjLJMYFlj2n8fvqs1GmS4ZqWGv9KtANLk QEWbfptfnWbeQln5i0rcx8ODhV28nay89H9mm+OKOMwggaQ1V5c2yDTUbgnfVtiHs3F3 zTFQGtm71Oaq7ZqkaDvIZNw+ZUU03uCbU8fp/fxA3Y1Ly4yETYOkXARlNJfz3EW/Dirm iZKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:feedback-id:dkim-signature:dkim-signature :delivered-to; bh=CXepgpQE+U1L852ZcB67cK82/INdUbsLyBTHqPYkweI=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=aFu7bK8Yj81dDLLMGGV3HqpI2uTvTRTuY5zcBzlPx/Ku9WtTZcnCg14wvmLkq2KuIB RihNSvSREEjN/aQaBiL+gcGgdILXmg6aTDEVwN5CQJqsYl4A9T9mo0rcrD8VSolziwal 5nHKQ3NqevZWaD5spEMoQuShybfHBSwKEfS6b0jiqAB5L9JcE46LBsoOwm2u7HQmOSsF xCa++a0ugXiLNEekl9M6nQt3RKruI965Ajz8CmLTF+fxBaYX/UQZw4YdnBOkQYlKuYbW IkDfcRWG90Zl4XOgO8oJSV5rKY5jEmg/RxOJ6QTRuz8hYtqRx/uvKiOmw9MB2tdW4Wi9 zvjQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@itanimul.li header.s=fm1 header.b=PgqqEA1A; dkim=neutral (body hash did not verify) header.i=@messagingengine.com header.s=fm3 header.b=GoAG40r9; 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 4fb4d7f45d1cf-5bd1a5cbc8asi3923850a12.286.2024.08.13.07.04.45; Tue, 13 Aug 2024 07:04:45 -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=@itanimul.li header.s=fm1 header.b=PgqqEA1A; dkim=neutral (body hash did not verify) header.i=@messagingengine.com header.s=fm3 header.b=GoAG40r9; 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 DEF5968DA7F; Tue, 13 Aug 2024 17:03:54 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from fhigh8-smtp.messagingengine.com (fhigh8-smtp.messagingengine.com [103.168.172.159]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B080968DA77 for ; Tue, 13 Aug 2024 17:03:48 +0300 (EEST) Received: from phl-compute-05.internal (phl-compute-05.nyi.internal [10.202.2.45]) by mailfhigh.nyi.internal (Postfix) with ESMTP id B5D451150BCB; Tue, 13 Aug 2024 10:03:47 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-05.internal (MEProxy); Tue, 13 Aug 2024 10:03:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=itanimul.li; h= cc:cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm1; t=1723557827; x= 1723644227; bh=4CiPrfQX3aAVwMBWIGmdmvl2EIYuPQpB0BYoB0/2kV8=; b=P gqqEA1A8ys6ClXROrXTAnqkA+FH5ZirHpk+nfEy0A1Li7GinlDMLhWO0L6WBthdQ KAt6rGvMMaPCmzQ/C4Huc4FXsH8vSgytZRfEdl+FPNFp+NvZ0Xt7DOD96wpfQWWP 8inLDlItROH9oAcQCvnneNg8bW4yLUjrMf+TJU9LzwVafEOEG9pQ0o7EzzpNZ1mF mcbmo+rQ4tCdiYnFzh3XXvT7N1/cLN3yaAnjoNgNsFOZs3SWBku06c+IfmojjOao a5wpxFxmlrIgzx/8nhV121qylnNm2dM0WeqAG6cchS71207VdvCqMuD+PFc/EeB1 xWs9FzHuPd/lhbdbNkORg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1723557827; x= 1723644227; bh=4CiPrfQX3aAVwMBWIGmdmvl2EIYuPQpB0BYoB0/2kV8=; b=G oAG40r9TsSbsEk73OlKJLTv0uK780uR4zIw/hdkURCVKPQrY7f5p27zImWDpiM28 W0zHSJfXDy8cqRW3INrz/LqiSCrmgYB8rkB3OlfPjFReN8zWNi458V8iUMNa+z8T sVLTPpQftI3Ac02UMm71CjkBgK8auJSZc4Vi9+WNvV6TzPivqGzDpKUkn54P8HRq XV9mdS1RIziX+JItehkoh85SUO6gETXO+0mpKMDaCkLZ7iY59Cz803XSJFO98I3+ XB29J95FczyfeOdHa+MPi5wepaAZcwTvT0oS6C5j68kC8QKg9EmssnCOQ4PDKEPE TPUDL+q4ESE3ryDzka0jg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddruddtvddgjeduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucenucfjughrpefhvfevuf ffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpedflfdrucffvghkkhgvrhdfuceo jhguvghksehithgrnhhimhhulhdrlhhiqeenucggtffrrghtthgvrhhnpedtheekffejgf ektdehgedvieevgeegffdvvedvudeffffhteeiffelhfekvddujeenucffohhmrghinhep rghsmhdrshgsnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrh homhepjhguvghksehithgrnhhimhhulhdrlhhipdhnsggprhgtphhtthhopedvpdhmohgu vgepshhmthhpohhuthdprhgtphhtthhopehffhhmphgvghdquggvvhgvlhesfhhfmhhpvg hgrdhorhhgpdhrtghpthhtohepghhitheshhgrrghsnhdruggvvh X-ME-Proxy: Feedback-ID: i84994747:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 13 Aug 2024 10:03:47 -0400 (EDT) From: "J. Dekker" To: ffmpeg-devel@ffmpeg.org Date: Tue, 13 Aug 2024 16:03:34 +0200 Message-ID: <20240813140338.143045-5-jdek@itanimul.li> X-Mailer: git-send-email 2.44.1 In-Reply-To: <20240813140338.143045-1-jdek@itanimul.li> References: <20240813140338.143045-1-jdek@itanimul.li> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 5/7] avutil/riscv/asm: add helper macro to count varargs 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: +Xm8XO4avy95 From: Niklas Haas (Ab)using nested macros to get the number of arguments passed to a variadic macro. Useful for stack manipulation. --- libavutil/riscv/asm.S | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/libavutil/riscv/asm.S b/libavutil/riscv/asm.S index 175f2a8672..db190e99ca 100644 --- a/libavutil/riscv/asm.S +++ b/libavutil/riscv/asm.S @@ -271,3 +271,20 @@ #error Unhandled value of XLEN #endif .endm + + .macro count_args_inner num, arg, args:vararg + .ifb \arg + .equ num_args, \num + .else + count_args_inner \num + 1, \args + .endif + .endm + + /** + * Helper macro to count the number of arguments to a macro. Assigns + * the count to the symbol `num_args`. + * @param args arguments to count + */ + .macro count_args args:vararg + count_args_inner 0, \args + .endm