Message ID | 20250409064701.3435-12-marlene.fally@gmail.com |
---|---|
State | New |
Headers |
Return-Path: <newlib-bounces~patchwork=sourceware.org@sourceware.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C7E16384F02D for <patchwork@sourceware.org>; Wed, 9 Apr 2025 06:54:54 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C7E16384F02D Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=M2m6fDBf X-Original-To: newlib@sourceware.org Delivered-To: newlib@sourceware.org Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com [IPv6:2a00:1450:4864:20::62a]) by sourceware.org (Postfix) with ESMTPS id 7A72D384DEE6 for <newlib@sourceware.org>; Wed, 9 Apr 2025 06:47:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7A72D384DEE6 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 7A72D384DEE6 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::62a ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1744181240; cv=none; b=GTvuCKetR54uDb3enhi/6cyT7BM0GgBqXp7nnfF2E1oq4iS8zQCG5GjJe1W+/TiOGpe41cMuMz8Cuu+XgdbP4+VcUTnqYnyIdWYjGTe1K7Jahx0LAMBzhY8nUWU1Api3jVMXCr7phYHSetu2jQzz2jCHHGFP5Vcot/StdSaUfN0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1744181240; c=relaxed/simple; bh=qrgqNGl2Sk1sOUuXgMGEBYyrwfpJBScBXiDlSHtLcBk=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=V7i5HPk8Nvdt8gn7s6zmrnS34Ur4r4GQDUKpD/L3Ps9dfUyXVGyAtN2ZvLvxFcPnjFEj3JswsF0KIobmH5iUSNyA8TG6NnXE34+7N/R+fZu0UcysBhI0VU80eZYPYkzAy2keTTifNb9Ccd8Jwr11bsYQev3x68tnRFdVBFjVw0c= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7A72D384DEE6 Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-ab78e6edb99so924057766b.2 for <newlib@sourceware.org>; Tue, 08 Apr 2025 23:47:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744181239; x=1744786039; darn=sourceware.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VpZk5YdueV5bDbBnl0WSdXnESI/j8dFamj2x3XYJtaI=; b=M2m6fDBfijSe7zrEMzd2vNfwrGYJkJnQGz0MJW07KSrt+nkrC9uJ21Wc2XMFx8sWmu Z/BVt6ZKKxdiofkxqCdrhX6oLUZ5AUFS2VsPmndrpZcTzOgnq7FMB5tWaff5nwf0qUH0 k7ToV3F/rCa3wz8IIkXtrpCw6V1h9PzvrOuftH281zGxptcke/eLZCG8DX3q2dxgOgDk q5OwF5mGRDUQ4axYmL2JJSN/WF4aYraiXdih2MiQSFibvEMAtuHAm4AIJR7WwFpvo1BX LDAZfVLvABTtsLk2U+ibdoJM+HvrlVjnewl0ymTRTCoC9iUo/DBBkYCIzC2gsPmUgCzi 7cSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744181239; x=1744786039; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VpZk5YdueV5bDbBnl0WSdXnESI/j8dFamj2x3XYJtaI=; b=P+fAoSQWy1yJAw5fMt1mrxH5Zr5o9cgnCmE5LE1onKM1IZDYACW6SQUlZqhxp5w2FC 76kUP0oTHVBYnS6rXrduVX3mMAhIC2/5rHgS+1Hnkxyfmpd96g1NiLgW79dtgklW26gO 6m/SS6xGtC5T/Q6BtVcdXPbjm7Rh+/Uj+6OQRs7Eoxc+UqGS8JX5P743hWyps6/hhYcj WNHKlD7wxyWGCXxoV5z6OBBVogk40T8AjLXhhv7Uj29XHH0zqZYUyc5u/kkQKuayQYAD ny3vlc7v1Y//I6Kxpv6sxylywKOM3c3TqWZ7IwXjD9W/t5VmJc0AtodklmSeqmRe97MX ja/A== X-Gm-Message-State: AOJu0YwC/EnSevhLAhgQfkaSIC7B9uCy9Mg7lt1wUNVOfhYKrd+oHbIv /g8b2xKz4is4yDh8oWR+00j1RZQPjAYjywOc/r+kyPhy/pHPacT93N09eTOgoJo= X-Gm-Gg: ASbGncvF+5jROG9ZTOUcOs4jpoTynzU8PZng0Z95XOjgODKMpqIrr02I47NgJ3wkRj9 QYeLeU7q8MlNT+8uL7r10qfZnGApBzzaIiY10E2CaD7Pl4IWiMsV+Cfp+KRSsRU0N6g3igeGx7R TiyQ0NC1fgnZB1eS1qsuqGyzz6Qb3g3HbbetYJMdrP1ih99Xqz5VADdvJ4rKmO+GK0QLwJ0l2Vd p2I2YOwMmvp54g0l50GYeVJRl1xF0edmpFeYmDpkX6Papzpfhs/9SOZ9wYMXASX1Zr/2Df0KpWg DtBvRxmuj6T1bQDU47ZVSY7VR2rLL7bXyHENuzdcB8dmSUElUD2n+of4gTQ= X-Google-Smtp-Source: AGHT+IFJdBltp/yTxrgUyUvegHNF6gAk4f3OV0ZwsMIAkwpKbZxNb8k3AGE+q1Hcf9PCIFmcI7DpgA== X-Received: by 2002:a17:907:9816:b0:ac7:3457:720 with SMTP id a640c23a62f3a-aca9b65dc8bmr137665866b.15.1744181238975; Tue, 08 Apr 2025 23:47:18 -0700 (PDT) Received: from localhost.localdomain ([2001:4bc9:a46:d00f:b073:3e3:923:aedd]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5f2fbc2cf69sm318413a12.37.2025.04.08.23.47.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Apr 2025 23:47:18 -0700 (PDT) From: m fally <marlene.fally@gmail.com> To: newlib@sourceware.org Cc: puranikvinit <kvp933.vinit@gmail.com>, Christian Herber <christian.herber@oss.nxp.com> Subject: [PATCH 11/12] RISC-V: strcmp() size optimized version: Use compressed registers Date: Wed, 9 Apr 2025 08:47:00 +0200 Message-ID: <20250409064701.3435-12-marlene.fally@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250409064701.3435-1-marlene.fally@gmail.com> References: <20250409064701.3435-1-marlene.fally@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Newlib mailing list <newlib.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/newlib>, <mailto:newlib-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/newlib/> List-Post: <mailto:newlib@sourceware.org> List-Help: <mailto:newlib-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/newlib>, <mailto:newlib-request@sourceware.org?subject=subscribe> Errors-To: newlib-bounces~patchwork=sourceware.org@sourceware.org |
Series |
newlib: RISC-V: Optimize memory and string functions for code size
|
|
Commit Message
m fally
April 9, 2025, 6:47 a.m. UTC
From: puranikvinit <kvp933.vinit@gmail.com> Swap uncompressed registers with compressed registers. Move the li instruction downwards, so t2 can be replaced with a5. Reviewed-by: Christian Herber <christian.herber@oss.nxp.com> Signed-off-by: puranikvinit <kvp933.vinit@gmail.com> --- newlib/libc/machine/riscv/strcmp.S | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)
Comments
That's the optimized for performance path, so I would prefer to keep the li there, otherwise we will increase 5/3 instruction count per loop on RV32/RV64. On Wed, Apr 9, 2025 at 2:54 PM m fally <marlene.fally@gmail.com> wrote: > > From: puranikvinit <kvp933.vinit@gmail.com> > > Swap uncompressed registers with compressed registers. Move the > li instruction downwards, so t2 can be replaced with a5. > > Reviewed-by: Christian Herber <christian.herber@oss.nxp.com> > Signed-off-by: puranikvinit <kvp933.vinit@gmail.com> > --- > newlib/libc/machine/riscv/strcmp.S | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/newlib/libc/machine/riscv/strcmp.S b/newlib/libc/machine/riscv/strcmp.S > index cc29b7b8b..b49569db5 100644 > --- a/newlib/libc/machine/riscv/strcmp.S > +++ b/newlib/libc/machine/riscv/strcmp.S > @@ -30,8 +30,6 @@ strcmp: > > .size strcmp, .-strcmp > #else > - li t2, -1 > - > #if !(__riscv_misaligned_slow || __riscv_misaligned_fast) > or a4, a0, a1 > and a4, a4, SZREG-1 > @@ -48,12 +46,13 @@ strcmp: > REG_L a2, \i*SZREG(a0) > REG_L a3, \i*SZREG(a1) > > - and t0, a2, a5 > - or t1, a2, a5 > - add t0, t0, a5 > - or t0, t0, t1 > + and a4, a2, a5 > + or t0, a2, a5 > + add a4, a4, a5 > + or a4, a4, t0 > > - bne t0, t2, .Lnull\i > + li a5, -1 > + bne a4, a5, .Lnull\i > .if \i+1-\n > bne a2, a3, .Lmismatch > .else > -- > 2.49.0 >
diff --git a/newlib/libc/machine/riscv/strcmp.S b/newlib/libc/machine/riscv/strcmp.S index cc29b7b8b..b49569db5 100644 --- a/newlib/libc/machine/riscv/strcmp.S +++ b/newlib/libc/machine/riscv/strcmp.S @@ -30,8 +30,6 @@ strcmp: .size strcmp, .-strcmp #else - li t2, -1 - #if !(__riscv_misaligned_slow || __riscv_misaligned_fast) or a4, a0, a1 and a4, a4, SZREG-1 @@ -48,12 +46,13 @@ strcmp: REG_L a2, \i*SZREG(a0) REG_L a3, \i*SZREG(a1) - and t0, a2, a5 - or t1, a2, a5 - add t0, t0, a5 - or t0, t0, t1 + and a4, a2, a5 + or t0, a2, a5 + add a4, a4, a5 + or a4, a4, t0 - bne t0, t2, .Lnull\i + li a5, -1 + bne a4, a5, .Lnull\i .if \i+1-\n bne a2, a3, .Lmismatch .else