From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 108431 invoked by alias); 11 Oct 2016 16:22:20 -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 108405 invoked by uid 89); 11 Oct 2016 16:22:20 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=no version=3.3.2 spammy=HX-Received:10.66.132.108, 5576 X-HELO: mail-pa0-f67.google.com Received: from mail-pa0-f67.google.com (HELO mail-pa0-f67.google.com) (209.85.220.67) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 11 Oct 2016 16:22:09 +0000 Received: by mail-pa0-f67.google.com with SMTP id rw4so1900762pab.3 for ; Tue, 11 Oct 2016 09:22:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=A62sxaRyuSVqUtQkbpkFWD/fnHqK/9HyDiR5pyZAXCU=; b=GfyG4CKeGQeeJqYcCM0lD6Fh4OfPIOpaCvRw0YxDNA/dvytDhg1/oxgjOgedCAKf5m CdUk8yn5nNyt277dUOTdqUwwRbo2Z2H6zxm545gifYcpA1TsVQm9jX4pQq8g9m1xaHsL ohlO+Zrda5PzLiF+PfKZw1DVAcoF3JNVru2h6wSNKpP4MLilSfPbyySTCD9ZUkamjv4k k2E9tnhp5O55g/d2Z/QEUh1+pcXZ1bpNpsEKxcwO0N7uz1qCWZ49FMx/3gDwfMWMeos4 qlZdgJQXP+1jquMlVW/4c1FB1mdfhvWO3Wzod1k+fu3O+kBVzrFNzb+TH364ERmCQVtJ EUbQ== X-Gm-Message-State: AA6/9RlXamkOcz073VYSAT75LaQKdBjopqmjrlXfJs4Tr0QZdFWkixotYaZrwIob+RU9Ww== X-Received: by 10.66.132.108 with SMTP id ot12mr8040098pab.157.1476202928500; Tue, 11 Oct 2016 09:22:08 -0700 (PDT) Received: from E107787-LIN (gcc1-power7.osuosl.org. [140.211.15.137]) by smtp.gmail.com with ESMTPSA id b88sm5384049pfe.72.2016.10.11.09.22.05 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Tue, 11 Oct 2016 09:22:07 -0700 (PDT) From: Yao Qi To: Anton Kolesov Cc: gdb-patches@sourceware.org, Francois Bedard Subject: Re: [PATCH 2/3] arc: Add evaluation of long jump targets References: <1475843870-11449-1-git-send-email-Anton.Kolesov@synopsys.com> <1475843870-11449-2-git-send-email-Anton.Kolesov@synopsys.com> Date: Tue, 11 Oct 2016 16:22:00 -0000 In-Reply-To: <1475843870-11449-2-git-send-email-Anton.Kolesov@synopsys.com> (Anton Kolesov's message of "Fri, 7 Oct 2016 15:37:49 +0300") Message-ID: <8660oyamac.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: 2016-10/txt/msg00264.txt.bz2 Anton Kolesov writes: > Standard get_longjmp_target implementation, similar to what is in arm-tde= p.c. > Actual value of jb_pc should be set in init_osabi methods of particular O= S/ABI > implementations. > Patch is good to me, two nits below, > gdb/ChangeLog: > > * arc-tdep.h (gdbarch_tdep): Add jb_pc. * arc-tdep.h (struct gdbarch_tdep) : New field. > * arc-tdep.c (arc_get_longjmp_target): New function. > (arc_gdbarch_init): Set get_longjmp_target if jb_pc is non-negative. > (arc_dump_tdep): Print jb_pc. > --- > gdb/arc-tdep.c | 36 +++++++++++++++++++++++++++++++++++- > gdb/arc-tdep.h | 3 +++ > 2 files changed, 38 insertions(+), 1 deletion(-) > > diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c > index 58de8e9..bc8bb98 100644 > --- a/gdb/arc-tdep.c > +++ b/gdb/arc-tdep.c > @@ -557,6 +557,34 @@ arc_store_return_value (struct gdbarch *gdbarch, str= uct type *type, > error (_("arc_store_return_value: type length too large.")); > } >=20=20 > +/* Implement the "get_longjmp_target" gdbarch method. > + > + Detemine the address the longjmp will jump to. We need to use the fr= ame > + info to get the register pointing to the jmp_buf, then extract the PC= from > + that. Since jmp_buf is the first argument to longjmp () it will be i= n r0. > + Where we then go depends on the OS - OS/ABI initialization should set= offset > + from jmp_buf start to the stored PC location. */ > + I don't see any extra information these comments have, so the first sentence is enough, IMO. /* Implement the "get_longjmp_target" gdbarch method. */ > +static int > +arc_get_longjmp_target (struct frame_info *frame, CORE_ADDR *pc) > +{ --=20 Yao (=E9=BD=90=E5=B0=A7)