qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Add ARM920T to ARM emulation


From: Vincent Sanders
Subject: [Qemu-devel] Add ARM920T to ARM emulation
Date: Fri, 29 May 2009 14:23:24 +0100

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 via email to

[Prev in Thread] Current Thread [Next in Thread]