From patchwork Mon Jun 8 03:30:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiaxun Yang X-Patchwork-Id: 20194 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 F13CF44ADA2 for ; Mon, 8 Jun 2020 06:30:57 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BF0CF68AFD8; Mon, 8 Jun 2020 06:30:57 +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 32427689C71 for ; Mon, 8 Jun 2020 06:30:51 +0300 (EEST) Received: from filter2.mymailcheap.com (filter2.mymailcheap.com [91.134.140.82]) by relay4.mymailcheap.com (Postfix) with ESMTPS id 7A7793F163; Mon, 8 Jun 2020 05:30:49 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by filter2.mymailcheap.com (Postfix) with ESMTP id 46BBE2A8BA; Mon, 8 Jun 2020 05:30:49 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=mymailcheap.com; s=default; t=1591587049; bh=CwnDaFVPCO7m5DzQ/HhNme+T/CRGvub4SI/dZwFn8Ns=; h=From:To:Cc:Subject:Date:From; b=aZYG5BnbDrLwBL3U66eUpeIdlNvJKDTScn1SCwrXkhH5geukvVps8mcTyIsEmG6gV HOnLbA1Ya/XsVPyo3cfDfNPc8SUBw7Ul7jnHuqHMg5Dsux+Sosg/b209RhpOwnoU63 j5jdka81ayuyfgtVcyS7Z2xP5waaUYmXMpl+JJyI= 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 Os3m8AVqXCW3; Mon, 8 Jun 2020 05:30:47 +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; Mon, 8 Jun 2020 05:30:47 +0200 (CEST) Received: from [148.251.23.173] (ml.mymailcheap.com [148.251.23.173]) by mail20.mymailcheap.com (Postfix) with ESMTP id 0218B414D1; Mon, 8 Jun 2020 03:30:44 +0000 (UTC) Authentication-Results: mail20.mymailcheap.com; dkim=pass (1024-bit key; unprotected) header.d=flygoat.com header.i=@flygoat.com header.b="OTDaKKAo"; dkim-atps=neutral AI-Spam-Status: Not processed Received: from rush.localdomain (unknown [60.177.191.23]) (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 D4E9D414D1; Mon, 8 Jun 2020 03:30:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=flygoat.com; s=default; t=1591587012; bh=CwnDaFVPCO7m5DzQ/HhNme+T/CRGvub4SI/dZwFn8Ns=; h=From:To:Cc:Subject:Date:From; b=OTDaKKAos6E2pCxgkO9+D6SmAQICifuf1xe7gd0r9v2b28BgMm915VqeECkKVh8eM ugXFNOCU9wLN8iG3EGNuUkXyQe2naTiKfTiG5hsWQzZrQiweqkkvdrB2xfmEfQ2RnX zpTC2iKzuJar29X2fj5Wz+LGG9OVbkJ3IfCJ3ZBc= From: Jiaxun Yang To: ffmpeg-devel@ffmpeg.org Date: Mon, 8 Jun 2020 11:30:00 +0800 Message-Id: <20200608033004.2635-1-jiaxun.yang@flygoat.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-Rspamd-Queue-Id: 0218B414D1 X-Spamd-Result: default: False [4.90 / 10.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[]; R_DKIM_ALLOW(0.00)[flygoat.com:s=default]; RECEIVED_SPAMHAUS_PBL(0.00)[60.177.191.23:received]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; R_MISSING_CHARSET(2.50)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; BROKEN_CONTENT_TYPE(1.50)[]; TO_DN_SOME(0.00)[]; R_SPF_SOFTFAIL(0.00)[~all]; ML_SERVERS(-3.10)[148.251.23.173]; DKIM_TRACE(0.00)[flygoat.com:+]; DMARC_POLICY_ALLOW(0.00)[flygoat.com,none]; MID_CONTAINS_FROM(1.00)[]; 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:148.251.0.0/16, country:DE]; RCVD_COUNT_TWO(0.00)[2]; HFILTER_HELO_BAREIP(3.00)[148.251.23.173,1] X-Rspamd-Server: mail20.mymailcheap.com X-Spam: Yes Subject: [FFmpeg-devel] [PATCH v4 0/4] 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: yinshiyou@loongson.cn, 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 Jiaxun Yang (4): 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 configure | 183 ++++++++++++-------- ffbuild/common.mak | 10 +- libavcodec/mips/Makefile | 3 +- libavcodec/mips/blockdsp_init_mips.c | 22 ++- libavcodec/mips/cabac.h | 2 +- libavcodec/mips/h263dsp_init_mips.c | 12 +- libavcodec/mips/h264chroma_init_mips.c | 22 ++- libavcodec/mips/h264dsp_init_mips.c | 25 ++- libavcodec/mips/h264pred_init_mips.c | 25 ++- libavcodec/mips/h264qpel_init_mips.c | 22 ++- libavcodec/mips/hevcdsp_init_mips.c | 24 ++- libavcodec/mips/hevcpred_init_mips.c | 12 +- libavcodec/mips/hpeldsp_init_mips.c | 22 ++- libavcodec/mips/idctdsp_init_mips.c | 24 ++- libavcodec/mips/me_cmp_init_mips.c | 12 +- libavcodec/mips/mpegvideo_init_mips.c | 22 ++- libavcodec/mips/mpegvideoencdsp_init_mips.c | 13 +- libavcodec/mips/pixblockdsp_init_mips.c | 25 ++- libavcodec/mips/qpeldsp_init_mips.c | 12 +- libavcodec/mips/vc1dsp_init_mips.c | 22 ++- libavcodec/mips/videodsp_init.c | 12 +- libavcodec/mips/vp3dsp_init_mips.c | 22 ++- libavcodec/mips/vp8dsp_init_mips.c | 22 ++- libavcodec/mips/vp9dsp_init_mips.c | 22 ++- libavcodec/mips/wmv2dsp_init_mips.c | 12 +- libavcodec/mips/xvididct_init_mips.c | 13 +- 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 + 35 files changed, 658 insertions(+), 186 deletions(-) create mode 100644 libavutil/mips/cpu.c create mode 100644 libavutil/mips/cpu.h