From: Paul Mundt <lethal@linux-sh.org>
To: Paul Brook <paul@codesourcery.com>
Cc: Vladimir Prus <vladimir@codesourcery.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] SH: Add prefi, icbi, synco
Date: Mon, 20 Oct 2008 22:00:21 +0900 [thread overview]
Message-ID: <20081020130021.GB20548@linux-sh.org> (raw)
In-Reply-To: <200810201154.21179.paul@codesourcery.com>
On Mon, Oct 20, 2008 at 11:54:20AM +0100, Paul Brook wrote:
> On Monday 20 October 2008, Paul Mundt wrote:
> > On Fri, Oct 17, 2008 at 08:56:52PM +0100, Paul Brook wrote:
> > > On Friday 17 October 2008, Vladimir Prus wrote:
> > > > This patch makes qemu recognize (and ignore), three instructions from
> > > > SH4A.
> > >
> > > Shouldn't these generate an illegal instruction exception on SH4 cpus?
> >
> > Note that all of these are SH-5 instructions, which gradually found their
> > way in to the SH-4A ISA. There are also other SH-5 instructions that have
> > found their way in to the SH-2A ISA which are not as of yet reflected in
> > SH-4A. The dependency tracking gets to be pretty ugly, as is evident in
> > binutils. In order to get this right, it would be necessary to throw ISA
> > versioning in to the CPU definition and test to figure out what to
> > support, as per the table in binutils. While this would be a good idea in
> > general, it is something that should be done as a larger follow-up to
> > these patches.
>
> I disagree. This is something that should be done right from the start. Trying
> to fix it up later is a real pain. Doing fine grained features isn't that
> hard. MIPS, sparc, arm, ppc, m68k and sparc already do this. IIRC binutils is
> only complicated because it tried to create a strict hieracy of features,
> rather than using feature bits.
>
When we do it does not matter, but it is completely unrelated from this
patch, in that there are already plenty of instructions that are specific
to a certain CPU family that we don't perform an illegal instruction
exception for. Trying to force the prefi/icbi/synco cases to rework all
of the existing instructions that aren't universal doesn't make a lot of
sense, as it is a clear incremental change of existing behaviour, rather
than a situation caused purely by the addition of these new instructions.
At a quick glance:
movca.l - SH-4 and up
movua.l - SH-4A and up
ocbi/ocbp/ocbwb - SH-4 and up
pref - SH-2A or SH-4 and up, excluding other legacy parts.
shad/shld - SH-2A or SH-3 and up.
etc, etc.
The fact that the qemu target directory is 'target-sh4' instead of
'target-sh' already makes it clear that the original patch was only
concerned with SH-4, and so therefore did not have any ISA versioning or
feature differentiation in mind. Even things like the register layout
will be different for the other CPUs.
Given that, perhaps the best solution is something like:
- Add synco/icbi/prefi
- Add ISA versioning based on the binutils inheritance list
- Rename to target-sh
These are all going to be prerequisites for fitting in other more exotic
CPUs, like the SH-2A and SH-5 also.
next prev parent reply other threads:[~2008-10-20 13:00 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-17 12:52 [Qemu-devel] [PATCH] SH: Add prefi, icbi, synco Vladimir Prus
2008-10-17 19:56 ` Paul Brook
2008-10-20 4:01 ` Paul Mundt
2008-10-20 10:54 ` Paul Brook
2008-10-20 13:00 ` Paul Mundt [this message]
2008-10-20 16:27 ` Paul Brook
2008-10-20 16:31 ` Vladimir Prus
2008-10-20 16:46 ` Paul Brook
2008-10-20 16:49 ` Paul Mundt
2008-10-20 17:07 ` Paul Brook
2008-10-20 17:15 ` Laurent Desnogues
2008-10-20 17:19 ` Paul Brook
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=20081020130021.GB20548@linux-sh.org \
--to=lethal@linux-sh.org \
--cc=paul@codesourcery.com \
--cc=qemu-devel@nongnu.org \
--cc=vladimir@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;
as well as URLs for NNTP newsgroup(s).