#
13999:a26c2e234a80 |
|
19-Feb-2019 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
arch-arm: Change mcrMrc15TrapToHyp signature
This patch is moving MiscRegs reading inside the mcrMrc15TrapToHyp helper function. Rather than passing registers as arguments, we are just passing a ThreadContext pointer
Change-Id: I6636dd3a4f92f757479d8a8d2c47de050a0b9eae 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/+/17988 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Tested-by: kokoro <noreply+kokoro@google.com>
|
#
13895:5762b3dc79c6 |
|
13-Feb-2019 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
arch-arm: Report real instruction encoding when Undefined
When dumping the opcode that caused an Undefined Instruction, we just want to dump the real instruction encoding, and not the extended version with metabits (like thumb, bigThumb etc). This was not appening when panicking in SE mode.
The patch is also replacing custom masking in the Unknown(64) disassembler in favour of ArmStaticInstruction::encoding() helper.
Change-Id: I9eb6fd145d02b4b07bb51f0bd89ca014d6d5a6de 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/+/18395 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Tested-by: kokoro <noreply+kokoro@google.com>
|
#
13574:bab20b8d882d |
|
25-Oct-2018 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
arch-arm: Move AArch32 IMPLEMENTATION DEFINED registers
Moving AArch32 instruction accessing IMPLEMENTATION DEFINED registers from pseudo.[cc/hh] to misc.[cc/hh] in order to symmetrically match with AArch64 implementation.
Change-Id: I27b0d65925d7965589b765269ae54129426e4c88 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/15735 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
|
#
12674:c5cabaf644b5 |
|
12-Apr-2018 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
arch-arm: Fix Unknown Instruction disassemble
Do not print the entire ExtMachInst when disassembling an Unknown Instruction.
Change-Id: Icd5908ec0fa430090165b2426372bdeb43c2a155 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/10062 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
|
#
12638:bee48e7c802b |
|
27-Mar-2018 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
arch-arm: Correct mcrr,mrrc disassemble
This patch is fixing AArch32 mcrr,mrrc instruction disassemble by printing the correct source/destination registers
Change-Id: I3fcffa0349aeee466e7c60ba4d1244824fb65d91 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/9501 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
|
#
12504:6a6d80495bd6 |
|
19-Dec-2017 |
Nikos Nikoleris <nikos.nikoleris@arm.com> |
arch-arm: Fix printing of the data cache maintenance instructions
Change-Id: I2322c7bf65b38cb07a1ea2b5dc25dfc5a0496cf0 Reviewed-by: Jack Travaglini <giacomo.travaglini@arm.com> Reviewed-on: https://gem5-review.googlesource.com/7825 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
|
#
12358:386d26feb00f |
|
07-Feb-2017 |
Nikos Nikoleris <nikos.nikoleris@arm.com> |
arm: Add support for the mcr dc{ic,i,c}mvac, dccmvau instructions
This patch adds support for the ARMv7 cache maintenance intructions: * mcr dccmvac cleans a VA to the PoC * mcr dcimvac invalidates a VA to the PoC * mcr dccimvac cleans and invalidates a VA to the PoC * mcr dccmvau cleans a VA to the PoU
Change-Id: I6511f203039ca145cc9128ddf61d09d6d7e40c10 Reviewed-by: Stephan Diestelhorst <stephan.diestelhorst@arm.com> Reviewed-by: Anouk Van Laer <anouk.vanlaer@arm.com> Reviewed-on: https://gem5-review.googlesource.com/5059 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
|
#
12281:90315832cb81 |
|
15-Nov-2017 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
arch-arm: Fix MCR/MRC disassemble
This patch is fixing the Aarch32 MCR/MRC disassemble, which was previously printing unexisting integer registers as source/destination operands rather than the coprocessor register name
Change-Id: I1937938c43680200cf6c5c9558e835ce2b209adc Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-on: https://gem5-review.googlesource.com/5862 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
|
#
12106:7784fac1b159 |
|
05-Apr-2017 |
Rekai Gonzalez-Alberquilla <Rekai.GonzalezAlberquilla@arm.com> |
cpu: Simplify the rename interface and use RegId
With the hierarchical RegId there are a lot of functions that are redundant now.
The idea behind the simplification is that instead of having the regId, telling which kind of register read/write/rename/lookup/etc. and then the function panic_if'ing if the regId is not of the appropriate type, we provide an interface that decides what kind of register to read depending on the register type of the given regId.
Change-Id: I7d52e9e21fc01205ae365d86921a4ceb67a57178 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> [ Fix RISCV build issues ] Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/2702
|
#
12104:edd63f9c6184 |
|
05-Apr-2017 |
Nathanael Premillieu <nathanael.premillieu@arm.com> |
arch, cpu: Architectural Register structural indexing
Replace the unified register mapping with a structure associating a class and an index. It is now much easier to know which class of register the index is referring to. Also, when adding a new class there is no need to modify existing ones.
Change-Id: I55b3ac80763702aa2cd3ed2cbff0a75ef7620373 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> [ Fix RISCV build issues ] Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/2700
|
#
11793:ef606668d247 |
|
09-Nov-2016 |
Brandon Potter <brandon.potter@amd.com> |
style: [patch 1/22] use /r/3648/ to reorganize includes
|
#
10418:7a76e13f0101 |
|
27-Sep-2014 |
Andreas Hansson <andreas.hansson@arm.com> |
arm: Fixed undefined behaviours identified by gcc
This patch fixes the runtime errors highlighted by the undefined behaviour sanitizer. In the end there were two issues. First, when rotating an immediate, we ended up shifting an uint32_t by 32 in some cases. This case is fixed by checking for a rotation by 0 positions. Second, the Mrc15 and Mcr15 are operating on an IntReg and a MiscReg, but we used the type RegRegImmOp and passed a MiscRegIndex as an IntRegIndex. This issue is resolved by introducing a MiscRegRegImmOp and RegMiscRegImmOp with the appropriate types.
With these fixes there are no runtime errors identified for the full ARM regressions.
|
#
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
|
#
9918:2c7219e2d999 |
|
15-Oct-2013 |
Steve Reinhardt <steve.reinhardt@amd.com> |
cpu: rename *_DepTag constants to *_Reg_Base
Make these names more meaningful.
Specifically, made these substitutions:
s/FP_Base_DepTag/FP_Reg_Base/g; s/Ctrl_Base_DepTag/Misc_Reg_Base/g; s/Max_DepTag/Max_Reg_Index/g;
|
#
9913:7f43babfde6a |
|
15-Oct-2013 |
Steve Reinhardt <steve.reinhardt@amd.com> |
cpu: clean up architectural register classification
Move from a poorly documented scheme where the mapping of unified architectural register indices to register classes is hardcoded all over to one where there's an enum for the register classes and a function that encapsulates the mapping.
|
#
7426:5da64155a605 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Get rid of the binary dumping function in utility.hh.
|
#
7409:1ff897327905 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Make undefined instructions obey predication.
|
#
7332:2e611548bb5a |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Add a new RegImmOp base class.
|
#
7331:0897d3ccea91 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Add a RegRegImmOp base class.
|
#
7306:548a5ee3dc5f |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Make a base class for instructions that use only an immediate.
|
#
7261:5ed14bce7261 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Rename the RevOp base class to something more generic.
|
#
7253:38b991b82859 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Add a register, immediate, immediate to register base for [su]bfx.
|
#
7241:0a9f0db3e5d8 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Add a base class to support usada8.
|
#
7238:f68fa944baee |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Add a base class for the sel instruction.
|
#
7233:687fa9b9c2b5 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Add a base class for extend and add instructions.
|
#
7232:f633e1a3f644 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Generalize the saturation instruction bases for use in other instructions.
|
#
7225:bf41a07cc7c0 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement base classes for the saturation instructions.
|
#
7208:589ddde61a77 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Add base classes suitable for the REV* instructions.
|
#
7202:b99579129992 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Define versions of MSR and MRS outside the decoder.
|