From patchwork Thu Jul 13 01:49:31 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 4314 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.1.76 with SMTP id 73csp1586658vsb; Wed, 12 Jul 2017 18:57:57 -0700 (PDT) X-Received: by 10.223.163.152 with SMTP id l24mr115363wrb.203.1499911076988; Wed, 12 Jul 2017 18:57:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1499911076; cv=none; d=google.com; s=arc-20160816; b=LIQNmDow/AA+dTb6GCqlC0Lo38dRJcPW1VcMbEPmyu4BXe0EsJt2OyQXKSJI5ZWxgg CFbhINrEbVlSZhd6twM/ppIwGfP4Mm6DDPJCUXZoqqWywme86qjgNn8s+UipOOYa6OIW QPjOpvOHJ8+tlkwWaNg0Fjco7wbn7ZINe7Zdzha1qijt2pNwo3nAMdJuBDQmK61HKMQj AuPgZvvR1UClQBm5LmCxwZN516QZio/GgLuLyG8LYqa93mU9rPB2axcY5125aw1ij+wf DxNFaQ2pWFJczrgiLz+b4LGosKiqMFAxzgS2wLt/WvEGiGidKNl7BxlHSE20xriBEhwK CEBw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=9yo/8AI8E7ZKXraYucRCF4kMH7bmipeeTWAmevmmJWA=; b=ePzDm1Hgs7iizZVTRUo17h003WYVSyYk3pOrk0OFTurw5WC+Eq3X2GKEQD6MPX8NQv B2DEUWA1Jgoe06boCyMzL4iGCKat//PlvdTczeyz3YO0bS0f2cjT8DoLzdI2iGg3UO3p C0sp+jkePJiIPtw6iu9yJqlT/A2Fz4CN6OYiVKlbq7fPvQtUFkfM2mIBUu+COjPl6Odb 8Df6Dm5Pz70Z4mbj6pF4AXQxr7s2Gc9G586pzlg4f9ZCgyPFVMN7MGBvJzR3jTgm26XW OcpnOgptzpxlny9LC0C4Bu04G6PJfC1uxnQK0IAQoaUoIOz+q60A4FNpmSdB/R94MNFl Gabw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.b=qn+d+LKK; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id j61si2988547wrj.331.2017.07.12.18.57.55; Wed, 12 Jul 2017 18:57:56 -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=@gmail.com header.b=qn+d+LKK; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A50F0689B6B; Thu, 13 Jul 2017 04:57:47 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk0-f195.google.com (mail-qk0-f195.google.com [209.85.220.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 22C0E68978C for ; Thu, 13 Jul 2017 04:57:41 +0300 (EEST) Received: by mail-qk0-f195.google.com with SMTP id a66so5437201qkb.0 for ; Wed, 12 Jul 2017 18:57:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=ND/TPa3nkXBVy9t12Yt6c+1XS5aounZkqB0gjhM1btY=; b=qn+d+LKKqzUlLEwBO51WZpCg7+ZLJvh4hglfYdCxWmhZRiM6dLPiVg/XP41WK4clgN 6r+XqwezC3ZbbMxZHBSGjNpgY4lxgx+LQ15Z2qyvoNu68dzdETjx3YcLw29BFYlO8MKU W2YxrtPvkdmP7YFHhDpFCXGJnp6HK3dFVzjABSLOBxvOYv+awPjTVOp3aYNtp7tPPjJQ /4mF4i3vWkilMH+kldNYZFKa39TFGIKCsWkJNUBOqImMDIKJ8oSpw3mDkdFvTu1M1uKQ Jj5mf1yd+y4k4SVsYH9XB265zubzbP9/SVgVNKrJ0UdLcoQuIt02SruBnxukPyJHm/EO KWxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=ND/TPa3nkXBVy9t12Yt6c+1XS5aounZkqB0gjhM1btY=; b=RbOiZvQpbyp48K/39kDaNPqww8koQb1p4NmqOW/Pm38w8JAWAAESOPJA2v7Y9CPETM IpUz/GsmvpymmkxVS2VjjqQX/ljFHRfP+BBJi3894ZVeg7HbmVhg1plRebHvez1JM83e AP3cgsdisTfQpks0zOIM7DNfOeDB2r2xxRdO+j7GD88fl+UQ3oXFfICOoEASR4Rx9XGw buwaxWQRlEoO+8D4p1YAcOV+s0ZnQTBs0CMJKl0JJuIx2788KpOPyHR3L0tqGGG3Bt4U aETAvQnxbJoHsvZsn4jsJu94EPelgRj+0DebWLleZCxsc9VfaX/tZc7OX1AHk455koQe 1mxQ== X-Gm-Message-State: AIVw11365bHPLW0rb3GxjNQ22Inkxd7MjMcOox/NkSp+hJ8bpcPhz0k+ NmOtKa7yonGqXayW X-Received: by 10.55.94.70 with SMTP id s67mr1796612qkb.256.1499910591826; Wed, 12 Jul 2017 18:49:51 -0700 (PDT) Received: from localhost.localdomain ([181.231.116.134]) by smtp.gmail.com with ESMTPSA id a126sm2991196qkf.25.2017.07.12.18.49.50 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 12 Jul 2017 18:49:51 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jul 2017 22:49:31 -0300 Message-Id: <20170713014931.5664-1-jamrial@gmail.com> X-Mailer: git-send-email 2.13.0 Subject: [FFmpeg-devel] [PATCH] x86/vf_limiter: make limiter functions work on x86_32 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: James Almer --- libavfilter/x86/vf_limiter.asm | 28 ++++++++++++---------------- libavfilter/x86/vf_limiter_init.c | 4 ++-- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/libavfilter/x86/vf_limiter.asm b/libavfilter/x86/vf_limiter.asm index 9e7271be76..c5b9b0a64d 100644 --- a/libavfilter/x86/vf_limiter.asm +++ b/libavfilter/x86/vf_limiter.asm @@ -20,23 +20,21 @@ %include "libavutil/x86/x86util.asm" -%if ARCH_X86_64 - -SECTION_RODATA - -pb_0: times 16 db 0 - SECTION .text INIT_XMM sse2 -cglobal limiter_8bit, 8, 9, 3, src, dst, slinesize, dlinesize, w, h, min, max, x +cglobal limiter_8bit, 6, 7, 3, src, dst, slinesize, dlinesize, w, h, x movsxdifnidn wq, wd add srcq, wq add dstq, wq neg wq - SPLATB_REG m1, min, [pb_0] - SPLATB_REG m2, max, [pb_0] + movd m1, r6m + punpcklbw m1, m1 + SPLATW m1, m1 + movd m2, r7m + punpcklbw m2, m2 + SPLATW m2, m2 .nextrow: mov xq, wq @@ -51,18 +49,18 @@ cglobal limiter_8bit, 8, 9, 3, src, dst, slinesize, dlinesize, w, h, min, max, x add dstq, dlinesizeq sub hd, 1 jg .nextrow - ret + RET INIT_XMM sse4 -cglobal limiter_16bit, 8, 9, 3, src, dst, slinesize, dlinesize, w, h, min, max, x +cglobal limiter_16bit, 6, 7, 3, src, dst, slinesize, dlinesize, w, h, x shl wd, 1 add srcq, wq add dstq, wq neg wq - movd m1, mind + movd m1, r6m SPLATW m1, m1 - movd m2, maxd + movd m2, r7m SPLATW m2, m2 .nextrow: mov xq, wq @@ -79,6 +77,4 @@ cglobal limiter_16bit, 8, 9, 3, src, dst, slinesize, dlinesize, w, h, min, max, add dstq, dlinesizeq sub hd, 1 jg .nextrow - ret - -%endif + RET diff --git a/libavfilter/x86/vf_limiter_init.c b/libavfilter/x86/vf_limiter_init.c index ef7d20a1a0..07c733dc21 100644 --- a/libavfilter/x86/vf_limiter_init.c +++ b/libavfilter/x86/vf_limiter_init.c @@ -31,12 +31,12 @@ void ff_limiter_init_x86(LimiterDSPContext *dsp, int bpp) { int cpu_flags = av_get_cpu_flags(); - if (ARCH_X86_64 && EXTERNAL_SSE2(cpu_flags)) { + if (EXTERNAL_SSE2(cpu_flags)) { if (bpp <= 8) { dsp->limiter = ff_limiter_8bit_sse2; } } - if (ARCH_X86_64 && EXTERNAL_SSE4(cpu_flags)) { + if (EXTERNAL_SSE4(cpu_flags)) { if (bpp > 8) { dsp->limiter = ff_limiter_16bit_sse4; }