From patchwork Sat Jul 18 15:35:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiaxun Yang X-Patchwork-Id: 21174 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 170A8446A34 for ; Sat, 18 Jul 2020 18:36:55 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 016C068B797; Sat, 18 Jul 2020 18:36:55 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from relay4.mymailcheap.com (relay4.mymailcheap.com [137.74.80.154]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 942D968B797 for ; Sat, 18 Jul 2020 18:36:48 +0300 (EEST) Received: from filter2.mymailcheap.com (filter2.mymailcheap.com [91.134.140.82]) by relay4.mymailcheap.com (Postfix) with ESMTPS id 558603F1CF for ; Sat, 18 Jul 2020 17:36:47 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by filter2.mymailcheap.com (Postfix) with ESMTP id 243022A7D5 for ; Sat, 18 Jul 2020 17:36:47 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=mymailcheap.com; s=default; t=1595086607; bh=7lskjuJV5qVaKFrKUV1vrDU6GiMZgjz9Wn1uccyzM6Y=; h=From:To:Cc:Subject:Date:From; b=OQoiXhuBaUtojcowQGW9StriFp0gBEX2Kn+ZcoHwCXJVJL0KCJJX7YyisNNGNPfWq jGiy8M3k1xKix2M9JaNHkEpRvbDfHmCfKbcoHNy3MeLaqFh5kwkQhpX5hWwdLTsfKZ a21muqG2j+NjcrLl+/U3ByDzGZLSeatzsul3pZf8= X-Virus-Scanned: Debian amavisd-new at filter2.mymailcheap.com Received: from filter2.mymailcheap.com ([127.0.0.1]) by localhost (filter2.mymailcheap.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cCTPBG4zG54B for ; Sat, 18 Jul 2020 17:36:45 +0200 (CEST) Received: from mail20.mymailcheap.com (mail20.mymailcheap.com [51.83.111.147]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by filter2.mymailcheap.com (Postfix) with ESMTPS for ; Sat, 18 Jul 2020 17:36:45 +0200 (CEST) Received: from [213.133.102.83] (ml.mymailcheap.com [213.133.102.83]) by mail20.mymailcheap.com (Postfix) with ESMTP id 8EC9B40139; Sat, 18 Jul 2020 15:36:44 +0000 (UTC) Authentication-Results: mail20.mymailcheap.com; dkim=pass (1024-bit key; unprotected) header.d=flygoat.com header.i=@flygoat.com header.b="ipGYUvq0"; dkim-atps=neutral AI-Spam-Status: Not processed Received: from strike.202.net.flygoat.com (unknown [115.227.167.208]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail20.mymailcheap.com (Postfix) with ESMTPSA id 0CF5240139; Sat, 18 Jul 2020 15:36:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=flygoat.com; s=default; t=1595086571; bh=7lskjuJV5qVaKFrKUV1vrDU6GiMZgjz9Wn1uccyzM6Y=; h=From:To:Cc:Subject:Date:From; b=ipGYUvq0qDF66euZnu1f8aspzNpLp7J2RvyxiiEOEkgGvLgyjkcWxOqekRdPA9nR3 UGVGQ7lzS0UOO+oMtnZtxtuVzHSik2NMsaAfKLeCAPuE8IamKWnQWn1BD9P6uJd2go pa2dAqKXdKB4jnr55myNFWhVBJfn0R9HDdaYPgsE= From: Jiaxun Yang To: ffmpeg-devel@ffmpeg.org Date: Sat, 18 Jul 2020 23:35:36 +0800 Message-Id: <20200718153542.6434-1-jiaxun.yang@flygoat.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 X-Rspamd-Queue-Id: 8EC9B40139 X-Spamd-Result: default: False [0.90 / 10.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(0.00)[flygoat.com:s=default]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; R_SPF_SOFTFAIL(0.00)[~all:c]; ML_SERVERS(-3.10)[213.133.102.83]; DKIM_TRACE(0.00)[flygoat.com:+]; RCPT_COUNT_TWO(0.00)[2]; MID_CONTAINS_FROM(1.00)[]; RCVD_IN_DNSWL_NONE(0.00)[213.133.102.83:from]; DMARC_POLICY_ALLOW(0.00)[flygoat.com,none]; DMARC_POLICY_ALLOW_WITH_FAILURES(0.00)[]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:24940, ipnet:213.133.96.0/19, country:DE]; RCVD_COUNT_TWO(0.00)[2]; HFILTER_HELO_BAREIP(3.00)[213.133.102.83,1] X-Rspamd-Server: mail20.mymailcheap.com Subject: [FFmpeg-devel] [PATCH v6 0/6] MIPS MSA & MMI Runtime detection support X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Jiaxun Yang Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This series adds MIPS MSA & MMI runtime detection support Please review. Thanks! v2: - Add CPUCFG support. - Add "-mloongson-ext" to MMIFLAGS for Loongson-3 as well. (Loongson2F don't need this flag) v3: - Address reveiew suggestions from Shiyou Yin and Weixi Gu. v4: - Disable DSP for generic CPU v5: - Clean ups - Address some GCC build warnings v6: - Address more Shiyou's comments Jiaxun Yang (6): ffbuild: Refine MIPS handling libavutils: Add parse_r helper for MIPS libavutil: Detect MMI and MSA flags for MIPS libavcodec: Enable runtime detection for MIPS MMI & MSA libavcodec: MIPS: MMI: Fix type mismatches libavcodec: MIPS: MMI: Move sp out of the clobber list configure | 172 ++-- ffbuild/common.mak | 10 +- libavcodec/mips/Makefile | 3 +- libavcodec/mips/blockdsp_init_mips.c | 40 +- libavcodec/mips/cabac.h | 2 +- libavcodec/mips/h263dsp_init_mips.c | 18 +- libavcodec/mips/h264chroma_init_mips.c | 55 +- libavcodec/mips/h264dsp_init_mips.c | 225 +++-- libavcodec/mips/h264dsp_mips.h | 18 +- libavcodec/mips/h264dsp_mmi.c | 56 +- libavcodec/mips/h264pred_init_mips.c | 207 ++-- libavcodec/mips/h264qpel_init_mips.c | 412 ++++---- libavcodec/mips/hevcdsp_init_mips.c | 992 ++++++++++---------- libavcodec/mips/hevcpred_init_mips.c | 40 +- libavcodec/mips/hpeldsp_init_mips.c | 180 ++-- libavcodec/mips/idctdsp_init_mips.c | 74 +- libavcodec/mips/me_cmp_init_mips.c | 50 +- libavcodec/mips/mpegvideo_init_mips.c | 48 +- libavcodec/mips/mpegvideoencdsp_init_mips.c | 21 +- libavcodec/mips/pixblockdsp_init_mips.c | 63 +- libavcodec/mips/qpeldsp_init_mips.c | 270 +++--- libavcodec/mips/vc1dsp_init_mips.c | 186 ++-- libavcodec/mips/videodsp_init.c | 10 +- libavcodec/mips/vp3dsp_init_mips.c | 44 +- libavcodec/mips/vp8dsp_init_mips.c | 240 +++-- libavcodec/mips/vp9dsp_init_mips.c | 16 +- libavcodec/mips/wmv2dsp_init_mips.c | 18 +- libavcodec/mips/wmv2dsp_mips.h | 4 +- libavcodec/mips/wmv2dsp_mmi.c | 4 +- libavcodec/mips/xvid_idct_mmi.c | 4 +- libavcodec/mips/xvididct_init_mips.c | 31 +- libavcodec/mips/xvididct_mips.h | 4 +- libavutil/cpu.c | 10 + libavutil/cpu.h | 3 + libavutil/cpu_internal.h | 2 + libavutil/mips/Makefile | 2 +- libavutil/mips/asmdefs.h | 42 + libavutil/mips/cpu.c | 134 +++ libavutil/mips/cpu.h | 28 + libavutil/tests/cpu.c | 3 + tests/checkasm/checkasm.c | 3 + 41 files changed, 1919 insertions(+), 1825 deletions(-) create mode 100644 libavutil/mips/cpu.c create mode 100644 libavutil/mips/cpu.h