Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: "Ulrich Weigand" <uweigand@de.ibm.com>
To: bergner@vnet.ibm.com (Peter Bergner)
Cc: palves@redhat.com (Pedro Alves), amodra@gmail.com (Alan Modra),
	       gdb-patches@sourceware.org,
	binutils@sourceware.org (binutils)
Subject: Re: [PATCH, RFC] Add support for choosing disassembler cpu in GDB for POWER.
Date: Fri, 07 Oct 2016 19:21:00 -0000	[thread overview]
Message-ID: <20161007192106.D516E10C1FE@oc8523832656.ibm.com> (raw)
In-Reply-To: <91e1cf79-06d8-0eff-a1a0-5665563f0054@vnet.ibm.com> from "Peter Bergner" at Oct 06, 2016 02:26:38 PM

Peter Bergner wrote:

> gdb/
> 	* gdbarch.sh (target_disassemble_init): New.
> 	* gdbarch.c: Regenerate.
> 	* gdbarch.h: Likewise.
> 	* disasm.c (gdb_disassemble_info): Call gdbarch_target_disassemble_init.
>         * rs6000-tdep.c: Include "opcode/ppc.h".
>         (gdb_disassembler_cpu): New static declaration.
>         (prospective_cpu): Likewise.
>         (gdb_rs6000_init_disassembly): New function.
>         (set_disassembler_cpu): Likewise.
>         (show_disassembler_cpu): Likewise.
> 	(rs6000_gdbarch_init): Setup callback for gdb_rs6000_init_disassembly.
>         (_initialize_rs6000_tdep): Initialize gdb_disassembler_cpu and
>         target_init_disassembly.  Setup callbacks for set_disassembler_cpu()
>         and show_disassembler_cpu().

I like this a lot better than the original patch :-)

Still some comments:

> @@ -785,6 +785,8 @@ gdb_disassemble_info (struct gdbarch *gdbarch, struct ui_file *file)
>    di.endian = gdbarch_byte_order (gdbarch);
>    di.endian_code = gdbarch_byte_order_for_code (gdbarch);
>    di.application_data = gdbarch;
> +  if (gdbarch_target_disassemble_init_p (gdbarch))
> +    gdbarch_target_disassemble_init (gdbarch, &di);
>    disassemble_init_for_target (&di);
>    return di;

There's a second use of disassemble_init_for_target, which probably needs
the same treatment.  In fact, maybe the nicest way would be to call the
callback "gdbarch_disassemble_init_for_target", with a default of simply
disassemble_init_for_target, but which targets can override to do extra
stuff before (or after) calling disassemble_init_for_target in there.
GDB common code would then just call gdbarch_disassemble_init_for_target
everywhere it currently calls disassemble_init_for_target.

> +  gdb_disassembler_cpu = strdup (PPC_DEFAULT_CPU",any");

Why do we have to know about this here in GDB?  Can't the GDB default just
be the empty (or NULL) string, and then opcodes does the defaulting
(as it does today)?

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU/Linux compilers and toolchain
  Ulrich.Weigand@de.ibm.com


  reply	other threads:[~2016-10-07 19:21 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-30  2:14 Peter Bergner
2016-09-30 17:55 ` Ulrich Weigand
2016-10-03 20:25   ` Peter Bergner
2016-10-03 22:25     ` Alan Modra
2016-10-06  3:00       ` Peter Bergner
2016-10-06  4:44         ` Alan Modra
2016-10-06  9:52         ` Pedro Alves
2016-10-06 19:26           ` Peter Bergner
2016-10-07 19:21             ` Ulrich Weigand [this message]
2016-10-07 21:01               ` Peter Bergner
2016-10-08 14:39                 ` Ulrich Weigand
2016-10-10 23:28               ` Peter Bergner
2016-10-12  8:08                 ` Ulrich Weigand
2016-10-12 10:46                   ` Pedro Alves
2016-10-11  0:09             ` Pedro Alves
2016-10-11 18:49               ` Peter Bergner
2016-10-12  8:25                 ` Ulrich Weigand
2016-10-27  0:04                   ` Peter Bergner
2016-10-27  9:40                     ` Pedro Alves
2016-10-28 13:47                       ` Peter Bergner
2016-10-28 14:10                         ` Pedro Alves
2016-10-28 14:24                           ` Peter Bergner
2016-10-28 14:30                             ` Pedro Alves
2016-10-28 14:53                               ` Peter Bergner
2016-11-03 11:01                                 ` Pedro Alves
2016-11-03 15:02                                   ` Peter Bergner
2016-11-03 15:06                                     ` Peter Bergner
2016-11-03 16:41                                     ` Ulrich Weigand
2016-11-03 16:49                                       ` Peter Bergner
2016-10-28 12:32                     ` Ulrich Weigand
2016-10-28 13:45                       ` Peter Bergner
2016-10-28 14:15                         ` Ulrich Weigand
2016-10-28 15:02                           ` Peter Bergner
2016-10-28 18:47                             ` Ulrich Weigand
2016-11-02 23:28                               ` Peter Bergner
2016-10-12 19:35                 ` Pedro Alves

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=20161007192106.D516E10C1FE@oc8523832656.ibm.com \
    --to=uweigand@de.ibm.com \
    --cc=amodra@gmail.com \
    --cc=bergner@vnet.ibm.com \
    --cc=binutils@sourceware.org \
    --cc=gdb-patches@sourceware.org \
    --cc=palves@redhat.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