From patchwork Wed Apr 11 21:16:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella Netto X-Patchwork-Id: 897411 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-91505-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="ZpuNfee0"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40LxgT50gxz9s2M for ; Thu, 12 Apr 2018 07:16:53 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:in-reply-to :references; q=dns; s=default; b=CNSnOqe0daYh8V+gFmSpyY/sy3/vf3M IqbgCoIAmGJN3se1qAnvf0xkadM15IN07Vc2y7F/LRXbm6acXklwkFvytF0EbpC/ R3G6B4JpX4otDFKJGxUcV3hXpaPfGzmBO+/TLs/xulC4/wuwRwns3B57YeAwUtxr lx8qzDEON3QA= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:in-reply-to :references; s=default; bh=CjPeuyPhHdyXDlC7ZQjByzM44tY=; b=ZpuNf ee0kdAA8Pkkj3pGWLM6SuyvAp/AN7srcnN6ytn2ZEmAoxWr3MkzML/fmNF7U5bQA ENE8r8FiJXFJvb22GEzjV0QNwAgBh0WQL4zDOi5Fbtvjg0udQgJChAi8ZbUVoMyM +MfpA4dfk5KgqX1SOMKT8phRbrDiKq5r3I8WZw= Received: (qmail 118082 invoked by alias); 11 Apr 2018 21:16:33 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 117834 invoked by uid 89); 11 Apr 2018 21:16:31 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.0 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=eor X-HELO: mail-qt0-f181.google.com 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:in-reply-to :references; bh=0xt6HHZb6s6E+hJnS8iCVYKgwYg2GnlNDvMxd4DGV/0=; b=t/XR0TuCb7hJi1URrqTxiG/GMBfoFysykCv7WtWxM+3TDl9TCE14sY4dHD4a0BgO+S z65CEXhSFEClhBpAlyQK+Xv/Nl9/FMg11SKS37XGTbzzsd5vlrBBGje85wQPN2ViioCd 23f5J8Bgn/iGWO4ScdgPviUdyoPEFYi/N2iX8kxxegt45VcJnjPRzxDQ0uHqLQshGxAo vS7h2tx613Y0awJwKAdwkgNjdSoIUZRhXVhsPPrnBovN1qVZ/hDnnV0T5aFAm37sgmfL 9Zq2MTkdzCo4E0YC6eaHoWJdsviBci+oNayYVa7HexAvFtBYCsIiwz1SOzgTq5WZ7hlm ZtaQ== X-Gm-Message-State: ALQs6tA7fRI+/eis/lJ9vomkoCA7o+HzXp3rbGEZrrR6oyoHS9kyJ8M+ xrFPkxScphSXX2OfC2oYJ8wEqk/YU5Y= X-Google-Smtp-Source: AIpwx49Xf2T7dd0DwGtUsMfD4a/vivvVcPIiEVSusK4zwLezT8/SKFpoDkrGs2cUzvyuZ73M9t4SZA== X-Received: by 10.200.7.69 with SMTP id k5mr9924846qth.165.1523481388565; Wed, 11 Apr 2018 14:16:28 -0700 (PDT) From: Adhemerval Zanella To: libc-alpha@sourceware.org Subject: [PATCH 3/4] arm: Enable ARM mode for armv6 memchr Date: Wed, 11 Apr 2018 18:16:17 -0300 Message-Id: <1523481378-16290-3-git-send-email-adhemerval.zanella@linaro.org> In-Reply-To: <1523481378-16290-1-git-send-email-adhemerval.zanella@linaro.org> References: <1523481378-16290-1-git-send-email-adhemerval.zanella@linaro.org> Current optimized armv6t2 memchr uses the NO_THUMB wrongly to conditionalize thumb instruction usage. The flags is meant to be defined before sysdep.h inclusion and to indicate the assembly requires to build in ARM mode, not to check whether thumb is enable or not. This patch fixes it by using the GCC provided '__thumb__' instead. Checked on arm-linux-gnueabihf (with -marm -march=armv6t2). * sysdeps/arm/armv6t2/memchr.S (NO_THUMB): Check for __thumb__ instead. --- ChangeLog | 3 +++ sysdeps/arm/armv6t2/memchr.S | 10 +++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/sysdeps/arm/armv6t2/memchr.S b/sysdeps/arm/armv6t2/memchr.S index bdd385b..03b7f32 100644 --- a/sysdeps/arm/armv6t2/memchr.S +++ b/sysdeps/arm/armv6t2/memchr.S @@ -42,7 +42,7 @@ .syntax unified .text -#ifdef NO_THUMB +#ifndef __thumb__ .arm #else .thumb @@ -91,7 +91,7 @@ ENTRY(memchr) 15: ldrd r4,r5, [r0],#8 -#ifndef NO_THUMB +#ifdef __thumb__ subs r6, r6, #8 #endif eor r4,r4, r1 @ Get it so that r4,r5 have 00's where the bytes match the target @@ -100,7 +100,7 @@ ENTRY(memchr) sel r4, r3, r7 @ bytes are 00 for none-00 bytes, or ff for 00 bytes - NOTE INVERSION uadd8 r5, r5, r7 @ Parallel add 0xff - sets the GE bits for anything that wasn't 0 sel r5, r4, r7 @ chained....bytes are 00 for none-00 bytes, or ff for 00 bytes - NOTE INVERSION -#ifndef NO_THUMB +#ifdef __thumb__ cbnz r5, 60f #else cmp r5, #0 @@ -120,7 +120,7 @@ ENTRY(memchr) and r2,r2,#7 @ Leave the count remaining as the number after the double words have been done 20: -#ifndef NO_THUMB +#ifdef __thumb__ cbz r2, 40f @ 0 length or hit the end already then not found #else cmp r2, #0 @@ -129,7 +129,7 @@ ENTRY(memchr) 21: @ Post aligned section, or just a short call ldrb r3,[r0],#1 -#ifndef NO_THUMB +#ifdef __thumb__ subs r2,r2,#1 eor r3,r3,r1 @ r3 = 0 if match - doesn't break flags from sub cbz r3, 50f