qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Vincent Sanders <vince@simtec.co.uk>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] Add ARM920T to ARM emulation
Date: Fri, 29 May 2009 14:23:24 +0100	[thread overview]
Message-ID: <1243603405-12989-1-git-send-email-vince@simtec.co.uk> (raw)

This adds the ARM920T to the ARM supported processor cores. It also
alters the default emulated instruction set to the version 4t set and
adds a feature flag for the v5 features.

I have used the ARM Architecture Reference Manual (version I) as the
source of the v4/v5 differences. Page 14 of the ARM-ARM ("New features
in version 5T") gives an overview of the v5 features.

The primary differences are related to the "Control and DSP
instruction extension space" range of which v4t implements only a
subset. These are described on page 144 (A3.16.3) of the ARM-ARM

Other extensions (such as preloading) were added in the old NV opcode
range and are ignored by the current emulation already.

There was some discussion of the differences between v4 and v5 with
respect to LDR behaviour manipulating the program counter when the
bottom bit of an adress is set. The ARM-ARM clearly defines such
behaviour as "unpredicatble" (section A2.4.3 page 48) where it says
"In all variants of ARMv4 and ARMv5, bits[1:0] of a value written to
R15 in ARM state must be 0b00. If they are not, the results are
UNPREDICTABLE." .

As such the emulation remains correct whatever the specific result of
such program counter manipulation. I could alter the emulation
behaviour to follow the expected physical behaviour of some version
4/5 implementations. This would complicate the code for very little
aparient gain and I have been unable to find any code which uses this
construct despite scanning the entire arm and armel repositories of
Debian.

             reply	other threads:[~2009-05-29 13:23 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-29 13:23 Vincent Sanders [this message]
2009-05-29 13:23 ` [Qemu-devel] [PATCH 1/1] Update ARM emulation to be version 4t by default Vincent Sanders
2009-05-29 21:59   ` Paul Brook
2009-05-30 10:08     ` Vincent Sanders
2009-05-29 22:05 ` [Qemu-devel] Add ARM920T to ARM emulation Paul Brook
2009-06-01 11:35   ` Jamie Lokier
2009-06-01 12:13     ` Paul Brook
2009-06-01 13:29       ` Avi Kivity
2009-06-01 13:48         ` Tristan Gingold
2009-06-01 13:58           ` Avi Kivity
2009-06-01 16:34         ` Paul Brook
2009-06-01 23:11       ` Jamie Lokier

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=1243603405-12989-1-git-send-email-vince@simtec.co.uk \
    --to=vince@simtec.co.uk \
    --cc=qemu-devel@nongnu.org \
    /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).