From: Daniel Jacobowitz <drow@mvista.com>
To: gdb-patches@sources.redhat.com
Subject: Re: RFA/ARM: Switch mode when setting PC
Date: Sat, 17 Jan 2004 04:58:00 -0000 [thread overview]
Message-ID: <20040117045843.GA31115@nevyn.them.org> (raw)
In-Reply-To: <40083792.7020102@gnu.org> <40083424.1000102@gnu.org>
On Fri, Jan 16, 2004 at 02:12:18PM -0500, Andrew Cagney wrote:
> Or a lack of design, Arm needs to ensure that it doesn't define PC_REGNUM.
OK, I'll keep that in mind.
> >In the past we've tried to distinguish R15 from PC. This was especially
> >useful in the legacy 26-bit mode where the CPSR bits *were* in R15.
Perhaps, in that case, we should have the PC as a pseudoregister. That
would simplify a lot of arm-tdep.c. Is it possible to use the existing
ARM compiler and simulator (and newlib) in 26-bit mode without a lot of
hassle, or would it be the work of months to make it happen? I'm
reluctant to dig my fingers in too deeply if I can't test both code
paths.
> >This would probably all have been much simpler if I'd been able to
> >complete my code for handling the banked register; sadly I never got far
> >enough, and I think the code is probably too bit-rotten to be worth trying
> >to resurrect directly at this point.
>
> If there's an explicit "set_resume_address", separate to write_pc, this
> should happen:
>
> (gdb) set $r15 = 0x123
> - target sees:
> $r15=0x123
> (gdb) call foo() OR (gdb) jump foo
> - target, via "set_resume_address", sees:
> $r15=&foo
> $ps&|=<magic-bits>
>
> and significantly no other write_pc calls.
And at this point, is write_pc used for anything besides
DECR_PC_AFTER_BREAK? I would prefer to add an adjust_pc_after_break,
and then possibly rename the existing write_pc. Most of the write_pc
implementations we have currently are really set-resume-address
semantics.
On Fri, Jan 16, 2004 at 01:57:40PM -0500, Andrew Cagney wrote:
> >On Fri, Jan 16, 2004 at 09:10:40AM -0500, Daniel Jacobowitz wrote:
> >Is this patch OK (write_pc isn't deprecated yet!)? Cleaning up the
> >existing DECR_PC_AFTER_BREAK handling is going to be a touchy job, and
> >I don't really want to try it today :) I'll try to look into it later,
> >though.
> I was suggesting "two methods so that it's clear that this case only
> applies when doing a jump". This won't involve anything like
> deprecating /removing decr_pc_after_break _+ write_pc but will involve
> the addition of a new method like:
> set_resume_address (arch, targ or tpid or regs)
> that could somehow default to a legacy call to write_pc. Significantly,
> this will avoid making the changes conditional on the elimination of
> decr-pc (your concern).
>
> Why is this better? It clearly separates the [apparently] legetimate
> resume case from the decr-pc case. This in turn opens the way for the
> deprecate / delete decr-pc "write_pc" code while at the same time
> ensuring that the work can't break the arm.
Sorry, but you did not answer my question. My question was, are you
specifically objecting to this patch pending the, IMO tangentially
related, architectural cleanup?
I understand your suggested change and your reasoning for it, I just
don't understand your answer to my question.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
next prev parent reply other threads:[~2004-01-17 4:58 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-16 3:54 Daniel Jacobowitz
2004-01-16 5:43 ` Andrew Cagney
2004-01-16 14:10 ` Daniel Jacobowitz
2004-01-16 14:15 ` Richard Earnshaw
2004-01-16 14:26 ` Daniel Jacobowitz
2004-01-16 14:34 ` Richard Earnshaw
2004-01-16 14:41 ` Daniel Jacobowitz
2004-01-16 15:00 ` Richard Earnshaw
2004-01-16 15:56 ` Daniel Jacobowitz
2004-01-16 16:55 ` Richard Earnshaw
2004-01-16 17:11 ` Daniel Jacobowitz
2004-01-16 17:28 ` Richard Earnshaw
2004-01-16 19:12 ` Andrew Cagney
2004-01-16 17:32 ` Daniel Jacobowitz
2004-01-16 18:57 ` Andrew Cagney
2004-01-17 4:58 ` Daniel Jacobowitz [this message]
2004-01-17 10:49 ` Richard Earnshaw
2004-01-17 16:36 ` Andrew Cagney
2004-01-17 16:12 ` Andrew Cagney
2004-01-17 18:54 ` Daniel Jacobowitz
2004-01-17 21:59 ` Daniel Jacobowitz
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=20040117045843.GA31115@nevyn.them.org \
--to=drow@mvista.com \
--cc=gdb-patches@sources.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