From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 97413 invoked by alias); 11 Apr 2017 17:17:22 -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 96726 invoked by uid 89); 11 Apr 2017 17:17:22 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=no version=3.3.2 spammy= X-HELO: mail-wr0-f170.google.com Received: from mail-wr0-f170.google.com (HELO mail-wr0-f170.google.com) (209.85.128.170) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 11 Apr 2017 17:17:20 +0000 Received: by mail-wr0-f170.google.com with SMTP id c55so2277550wrc.3 for ; Tue, 11 Apr 2017 10:17:21 -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=kz1zxPMjWWgpAbLN872CBjYS5/fvPY5EdWHWIJST9dw=; b=QgHiAG6Zn30XY1FUlqpiYik8/M6ybq7zXJOjGL+dMlyjA8ZIJxgUwh4ICTUig6AkE2 f/sj32fFkpFCmy3JbIzML5bD7S3GhCTYHWbzSdL//dG66eStwtExPKofhLDkaXoHvqKg zlN6L3G2ARUUVKcyM0x6UhH8ZDRWsCWCkuiqvCkcanwEA5/L7T9/5B9CGh6ePONh7Tpw aFfYqAV5H8wZwQXrLmaE7yMaQJ0GMsB5eFTO/AtrQe3oqMphlp3eC63+v4vLo3buCrCI Oq0s8eaPBTKpIPq+H8MyH2WS0Vd2p6KabAgOjqgCBCrUF6obhQtJZyiFbqb9WQWNniNG fvhg== X-Gm-Message-State: AFeK/H2DIyYB54ZnJt3ddxX15xLhyt0PBbeQ9XwdvAp+GUqMqZUaPRx6w4RNAIW14yuZ1A== X-Received: by 10.223.162.222 with SMTP id t30mr41509637wra.4.1491931040229; Tue, 11 Apr 2017 10:17:20 -0700 (PDT) Received: from E107787-LIN ([194.214.185.158]) by smtp.gmail.com with ESMTPSA id m7sm3243092wmi.34.2017.04.11.10.17.19 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Tue, 11 Apr 2017 10:17:19 -0700 (PDT) From: Yao Qi To: Alan Hayward Cc: "gdb-patches\@sourceware.org" , Subject: Re: [PATCH 2/11] Add IA64_MAX_REGISTER_SIZE References: <8637dnqils.fsf@gmail.com> <90F5717F-8685-4C74-B2E4-7317AF228034@arm.com> Date: Tue, 11 Apr 2017 17:17:00 -0000 In-Reply-To: <90F5717F-8685-4C74-B2E4-7317AF228034@arm.com> (Alan Hayward's message of "Tue, 11 Apr 2017 12:47:08 +0000") Message-ID: <86pogivp7m.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-04/txt/msg00290.txt.bz2 Alan Hayward writes: > @@ -2308,8 +2305,11 @@ ia64_sigtramp_frame_prev_register (struct frame_in= fo *this_frame, > > if (addr !=3D 0) > { > - read_memory (addr, buf, register_size (gdbarch, IA64_IP_REGNUM)); > - pc =3D extract_unsigned_integer (buf, 8, byte_order); > + gdb_byte buf[8]; > + struct gdbarch *gdbarch =3D get_frame_arch (this_frame); > + enum bfd_endian byte_order =3D gdbarch_byte_order (gdbarch); > + read_memory (addr, buf, sizeof (buf)); > + pc =3D extract_unsigned_integer (buf, sizeof (buf), byte_order); I just realize that we can use read_memory_unsigned_integer. > } > pc &=3D ~0xf; > return frame_unwind_got_constant (this_frame, regnum, pc); > @@ -2570,12 +2563,11 @@ ia64_access_rse_reg (unw_addr_space_t as, unw_reg= num_t uw_regnum, > unw_word_t *val, int write, void *arg) > { > int regnum =3D ia64_uw2gdb_regnum (uw_regnum); > - unw_word_t bsp, sof, sol, cfm, psr, ip; > + ULONGEST bsp, sof, cfm, psr, ip; > struct regcache *regcache =3D (struct regcache *) arg; > struct gdbarch *gdbarch =3D get_regcache_arch (regcache); > enum bfd_endian byte_order =3D gdbarch_byte_order (gdbarch); > long new_sof, old_sof; > - gdb_byte buf[MAX_REGISTER_SIZE]; > > /* We never call any libunwind routines that need to write registers. = */ > gdb_assert (!write); > @@ -2585,10 +2577,8 @@ ia64_access_rse_reg (unw_addr_space_t as, unw_regn= um_t uw_regnum, > case UNW_REG_IP: > /* Libunwind expects to see the pc value which means the slot number > from the psr must be merged with the ip word address. */ > - regcache_cooked_read (regcache, IA64_IP_REGNUM, buf); > - ip =3D extract_unsigned_integer (buf, 8, byte_order); > - regcache_cooked_read (regcache, IA64_PSR_REGNUM, buf); > - psr =3D extract_unsigned_integer (buf, 8, byte_order); > + ip =3D get_frame_register_unsigned (this_frame, IA64_IP_REGNUM); In my last review, I suggested, regcache_cooked_read_unsigned (regcache, IA64_IP_REGNUM, &ip); but you still use get_frame_register_unsigned. There is no variable "this_frame" at all. > + psr =3D get_frame_register_unsigned (this_frame, IA64_PSR_REGNUM); > *val =3D ip | ((psr >> 41) & 0x3); > break; > --=20 Yao (=E9=BD=90=E5=B0=A7)