Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: "Maciej W. Rozycki" <macro@codesourcery.com>
To: Yao Qi <yao@codesourcery.com>
Cc: <gdb-patches@sourceware.org>
Subject: Re: [PATCH] microMIPS support
Date: Wed, 25 Apr 2012 15:57:00 -0000	[thread overview]
Message-ID: <alpine.DEB.1.10.1204251412380.19835@tp.orcam.me.uk> (raw)
In-Reply-To: <4F97DFEC.5030007@codesourcery.com>

On Wed, 25 Apr 2012, Yao Qi wrote:

> > +int
> > +mips_pc_is_micromips (struct gdbarch *gdbarch, CORE_ADDR memaddr)
> > +{
> > +  struct minimal_symbol *sym;
> > +
> > +  /* A flag indicating that this is a microMIPS function is stored by
> > +     elfread.c in the high bit of the info field.  Use this to decide
> > +     if the function is microMIPS.  Otherwise if bit 0 of the address
> > +     is set, then ELF file flags will tell if this is a microMIPS
> > +     function.  */
> > +  sym = lookup_minimal_symbol_by_pc (memaddr);
> > +  if (sym)
> > +    return msymbol_is_micromips (sym);
> > +  else
> > +    return is_micromips_addr (gdbarch, memaddr);
> > +}
> 
> Why don't we check `is_micromips_addr' first, and return early if it
> returns true?  In this way, we can avoid some symbol lookups.

 The choice of the sequence is deliberate and actually we used to do the 
checks in the opposite order for MIPS16 code until recently.  The reason 
is there is IMO no point in using the wrong ISA type where the ISA bit has 
been set incorrectly, e.g. the wrong software breakpoint instruction when 
someone says:

(gdb) break *0xdeadbeef

and the address actually refers MIPS32 code.  Also the opposite does not 
work, that is with the current arrangement the ISA bit of the MEMADDR 
argument may have been implicitly cleared elsewhere even when referencing 
a piece of compressed code and no numeric address actually used.

 I think code should behave as consistently as possible, and therefore for 
all the three ISAs any associated symbol's attribute is checked first, 
followed by checking the ISA bit specified explicitly in the address.  The 
latter case is only meant to cover addresses for which no symbol 
information of any kind could have been found.

 Does it clear your concern?

  Maciej


  reply	other threads:[~2012-04-25 15:57 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-24 21:18 Maciej W. Rozycki
2012-04-25  6:20 ` Eli Zaretskii
2012-04-26 13:54   ` Maciej W. Rozycki
2012-04-26 14:14     ` Eli Zaretskii
2012-04-26 18:03       ` Maciej W. Rozycki
2012-04-26 20:39         ` Eli Zaretskii
2012-04-27 18:16           ` Maciej W. Rozycki
2012-04-27 18:24             ` Eli Zaretskii
     [not found]               ` <alpine.DEB.1.10.1204302334520.19835@tp.orcam.me.uk>
2012-05-02 16:39                 ` Eli Zaretskii
2012-05-17 15:07                   ` Maciej W. Rozycki
2012-05-17 16:10                     ` Eli Zaretskii
2012-05-18 23:13                       ` Maciej W. Rozycki
2012-05-19  8:20                         ` Eli Zaretskii
2012-04-25 13:13 ` Yao Qi
2012-04-25 15:57   ` Maciej W. Rozycki [this message]
2012-04-25 15:54 ` Joel Brobecker
2012-04-25 17:18   ` Maciej W. Rozycki
2012-04-25 18:12     ` Joel Brobecker
2012-04-25 18:27       ` Maciej W. Rozycki
2012-04-26 18:38 ` Jan Kratochvil
2012-04-26 19:04   ` Maciej W. Rozycki
2012-04-26 19:29     ` Jan Kratochvil
2012-04-26 21:59       ` Maciej W. Rozycki
2012-04-27  7:11         ` Jan Kratochvil
2012-04-27 15:14           ` Maciej W. Rozycki
2012-04-27 15:29             ` Pedro Alves
2012-04-27 15:46               ` Maciej W. Rozycki
2012-04-27 15:54             ` Tom Tromey
2012-05-18 23:53     ` Maciej W. Rozycki
2012-05-18 21:32 ` [PATCH] microMIPS support (Linux signal trampolines) Maciej W. Rozycki
2012-05-18 22:25   ` Mark Kettenis
2012-05-21 14:33     ` Maciej W. Rozycki
2012-06-11 10:32       ` [PING][PATCH] " Maciej W. Rozycki
2014-09-28 11:12       ` [PATCH] " Maciej W. Rozycki
2014-10-06  0:46         ` [PING][PATCH] " Maciej W. Rozycki
2014-10-13 12:24           ` [PING^2][PATCH] " Maciej W. Rozycki
2014-10-20 17:01             ` [PING^3][PATCH] " Maciej W. Rozycki
2014-11-03 16:04               ` [PING^4][PATCH] " Maciej W. Rozycki
2014-11-16  8:58         ` [PATCH] " Joel Brobecker
2014-12-03 21:00           ` Maciej W. Rozycki
2012-05-18 23:47 ` [PATCH] microMIPS support Maciej W. Rozycki
2012-05-19  8:52   ` Eli Zaretskii
2012-05-22  0:07     ` Maciej W. Rozycki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.DEB.1.10.1204251412380.19835@tp.orcam.me.uk \
    --to=macro@codesourcery.com \
    --cc=gdb-patches@sourceware.org \
    --cc=yao@codesourcery.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox