From patchwork Thu Aug 3 11:47:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Modra X-Patchwork-Id: 130515 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f41:0:b0:3e4:2afc:c1 with SMTP id v1csp1089699vqx; Thu, 3 Aug 2023 04:49:13 -0700 (PDT) X-Google-Smtp-Source: APBJJlGhymvU08c0efKvpI41AC6WcJcTM3Lp7A9Z2TBfIuTbPzpzDh3GMtgOQn+EDDK5Gpj0J3ue X-Received: by 2002:a17:906:530b:b0:99b:f8ab:f68b with SMTP id h11-20020a170906530b00b0099bf8abf68bmr7232249ejo.19.1691063352794; Thu, 03 Aug 2023 04:49:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691063352; cv=none; d=google.com; s=arc-20160816; b=ET1JbYgjkQsjULrjF6ATXeh/r+jvlejR/V8FHyZUfUZqEBUxlNDLfNbmLmmRXMoMsh fhZHeuPMjpB4paftWsd90d/fyLaxykpeyq1e6qY5upLUMK7eLEuOUeHe4q4oqOsZP0HF w3akmNCBnfk0stk/azfGZ19nT2Zs3f3Do1zqekh/wOMkBfZcB/9fAUkY8ZUtBdxHyoJo DFuKqde4ammqzs7/f+9cV5LmHSgmDmaqtH/psZTi3ASluyf6TYdK9N+RFGludxNvbXVH mSKuwps02GwUHcOF3zpKfiz/UaeItqAOl/0z9sWwgnhBaVG78wf3dV4F5MezCckg3sBv 6IPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-disposition:mime-version:message-id:subject:to:date :dmarc-filter:delivered-to:dkim-signature:dkim-filter; bh=pfU0PCSJwItTVtsHuBdmdNlLVxz6CnrFVzACeZpkkm4=; fh=HNIqzTA9Dp00ovCAyCdXfuEvWDT00OlFxFRPLybXRis=; b=eCY2h8c2R8FS+WN0EC3f9rQIXFmOWFTKYvXmQwcxUTzHOEOou/Fx57aSKBoe+nHlnn uwx2gT8l2oXKrbLLk3zJBBSwDA5tCw7VGcAaDSYTccnYz/knZMq2yEnvQBy1vAPWljlO ftEnFR6anDuhSV4e6WEd2ob8yoWRLoBD6k1SqOi7HSAditCv345oQmgWjeWQPD9rtaEs dpiTAkFFfw9o+NsCOb7RuRYMLYBRymrtIWbFfi6iMwvy5fGowTMR77kaF1EeU/tRYmeL bYWQAsRDoiVYSuM0y0KBtHCKniOfjvYvj09n50p3hmY4YJRGwahUrO/YGT/J0NCGvJJs j8hw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=Yq1mP93m; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id k17-20020a1709061c1100b00991b774b3aesi1562140ejg.652.2023.08.03.04.49.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Aug 2023 04:49:12 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=Yq1mP93m; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 40E6D3853D30 for ; Thu, 3 Aug 2023 11:47:25 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 40E6D3853D30 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1691063245; bh=pfU0PCSJwItTVtsHuBdmdNlLVxz6CnrFVzACeZpkkm4=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=Yq1mP93mMsZTGZtrhaGqskDO7lrgC5PArEKgxWJ0x1eFlUWTIBU3wZYmCTjdV+otp WPqteb6yGmiEGwyjw4QaF+ADeW8dorK9R2h4922zXhhobvT+H8wbBieBt2j/tsmq7/ kAmGVc57CVLgkBPjiSMlf3mierS9CoH/12lTsy08= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-pf1-x433.google.com (mail-pf1-x433.google.com [IPv6:2607:f8b0:4864:20::433]) by sourceware.org (Postfix) with ESMTPS id 3D1083876053 for ; Thu, 3 Aug 2023 11:47:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3D1083876053 Received: by mail-pf1-x433.google.com with SMTP id d2e1a72fcca58-686f8614ce5so764003b3a.3 for ; Thu, 03 Aug 2023 04:47:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691063235; x=1691668035; h=content-disposition:mime-version:message-id:subject:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=pfU0PCSJwItTVtsHuBdmdNlLVxz6CnrFVzACeZpkkm4=; b=bEpAdqHRwy+9jDjtRvoWUytKJ8VQ0c4YYPsPwrOUMC29NkOjkbSxhbBz1h/zlWMoAM sL81RqrGFgjV+PDg8OL4voen5gK1ZT5RDp0TCOPXgnlVan3PsZvoCd56HfH3GV3t66Xa +mPbocoE8flQkuLm7+7pp0jaVtptR2VHstz6AzrzIXpozB1Tq+F5pR7lRhqdWSdvFHaC XBKWtU/EHGqeFUdr0rMUe2Kat0it9yKhfV1XcgDOaJewNPTe1tzeNLir9+7CPxkfms+b 7uVLwWNcUZbJksUgfz/KH9KP96v3UusebmS2OjwJPh1zIPNBwt6ffKO4gl0ZaoeQz8KE 4iHA== X-Gm-Message-State: ABy/qLbXI04LqAhl9uEH9wEgg3BZeHMjCUX2oA/Kt4J7ZB+1LAtXjXow KFdjSvdd2DF3qhUgSMxYYC8QeUWGB3Q= X-Received: by 2002:a05:6a20:8e24:b0:134:76f6:e9e2 with SMTP id y36-20020a056a208e2400b0013476f6e9e2mr24205545pzj.58.1691063234669; Thu, 03 Aug 2023 04:47:14 -0700 (PDT) Received: from squeak.grove.modra.org (158.106.96.58.static.exetel.com.au. [58.96.106.158]) by smtp.gmail.com with ESMTPSA id i11-20020a639d0b000000b0055387ffef10sm13131924pgd.24.2023.08.03.04.47.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Aug 2023 04:47:14 -0700 (PDT) Received: by squeak.grove.modra.org (Postfix, from userid 1000) id 9C3AD11427AD; Thu, 3 Aug 2023 21:17:11 +0930 (ACST) Date: Thu, 3 Aug 2023 21:17:11 +0930 To: binutils@sourceware.org Subject: cris: sprintf optimisation Message-ID: MIME-Version: 1.0 Content-Disposition: inline X-Spam-Status: No, score=-3034.4 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, T_SCC_BODY_TEXT_LINE 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: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alan Modra via Binutils From: Alan Modra Reply-To: Alan Modra Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773208446191632423 X-GMAIL-MSGID: 1773208446191632423 Since I was poking at cris-dis.c to avoid the sanitizer warning, I figure I might as well make use of stpcpy and sprintf return value in other places in this file. * cris-dis.c (format_hex): Use sprintf return value. (format_reg): Use stpcpy and sprintf return, avoiding strlen. (format_sup_reg): Likewise. diff --git a/opcodes/cris-dis.c b/opcodes/cris-dis.c index 681fccf0dca..27a7003188e 100644 --- a/opcodes/cris-dis.c +++ b/opcodes/cris-dis.c @@ -563,13 +563,11 @@ format_hex (unsigned long number, /* Truncate negative numbers on >32-bit hosts. */ number &= 0xffffffff; - sprintf (outbuffer, "0x%lx", number); - /* Save this value for the "case" support. */ if (TRACE_CASE) last_immediate = number; - return outbuffer + strlen (outbuffer); + return outbuffer + sprintf (outbuffer, "0x%lx", number); } /* Format number as decimal into outbuffer. Parameter signedp says @@ -588,11 +586,9 @@ format_dec (long number, char *outbuffer, int signedp) static char * format_reg (struct cris_disasm_data *disdata, int regno, - char *outbuffer_start, + char *outbuffer, bool with_reg_prefix) { - char *outbuffer = outbuffer_start; - if (with_reg_prefix) *outbuffer++ = REGISTER_PREFIX_CHAR; @@ -601,31 +597,30 @@ format_reg (struct cris_disasm_data *disdata, case 15: /* For v32, there is no context in which we output PC. */ if (disdata->distype == cris_dis_v32) - strcpy (outbuffer, "acr"); + outbuffer = stpcpy (outbuffer, "acr"); else - strcpy (outbuffer, "pc"); + outbuffer = stpcpy (outbuffer, "pc"); break; case 14: - strcpy (outbuffer, "sp"); + outbuffer = stpcpy (outbuffer, "sp"); break; default: - sprintf (outbuffer, "r%d", regno); + outbuffer += sprintf (outbuffer, "r%d", regno); break; } - return outbuffer_start + strlen (outbuffer_start); + return outbuffer; } /* Format the name of a support register into outbuffer. */ static char * format_sup_reg (unsigned int regno, - char *outbuffer_start, + char *outbuffer, bool with_reg_prefix) { - char *outbuffer = outbuffer_start; int i; if (with_reg_prefix) @@ -633,15 +628,11 @@ format_sup_reg (unsigned int regno, for (i = 0; cris_support_regs[i].name != NULL; i++) if (cris_support_regs[i].number == regno) - { - sprintf (outbuffer, "%s", cris_support_regs[i].name); - return outbuffer_start + strlen (outbuffer_start); - } + return stpcpy (outbuffer, cris_support_regs[i].name); /* There's supposed to be register names covering all numbers, though some may be generic names. */ - sprintf (outbuffer, "format_sup_reg-BUG"); - return outbuffer_start + strlen (outbuffer_start); + return stpcpy (outbuffer, "format_sup_reg-BUG"); } /* Return the length of an instruction. */