From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 77510 invoked by alias); 25 May 2017 11:43:58 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 75923 invoked by uid 89); 25 May 2017 11:43:57 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-11.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=ham version=3.3.2 spammy=H*RU:209.85.220.196, Hx-spam-relays-external:209.85.220.196, H*r:sk:static. X-HELO: mail-qk0-f196.google.com Received: from mail-qk0-f196.google.com (HELO mail-qk0-f196.google.com) (209.85.220.196) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 25 May 2017 11:43:55 +0000 Received: by mail-qk0-f196.google.com with SMTP id o85so29797772qkh.0 for ; Thu, 25 May 2017 04:43:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=NMLi1yoh/W3X6a9ZXgyvpI/fzFIgtHCUQzZ7iI9Ir80=; b=k1WBo7wlawte99FWO8ZSFEySla6QIrYOgBBZh4wsCjU8Fh5xDoON1T7pS822/dCilr wnO97mYTiHuGjgxnuZXc6lK7c8lRM5Zvd6MGYVQlwpBiTtYcYD6bbALGhQEvEBhTaS0l ykLdTSjWXAjTKSoAz02OJZlbKhiA+e5Pf9MO1/s4nXGhciOuAdqSaJnxPGbQWtoQ006W 10oI91CVGV6OqL+qfQL/vm++9aGw/yDa0abOR72+gmqx+WX1kqi74jpnZUR0dNtnGNBy l/hkU6BvRzf/fsVB2zWI1Cc2XVy+R6k/ycctSXdzKL53PsGNRyc10BLLXNwLYSL/D6Z0 NUKQ== X-Gm-Message-State: AODbwcCNJTblzfY2wud2L47QI/IhjpiPzH59dA2jd+YgjxsjPLxSr8ze ZryNGDOxqllY1g== X-Received: by 10.55.20.138 with SMTP id 10mr27437195qku.78.1495712637760; Thu, 25 May 2017 04:43:57 -0700 (PDT) Received: from E107787-LIN (static.42.136.251.148.clients.your-server.de. [148.251.136.42]) by smtp.gmail.com with ESMTPSA id h128sm4392721qke.43.2017.05.25.04.43.56 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Thu, 25 May 2017 04:43:57 -0700 (PDT) From: Yao Qi To: Pedro Alves Cc: Alan Hayward , "gdb-patches\@sourceware.org" , nd Subject: Re: [PATCH 3/11] Add MIPS_MAX_REGISTER_SIZE (2/4) References: <3C00280E-37C9-4C0A-9DA6-F3B9DB1A6E8F@arm.com> <86y3v7uf9j.fsf@gmail.com> <806B436F-EFA1-4200-AC54-9036D166C9B9@arm.com> <867f1m8nhm.fsf@gmail.com> <8637bx9jsw.fsf@gmail.com> <78A7E8EA-7203-44DF-B7FD-63E75A5ECEF5@arm.com> <540372d8-efc3-f842-5cac-cd813bacc3f5@redhat.com> <4F90CD36-759D-4BDA-BFEC-8DD86F44A0B7@arm.com> <40597975-9458-e9af-8915-9d303bb1ed98@redhat.com> <5A105765-C70D-413C-BB35-50BAA5FD5865@arm.com> <73b5b4f8-065b-7102-a9d8-0b909b1eb124@redhat.com> Date: Thu, 25 May 2017 11:43:00 -0000 In-Reply-To: <73b5b4f8-065b-7102-a9d8-0b909b1eb124@redhat.com> (Pedro Alves's message of "Thu, 25 May 2017 11:46:24 +0100") Message-ID: <86wp95p3ev.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2017-05/txt/msg00541.txt.bz2 Pedro Alves writes: > Those manual tests would have been perfect candidates for some > unit tests. All you'd need to do is add this at the bottom > of gdb/findvar.c: > > #if GDB_SELF_TEST > namespace selftests { > namespace findvar_tests { > > static void > run_test () > { > // Here, exercise the various code paths of copy_integer_to_size, > // calling SELF_CHECK. > } > > } // namespace findvar_test > } // namespace selftests > > #endif > > void > _initialize_findvar (void) > { > #if GDB_SELF_TEST > register_self_test (selftests::findvar_tests::run_test); > #endif > } > > It is great to have a unit test, and that is what I want to suggest. >> +/* Supply a single register. The register size might not match, so use >> + regcache->raw_supply_integer (). */ >>=20 >> static void >> mips_fbsd_supply_reg (struct regcache *regcache, int regnum, const void= *addr, >> size_t len) >> { >> - struct gdbarch *gdbarch =3D get_regcache_arch (regcache); >> - >> - if (register_size (gdbarch, regnum) =3D=3D len) >> - regcache_raw_supply (regcache, regnum, addr); >> - else >> - { >> - enum bfd_endian byte_order =3D gdbarch_byte_order (gdbarch); >> - gdb_byte buf[MAX_REGISTER_SIZE]; >> - LONGEST val; >> - >> - val =3D extract_signed_integer ((const gdb_byte *) addr, len, byt= e_order); >> - store_signed_integer (buf, register_size (gdbarch, regnum), byte_= order, >> - val); >> - regcache_raw_supply (regcache, regnum, buf); >> - } >> + regcache->raw_supply_integer (regnum, (const gdb_byte *) addr, len, t= rue); >> } > > Nice! > Can we completely remove mips_fbsd_supply_reg? and use regcache->raw_supply_integer instead? >> --- a/gdb/mips-linux-tdep.c >> +++ b/gdb/mips-linux-tdep.c >> @@ -116,13 +116,7 @@ mips_linux_get_longjmp_target (struct >> frame_info *frame, CORE_ADDR *pc) >> static void >> supply_32bit_reg (struct regcache *regcache, int regnum, const void *ad= dr) >> { >> - struct gdbarch *gdbarch =3D get_regcache_arch (regcache); >> - enum bfd_endian byte_order =3D gdbarch_byte_order (gdbarch); >> - gdb_byte buf[MAX_REGISTER_SIZE]; >> - store_signed_integer (buf, register_size (gdbarch, regnum), byte_orde= r, >> - extract_signed_integer ((const gdb_byte *) addr, 4, >> - byte_order)); >> - regcache_raw_supply (regcache, regnum, buf); >> + regcache->raw_supply_integer (regnum, (const gdb_byte *) addr, 4, tru= e); >> } > > Nice. :-) > [snip several "nice"s] > Likewise, remove supply_32bit_reg and use regcache->raw_supply_integer. --=20 Yao (=E9=BD=90=E5=B0=A7)