From patchwork Sat Jun 6 07:33:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiaxun Yang X-Patchwork-Id: 20166 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 8629744A0A0 for ; Sat, 6 Jun 2020 10:34:56 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5D8EC689ECB; Sat, 6 Jun 2020 10:34:56 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from relay3.mymailcheap.com (relay3.mymailcheap.com [217.182.119.155]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CD0F9689ECB for ; Sat, 6 Jun 2020 10:34:49 +0300 (EEST) Received: from filter1.mymailcheap.com (filter1.mymailcheap.com [149.56.130.247]) by relay3.mymailcheap.com (Postfix) with ESMTPS id D41A83F1CB; Sat, 6 Jun 2020 09:34:48 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by filter1.mymailcheap.com (Postfix) with ESMTP id 234AB2A3A2; Sat, 6 Jun 2020 03:34:48 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=mymailcheap.com; s=default; t=1591428888; bh=YlmEvlU+wnqmP00dw+QjhBxNO9hc5Hs6p0Fatd5HcTs=; h=From:To:Cc:Subject:Date:From; b=hwYl06sVYLn0CSs5qtxzpnci01fC8kiJJJksbQIL8bT91QEYE4UoeiuSWxJ52vqTQ TEeFSZJnqGhzA9vg8dbR3LeneNJ1GfVRToH0lRkW7hYunXHMMlgO9sAvGKNhZ+JDZI +hb6J4fW18ZW8yMgLIXbrwj3taHRCy9nXBh2xGrw= X-Virus-Scanned: Debian amavisd-new at filter1.mymailcheap.com Received: from filter1.mymailcheap.com ([127.0.0.1]) by localhost (filter1.mymailcheap.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qy0jfNNqPGe9; Sat, 6 Jun 2020 03:34:47 -0400 (EDT) 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 filter1.mymailcheap.com (Postfix) with ESMTPS; Sat, 6 Jun 2020 03:34:47 -0400 (EDT) Received: from [148.251.23.173] (ml.mymailcheap.com [148.251.23.173]) by mail20.mymailcheap.com (Postfix) with ESMTP id 238C2412EC; Sat, 6 Jun 2020 07:34:45 +0000 (UTC) Authentication-Results: mail20.mymailcheap.com; dkim=pass (1024-bit key; unprotected) header.d=flygoat.com header.i=@flygoat.com header.b="h0KoeqmO"; 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 966C740146; Sat, 6 Jun 2020 07:34:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=flygoat.com; s=default; t=1591428882; bh=YlmEvlU+wnqmP00dw+QjhBxNO9hc5Hs6p0Fatd5HcTs=; h=From:To:Cc:Subject:Date:From; b=h0KoeqmOobE4q1WYTcqG5fbQoKJ1u8IkkMnqF0o0LJ9Eb0qQqZ3emVaXSuIdWZFGJ 4cZKtDz6cePsPdTUMJAT+Hh2bgC3gquIh/YmGucgl7Y8Io1lhIoX8qFt6TOi2F+UOp xr2mRfKZVY/wsZgas+Tyws9y+e21yjTZkivE/nGs= From: Jiaxun Yang To: ffmpeg-devel@ffmpeg.org Date: Sat, 6 Jun 2020 15:33:52 +0800 Message-Id: <20200606073356.7180-1-jiaxun.yang@flygoat.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-Rspamd-Queue-Id: 238C2412EC 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 v3 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. 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 | 192 +++++++++++++------- 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, 672 insertions(+), 181 deletions(-) create mode 100644 libavutil/mips/cpu.c create mode 100644 libavutil/mips/cpu.h