From: Daniel Jacobowitz <drow@mvista.com>
To: Richard.Earnshaw@arm.com
Cc: Andrew Cagney <cagney@gnu.org>,
gdb-patches@sources.redhat.com, rearnsha@arm.com
Subject: Re: RFA/ARM: Switch mode when setting PC
Date: Fri, 16 Jan 2004 15:56:00 -0000 [thread overview]
Message-ID: <20040116155641.GA30811@nevyn.them.org> (raw)
In-Reply-To: <200401161459.i0GExws07052@pc960.cambridge.arm.com>
On Fri, Jan 16, 2004 at 02:59:58PM +0000, Richard Earnshaw wrote:
> Sure, but I think that is just more lossage that has been introduced after
> the ARMulator was released by ARM. Remember that the code that was
> released didn't have any Thumb support at all, that has all been added at
> a later date. So the fact that ARMul_SetPC doesn't correctly update the
OK, I didn't know that.
> Thumb bit is also a bug. There's no reason why it shouldn't (and, AFAICT,
> every reason why it should). Then it would be possible to execute an
> image where even the first instruction was in Thumb state.
It's already possible; you have to set the CPSR by hand, though. Am I
missing something?
> So, I still think that wrapper.c should be using ARMul_SetPC to update
> R15, which should then be correctly managing the Thumb bit in the CPSR.
> Note that ARMul_SetPC is only called from wrapper.c and armrdi.c, the two
> interfaces to the simulator. So there's no chance that fixing this will
> break normal free-running simulation.
>
> However, there are other changes (hacks) in the main loop that were
> introduced to overcome the fact that ARMul_SetPC wasn't being used, these
> may have to be tracked down and fixed.
I guess I just see this differently. The existing Linux ptrace
interface also predates Thumb, so it's not surprising that it just
writes what you give it into the PC register. But I can't see any
reason why I should change that. The remote protocol is a very
low-level protocol; the CPSR and PC are separate writeable registers,
and I would find it extremely surprising if the sequence:
read CPSR
read PC
write PC
read CPSR
could return two different CPSR values.
Here's what I would find even more surprising. The sequence:
read PC
write same value to PC
would suddenly switch me out of Thumb mode, since the bit is cleared in
the PC! This would break _all_ uses of the interface (either the sim
interface or the ptrace interface) in Thumb mode. Right now there are
only problems if you are deliberately trying to mode switch.
In short, I think writing the PC should not change the CPSR, and if the
client wants to change the mode they should do it explicitly.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
next prev parent reply other threads:[~2004-01-16 15:56 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 [this message]
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
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=20040116155641.GA30811@nevyn.them.org \
--to=drow@mvista.com \
--cc=Richard.Earnshaw@arm.com \
--cc=cagney@gnu.org \
--cc=gdb-patches@sources.redhat.com \
--cc=rearnsha@arm.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