History log of /gem5/src/arch/arm/miscregs.hh
Revision Date Author Comments
# 14242:076b215de8d4 29-Aug-2019 Giacomo Travaglini <giacomo.travaglini@arm.com>

arch-arm: Add explicit AArch64 MiscReg banking

Change-Id: I89836d14491a51b1573f45c8012e3ad12b107d24
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/20623
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>


# 14128:6ed23d07d0d1 28-Jul-2019 Giacomo Travaglini <giacomo.travaglini@arm.com>

arch-arm: Implement ARMv8.1-PAN, Privileged access never

ARMv8.1-PAN adds a new bit to PSTATE. When the value of this PAN state
bit is 1, any privileged data access from EL1 or EL2 to a virtual memory
address that is accessible at EL0 generates a Permission fault.
This feature is mandatory in ARMv8.1 implementations.
This feature is supported in AArch64 and AArch32 states.
The ID_AA64MMFR1_EL1.PAN, ID_MMFR3_EL1.PAN, and ID_MMFR3.PAN fields
identify the support for ARMv8.1-PAN.

Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Change-Id: I94a76311711739dd2394c72944d88ba9321fd159
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19729
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>


# 13759:9941fca869a9 16-Oct-2018 Giacomo Gabrielli <giacomo.gabrielli@arm.com>

arch-arm,cpu: Add initial support for Arm SVE

This changeset adds initial support for the Arm Scalable Vector Extension
(SVE) by implementing:
- support for most data-processing instructions (no loads/stores yet);
- basic system-level support.

Additional authors:
- Javier Setoain <javier.setoain@arm.com>
- Gabor Dozsa <gabor.dozsa@arm.com>
- Giacomo Travaglini <giacomo.travaglini@arm.com>

Thanks to Pau Cabre for his contribution of bugfixes.

Change-Id: I1808b5ff55b401777eeb9b99c9a1129e0d527709
Signed-off-by: Giacomo Gabrielli <giacomo.gabrielli@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/13515
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>


# 13531:e6f1bf55d038 11-Oct-2018 Jairo Balart <jairo.balart@metempsy.com>

dev-arm: Add a GICv3 model

Change-Id: Ib0067fc743f84ff7be9f12d2fc33ddf63736bdd1
Reviewed-on: https://gem5-review.googlesource.com/c/13436
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>


# 13392:a292af6523cc 31-Oct-2018 Giacomo Travaglini <giacomo.travaglini@arm.com>

arch-arm: Remove MISCREG commented numbers

Having an enum number might be useful in case we wanted to know how many
miscregs we have, but on the other hand it makes it tedious to update
the register list, since every commented number must be bumped. This
patch is removing the comments holding the MISCREG numbers

Change-Id: Ic5aba93885e4b8d6cb3bd6a4c49900b9e5474276
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/13996
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>


# 13116:d3c3e2533928 25-Sep-2018 Giacomo Travaglini <giacomo.travaglini@arm.com>

arch-arm: Implement AArch64 ID_AA64MMFR2_EL1 register

This patch implements AArch64 Memory Model Feature Register 2
(from ARMv8.2)

Change-Id: I16d9acaf620fac6d1206e208bd143daec1657daf
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/13066
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>


# 13115:e056f29e1994 25-Sep-2018 Giacomo Travaglini <giacomo.travaglini@arm.com>

arch-arm: Move MiscReg BitUnions into a separate header file

As the number of MiscRegs increases there is the need of a cleaner
header file; this patch is separating miscreg.[cc,hh] where the miscreg
decoding/utility functions are defined/declared from the MiscReg
register types (BitUnion).

Change-Id: I815f53b117b50e47f93aa13d78356ef09d2a2541
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/13065
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>


# 13019:3fa5ab820fa8 04-Sep-2018 Anouk Van Laer <anouk.vanlaer@arm.com>

arch-arm: Correction for address size in EL1&0 translation

When doing EL0/1 translation in stage2, the
physical address size will be defined by the
hypervisor (via VTCR_EL2.ps, not TCR.ips).

See D10.2.121 of the ARM ARM.

Change-Id: Ic7df97c0f5950a648f7408cde3955a640b562c1d
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/12552
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>


# 12816:9e9bd9e6e206 17-May-2018 Giacomo Travaglini <giacomo.travaglini@arm.com>

arch-arm: Introduce ARMv8.1 Virtual Timer System Registers

Adding CNTHV_CTL_EL2, CNTHV_CVAL_EL2, CNTHV_TVAL_EL2 System Registers
into the decode tree. They are currently implemented as a generic timer
and produces a warning if accessed.

Change-Id: I1a23035d67f95eeac49d890283e9a0d58426d504
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/11592
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>


# 12815:bf1db9797e73 14-May-2018 Giacomo Travaglini <giacomo.travaglini@arm.com>

arch-arm: Introduce RAS System Registers

Adding RAS Extension System Registers into the decode tree. They are
currently unimplemented and produce a warning (not failure) if accessed.

Change-Id: I4baeded822c9582a2cb9d5277409b029eb00a962
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/11591
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>


# 12801:51f4f0331c9d 27-Jun-2018 Andreas Sandberg <andreas.sandberg@arm.com>

arch-arm: Fix incorrect t{0,1}sz field in TTBCR

The t0sz and t1sz fields in TTBCR only are only three bits wide unlike
aarch64 which has a 6-bit wide field. The higher bits of the
aarch64-equivalent should be treated as RES0.

Change-Id: I60df73105c34500c0348a44a491c117e9b28f18f
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/11589
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>


# 12762:f73d3a4aaf03 30-Apr-2018 Giacomo Travaglini <giacomo.travaglini@arm.com>

arch-arm: Read APSR in User Mode

This patch substitutes reads to the CPSR in user mode (MRS CPSR) to
reads to APSR (Application Program Status Register).
This is the user level alias for the CPSR. The APSR is a subset of the
CPSR.

Change-Id: I18a70693aef6fd305a4c4cb3c6f81f331bc60a2d
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/10602
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>


# 12713:8bd811411ed7 09-May-2018 Giacomo Travaglini <giacomo.travaglini@arm.com>

arch-arm: Remove unusued MISCREG_A64_UNIMPL

In case the decoder fails to find a suitable MiscReg during a MSR/MRS
in AArch64, MISCREG_UNKNOWN is used, so there is no need for an extra
MISCREG_A64_UNIMPL register.

Change-Id: I7c709fc554e554b39d765dffb7ceb90e33b7c15f
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/10503
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>


# 12708:251244beea94 09-Apr-2018 Giacomo Travaglini <giacomo.travaglini@arm.com>

arch-arm: Add E2H bit to HCR_EL2 System register

This patch adds the EL2 Host bit to the HCR_EL2 register. Enables a
configuration where a Host Operating System is running in EL2, and the
Host Operating System's applications are running in EL0.

Change-Id: I92d21ed9f8958c58f135dca1b6a97460ba4c02f9
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/10381
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>


# 12675:f3439303feb4 17-Apr-2018 Giacomo Travaglini <giacomo.travaglini@arm.com>

arch-arm: Add ARMv8.1 TTBR1_EL2 register

This patch adds ARMv8.1 TTBR1_EL2 register into the decodeAArch64SysReg
table, but stil leaving it unimplemented (Accessing it through MSR/MRS
causes an exception)

Change-Id: I463b86cc544233aa1ee5b2fcba689d6b9f2a874b
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/10063
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>


# 12530:ab63172c4fbe 24-Jan-2018 Giacomo Travaglini <giacomo.travaglini@arm.com>

arch-arm: IMPLEMENTATION DEFINED register

A new pseudo register has been added to the Misc pool. It is the
implementation defined register. This kinds of registers are covered by
the architecture and must be treated differently than UNIMPLEMENTED
registers: their access can be trapped to EL2 (See HCR.TIDCP bit in the
arm arm).
Some previously undecoded registers in c9,c10,c11 have now this register
type.

Change-Id: Ibfc35982470b9dea0ecf39aaa6b1012a21852f53
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/7922
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>


# 12529:d110a01d2689 24-Jan-2018 Giacomo Travaglini <giacomo.travaglini@arm.com>

arch-arm: Arch regs and pseudo regs distinction

A new identifier has been introduced: NUM_PHYS_MISCREGS, which is used
as a boundary for the number of physical (real) Misc registers in the
system. Pseudo registers (like CP15_UNIMPL) have been moved after the
NUM_PHYS_MISCREGS identifier, so that their enum number is
(NUM_PHYS_MISCREGS < number < NUM_MISCREGS). Moving away those
registers has created some free slots that can be used for future Misc
register implementation.
SERIALIZE and UNSERIALIZE now only save/restore PHYSICAL Misc Registers.
This allows us to define as many pseudo registers as we want without
being concerned about checkpoint compatibility.

Change-Id: I7e297b814eeaa4bee640e81bee625fb66710af45
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/7921
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>


# 12499:b81688796004 09-Jan-2018 Giacomo Travaglini <giacomo.travaglini@arm.com>

arch-arm: Change function name for banked miscregs

This commit changes the function's name used for retrieving the index of a
security banked register given the flatten index. This will avoid confusion
with flattenRegId, which has a different purpose.

Change-Id: I470ffb55916cb7fc9f78e071a7f2e609c1829f1a
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/7982
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>


# 11939:9d1795bb5931 01-Mar-2017 Nikos Nikoleris <nikos.nikoleris@arm.com>

arm: Don't panic when checking coprocessor read/write permissions

Instructions that use the coprocessor interface check the current
program status to determine whether the current context has the
priviledges to read from/write to the coprocessor. Some modes allow
the execution of coprocessor instructions, some others do not allow it,
while some other modes are unexpected (e.g., executing an AArch32
instruction while being in an AArch64 mode).

Previously we would unconditionally trigger a panic if we were in an
unexpected mode. This change removes the panic and replaces it
with an Undefined Instruction fault that triggers if and when a
coprocessor instruction commits in an unexpected mode. This allows
speculative coprocessor instructions from unexpected modes to execute
but prevents them from gettting committed.

Change-Id: If2776d5bae2471cdbaf76d0e1ae655f501bfbf01
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Rekai Gonzalez Alberquilla <rekai.gonzalezalberquilla@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/2281
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Weiping Liao <weipingliao@google.com>


# 11768:5b80960dcf08 19-Dec-2016 Curtis Dunham <Curtis.Dunham@arm.com>

arm: update AArch{64,32} register mappings

Change-Id: Idaaaeb3f7b1a0bdbf18d8e2d46686c78bb411317
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>


# 11575:0005b28685f0 02-Aug-2016 Dylan Johnson <Dylan.Johnson@ARM.com>

arm: add stage2 translation support

Change-Id: I8f7c09c7ec3a97149ebebf4b21471b244e6cecc1


# 11514:eb53b59ea625 02-Jun-2016 Andreas Sandberg <andreas.sandberg@arm.com>

arm: Rewrite ERET to behave according to the ARMv8 ARM

The ERET instruction doesn't set PSTATE correctly in some cases
(particularly when returning to aarch32 code). Among other things,
this breaks EL0 thumb code when using a 64-bit kernel. This changeset
updates the ERET implementation to match the ARM ARM.

Change-Id: I408e7c69a23cce437859313dfe84e68744b07c98
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Nathanael Premillieu <nathanael.premillieu@arm.com>


# 10856:d02b45a554b5 26-May-2015 Curtis Dunham <Curtis.Dunham@arm.com>

arm: implement the CONTEXTIDR_EL2 system reg.


# 10506:aa23216161fa 30-Oct-2014 Ali Saidi <Ali.Saidi@ARM.com>

arm: Mark some miscregs (timer counter) registers at unverifiable.

The checker can't verify timer registers, so it should just grab the version
from the executing CPU, otherwise it could get a larger value and diverge
execution.


# 10421:d469fdcd937e 01-Oct-2014 Andreas Hansson <andreas.hansson@arm.com>

arm: Use MiscRegIndex rather than int when flattening

Some additional type checking to avoid future issues.


# 10338:8bee5f4edb92 29-Apr-2014 Curtis Dunham <Curtis.Dunham@arm.com>

arm: use condition code registers for ARM ISA

Analogous to ee049bf (for x86). Requires a bump of the checkpoint version
and corresponding upgrader code to move the condition code register values
to the new register file.


# 10324:f40134eb3f85 27-May-2014 Curtis Dunham <Curtis.Dunham@arm.com>

arm: support 16kb vm granules


# 10037:5cac77888310 24-Jan-2014 ARM gem5 Developers

arm: Add support for ARMv8 (AArch64 & AArch32)

Note: AArch64 and AArch32 interworking is not supported. If you use an AArch64
kernel you are restricted to AArch64 user-mode binaries. This will be addressed
in a later patch.

Note: Virtualization is only supported in AArch32 mode. This will also be fixed
in a later patch.

Contributors:
Giacomo Gabrielli (TrustZone, LPAE, system-level AArch64, AArch64 NEON, validation)
Thomas Grocutt (AArch32 Virtualization, AArch64 FP, validation)
Mbou Eyole (AArch64 NEON, validation)
Ali Saidi (AArch64 Linux support, code integration, validation)
Edmund Grimley-Evans (AArch64 FP)
William Wang (AArch64 Linux support)
Rene De Jong (AArch64 Linux support, performance opt.)
Matt Horsnell (AArch64 MP, validation)
Matt Evans (device models, code integration, validation)
Chris Adeniyi-Jones (AArch64 syscall-emulation)
Prakash Ramrakhyani (validation)
Dam Sunwoo (validation)
Chander Sudanthi (validation)
Stephan Diestelhorst (validation)
Andreas Hansson (code integration, performance opt.)
Eric Van Hensbergen (performance opt.)
Gabe Black


# 9959:ad4564da49b5 31-Oct-2013 Chander Sudanthi <chander.sudanthi@arm.com>

ARM: add support for TEEHBR access

Thumb2 ARM kernels may access the TEEHBR via thumbee_notifier
in arch/arm/kernel/thumbee.c. The Linux kernel code just seems
to be saving and restoring the register. This patch adds support
for the TEEHBR cp14 register. Note, this may be a special case
when restoring from an image that was run on a system that
supports ThumbEE.


# 9431:8bb372a49e1b 07-Jan-2013 Andreas Sandberg <Andreas.Sandberg@ARM.com>

arm: Remove the register mapping hack used when copying TCs

In order to see all registers independent of the current CPU mode, the
ARM architecture model uses the magic MISCREG_CPSR_MODE register to
change the register mappings without actually updating the CPU
mode. This hack is no longer needed since the thread context now
provides a flat interface to the register file. This patch replaces
the CPSR_MODE hack with the flat register interface.


# 9256:f14188a5a1d6 25-Sep-2012 Andreas Sandberg <Andreas.Sandberg@arm.com>

arm: Use a static_assert to test that miscRegName[] is complete

Instead of statically defining miscRegName to contain NUM_MISCREGS
elements, let the compiler determine the length of the array. This
allows us to use a static_assert to test that all registers are listed
in the name vector.


# 9130:8423aa8c2216 27-Jul-2012 Anthony Gutierrez <atgutier@umich.edu>

ARM: fix value of MISCREG_CTR returned by readMiscReg()

According to the A15 TRM the value of this register is as follows (assuming 16 word = 64 byte lines)
[31:29] Format - b100 specifies v7
[28] RAZ - b0
[27:24] CWG log2(max writeback size #words) - 0x4 16 words
[23:20] ERG log2(max reservation size #words) - 0x4 16 words
[19:16] DminLine log2(smallest dcache line #words) - 0x4 16 words
[15:14] L1Ip L1 index/tagging policy - b11 specifies PIPT
[13:4] RAZ - b0000000000
[3:0] IminLine log2(smallest icache line #words) - 0x4 16 words


# 9051:1554b7722990 05-Jun-2012 Chander Sudanthi <chander.sudanthi@arm.com>

ARM: removed extra white space

Extra white space fixes in miscregs.hh


# 8902:75b524b64c28 19-Mar-2012 Andreas Hansson <andreas.hansson@arm.com>

gcc: Clean-up of non-C++0x compliant code, first steps

This patch cleans up a number of minor issues aiming to get closer to
compliance with the C++0x standard as interpreted by gcc and clang
(compile with std=c++0x and -pedantic-errors). In particular, the
patch cleans up enums where the last item was succeded by a comma,
namespaces closed by a curcly brace followed by a semi-colon, and the
use of the GNU-extension typeof (replaced by templated functions). It
does not address variable-length arrays, zero-size arrays, anonymous
structs, range expressions in switch statements, and the use of long
long. The generated CPU code also has a large number of issues that
remain to be fixed, mainly related to overflows in implicit constant
conversion (due to shifts).


# 8868:26dbd171754e 01-Mar-2012 Matt Horsnell <Matt.Horsnell@arm.com>

ARM: Add limited CP14 support.

New kernels attempt to read CP14 what debug architecture is available.
These changes add the debug registers and return that none is currently
available.


# 8552:f51e3dce9521 13-Sep-2011 Daniel Johnson <daniel.johnson@arm.com>

ARM: update TLB to set request packet ASID field


# 8550:8ac6c1fa657f 13-Sep-2011 Chander Sudanthi<Chander.Sudanthi@ARM.com>

CP15 c15: enable execution with accesses to c15 registers

Previously, coprocessor accesses to CP15 c15 would fault. This patch
enables accesses but prints out a warning, as the registers are not implemented.


# 8549:7cff2156c998 13-Sep-2011 Daniel Johnson <daniel.johnson@arm.com>

ARM: Implement numcpus bits in L2CTLR register.


# 8468:5e9530779f60 15-Jul-2011 Wade Walker <wade.walker@arm.com>

ARM: Add two unimplemented miscellaneous registers.

Adds MISCREG_ID_MMFR2 and removes break on access to MISCREG_CLIDR. Both
registers now return values that are consistent with current ARM
implementations.


# 8303:5a95f1d2494e 13-May-2011 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Further break up condition code into NZ, C, V bits.

Break up the condition code bits into NZ, C, V registers. These are individually
written and this removes some incorrect dependencies between instructions.


# 8302:9f23d01421de 13-May-2011 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Remove the saturating (Q) condition code from the renamed register.

Move the saturating bit (which is also saturating) from the renamed register
that holds the flags to the CPSR miscreg and adds a allows setting it in a
similar way to the FP saturating registers. This removes a dependency in
instructions that don't write, but need to preserve the Q bit.


# 8301:858384f3af1c 13-May-2011 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Break up condition codes into normal flags, saturation, and simd.

This change splits out the condcodes from being one monolithic register
into three blocks that are updated independently. This allows CPUs
to not have to do RMW operations on the flags registers for instructions
that don't write all flags.


# 8299:64a938a8b7fc 13-May-2011 Chander Sudanthi <chander.sudanthi@arm.com>

ARM: Better RealView/Versatile EB platform support.

Add registers and components to better support the VersatileEB board.
Made the MIDR and SYS_ID register parameters to ArmSystem and RealviewCtrl
respectively.


# 8284:2fcad6253525 04-May-2011 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Add support for MP misc regs and broadcast flushes.


# 8209:9e3f7f00fa90 04-Apr-2011 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Use CPU local lock before sending load to mem system.

This change uses the locked_mem.hh header to handle implementing CLREX. It
simplifies the current implementation greatly.


# 8208:45331a355c38 04-Apr-2011 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Fix checkpoint restoration into O3 CPU and the way O3 switchCpu works.

This change fixes a small bug in the arm copyRegs() code where some registers
wouldn't be copied if the processor was in a mode other than MODE_USER.
Additionally, this change simplifies the way the O3 switchCpu code works by
utilizing TheISA::copyRegs() to copy the required context information
rather than the adhoc copying that goes on in the CPU model. The current code
makes assumptions about the visibility of int and float registers that aren't
true for all architectures in FS mode.


# 8206:c3090dc00ddf 04-Apr-2011 William Wang <William.Wang@arm.com>

ARM: Cleanup and small fixes to some NEON ops to match the spec.

Only certain bits of the cpacr can be written, some must be equal.
Mult instructions that write the same register should do something sane


# 8205:7ecbffb674aa 04-Apr-2011 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Cleanup implementation of ITSTATE and put important code in PCState.

Consolidate all code to handle ITSTATE in the PCState object rather than
touching a variety of structures/objects.


# 8179:bbab80b639cb 25-Mar-2011 Gabe Black <gblack@eecs.umich.edu>

Arm: Add in a missing miscRegName.


# 8147:ac8ef72e9700 17-Mar-2011 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Implement the Instruction Set Attribute Registers (ISAR).

The ISAR registers describe which features the processor supports.
Transcribe the values listed in section B5.2.5 of the ARM ARM
into the registers as read-only values


# 8058:a259ab86cabf 23-Feb-2011 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Adds dummy support for a L2 latency miscreg.


# 7783:9b880b40ac10 07-Dec-2010 Giacomo Gabrielli <Giacomo.Gabrielli@arm.com>

O3: Make all instructions that write a misc. register not perform the write until commit.

ARM instructions updating cumulative flags (ARM FP exceptions and saturation
flags) are not serialized.

Added aliases for ARM FP exceptions and saturation flags in FPSCR. Removed
write accesses to the FP condition codes for most ARM VFP instructions: only
VCMP and VCMPE instructions update the FP condition codes. Removed a potential
cause of seg. faults in the O3 model for NEON memory macro-ops (ARM).


# 7762:6e399e631a43 15-Nov-2010 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Add comment about the organization of the IT state register


# 7643:775ccd204013 25-Aug-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Seperate out the renamable bits in the FPSCR.


# 7640:5286a8a469c5 25-Aug-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Implement CPACR register and return Undefined Instruction when FP access is disabled.


# 7583:665d71561298 23-Aug-2010 Ali Saidi <Ali.Saidi@arm.com>

ARM: Implement some more misc registers


# 7436:b578349f9371 02-Jun-2010 Dam Sunwoo <dam.sunwoo@arm.com>

ARM: Added support for Access Flag and some CP15 regs (V2PCWPR, V2PCWPW, V2PCWUR, V2PCWUW,...)


# 7408:ee6949c5bb5b 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Implement support for the IT instruction and the ITSTATE bits of CPSR.


# 7406:ddc26bd4ea7d 02-Jun-2010 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Some TLB bug fixes.


# 7404:bfc74724914e 02-Jun-2010 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Implement the ARM TLB/Tablewalker. Needs performance improvements.


# 7400:f6c9b27c4dbe 02-Jun-2010 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Implement ARM CPU interrupts


# 7390:90824865d8e6 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Make MPIDR return 0 and ignore writes.


# 7383:0edb04052953 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Set the value of the MVFR0 and MVFR1 registers.


# 7376:3b781776b2d9 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Add support for VFP vector mode.


# 7362:9ea92e0eb4a9 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Implement and update the DFSR and IFSR registers on faults.


# 7360:49a1e8b1632f 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Add in some missing SCTLR fields.


# 7355:8d9b757b3583 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Warn/ignore when TLB maintenance operations are performed.


# 7354:732369e36c02 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Handle accesses to TLBTR.


# 7353:c4b319e94c1a 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Handle accesses to the DACR.


# 7352:fd0b3ce4f182 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Handle accesses to TTBR0 and TTBR1.


# 7351:d90afcb8724e 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Convert the CP15 registers from MPU to MMU.


# 7350:41e3ee23125e 02-Jun-2010 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Add some support for wfi/wfe/yield/etc


# 7349:8b4564729c81 02-Jun-2010 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Move PC mode bits around so they can be used for exectrace


# 7325:325409a94197 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Update the set of FP related miscregs.


# 7320:6aacf11f7dbf 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Ignore attempts to disable coprocessors that aren't implemented anyway.


# 7300:3b491ad98fea 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Ignore/warn on accesses to the DRBAR, DRACR, and DRSR registers.


# 7299:58118b62aa52 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Allow access to the RGNR register.


# 7298:1eb75247bdc6 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Make the MPUIR register report that 1 unified data region is supported.


# 7297:2b127f2655d6 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Ignore/warn on accesses to the BPIALLIS and BPIALL registers.


# 7287:25c1718b819a 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Ignore/warn when CSSELR or CCSIDR are accessed.

These registers provide information about the caches. Since we can't provide
that information, these will be harmlessly inert.


# 7286:f6d759c122a9 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Ignore/warn access to the bpimva registers.


# 7285:4b45e35807f2 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Ignore/warn on accesses to the dccmvac register.


# 7276:8444b49bd88d 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Ignore/warn on accesses to icimvau.


# 7275:d1202f99eb3e 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Ignore/warn on iciallu.


# 7274:b299cce14211 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Ignore/warn on ICIALLUIS.


# 7273:674fc83d1908 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Add support for the clidr register.

This register will always report 0 caches as implemented. It's not clear how
to find out how many there really are when dealing with an arbitrary
hierarchy.


# 7272:105f6d3e1099 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Decode the unimplemented data barrier CP15 accesses.

These are CP15DSB (Data Synchronization Barrier), and CP15DMB (Data Memory
Barrier).


# 7271:c1f84426708a 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Implement a stub of CPACR.

This register controls access to the coprocessors. This doesn't actually
implement it, it allows writes which don't turn anything off. In other words,
it allows the simulated program to ask for what it already has.


# 7268:22f75f96c56c 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Decode the unimplemented cp15 instruction barrier.


# 7267:fcbf902646a8 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Ignore accesses to DCCIMVAC.


# 7266:362277070cbc 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Allow accesses to the software thread id registers.


# 7265:24af07cbec8c 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Allow accesses to the contextidr register.


# 7264:fc3dfbfb3066 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Warn about and ignore accesses to DCCISW.

This register is supposed to "Clean and invalidate data or unified cache line
by set/way." Since there isn't a good way to do that, we'll just ignore these
and warn about it.


# 7259:200840489735 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Implement a function to decode CP15 registers to MiscReg indices.


# 7111:ee902ae075bb 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Replace the "never" condition with the "unconditional" condition.


# 7093:9832d4b070fc 02-Jun-2010 Gabe Black <gblack@eecs.umich.edu>

ARM: Track the current ISA mode using the PC.


# 6750:33ac9df63f3e 14-Nov-2009 Gabe Black <gblack@eecs.umich.edu>

ARM: Define a mask to differentiate purely CPSR bits from CondCodes bits.


# 6735:6437ad24a8a0 10-Nov-2009 Gabe Black <gblack@eecs.umich.edu>

ARM: Implement fault classes.

Implement some fault classes using the curriously recurring template pattern,
similar to SPARCs.


# 6723:ea7c71a3433a 08-Nov-2009 Gabe Black <gblack@eecs.umich.edu>

ARM: Add in more bits for the mon mode.


# 6403:c3372644e033 27-Jul-2009 Gabe Black <gblack@eecs.umich.edu>

ARM: Add in spots for the VFP control registers.


# 6261:5fdf0fc147bd 27-Jun-2009 Gabe Black <gblack@eecs.umich.edu>

ARM: Fill out the printReg function.


# 6242:1cee707c1228 21-Jun-2009 Gabe Black <gblack@eecs.umich.edu>

ARM: Pull some static code out of the isa desc and create miscregs.hh.