diff options
author | Giacomo Gabrielli <giacomo.gabrielli@arm.com> | 2018-10-16 16:09:02 +0100 |
---|---|---|
committer | Giacomo Gabrielli <giacomo.gabrielli@arm.com> | 2019-03-14 10:42:27 +0000 |
commit | c4cc3145cd1eeed236b5cd3f7b2424bc0761878e (patch) | |
tree | b38eab6f5f389dfc53c2cf74275a83bacd2e9b18 /src/arch/arm/ArmISA.py | |
parent | 91195ae7f637d1d4879cc3bf0860147333846e75 (diff) | |
download | gem5-c4cc3145cd1eeed236b5cd3f7b2424bc0761878e.tar.xz |
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>
Diffstat (limited to 'src/arch/arm/ArmISA.py')
-rw-r--r-- | src/arch/arm/ArmISA.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/arch/arm/ArmISA.py b/src/arch/arm/ArmISA.py index 70be40313..ea2927d5d 100644 --- a/src/arch/arm/ArmISA.py +++ b/src/arch/arm/ArmISA.py @@ -1,4 +1,4 @@ -# Copyright (c) 2012-2013, 2015-2016, 2018 ARM Limited +# Copyright (c) 2012-2013, 2015-2018 ARM Limited # All rights reserved. # # The license below extends only to copyright in the software and shall @@ -41,6 +41,7 @@ from m5.proxy import * from m5.SimObject import SimObject from m5.objects.ArmPMU import ArmPMU +from m5.objects.ArmSystem import SveVectorLength from m5.objects.ISACommon import VecRegRenameMode # Enum for DecoderFlavour @@ -115,3 +116,8 @@ class ArmISA(SimObject): # It is rather executed as a NOP. impdef_nop = Param.Bool(False, "Any access to a MISCREG_IMPDEF_UNIMPL register is executed as NOP") + + # This is required because in SE mode a generic System SimObject is + # allocated, instead of an ArmSystem + sve_vl_se = Param.SveVectorLength(1, + "SVE vector length in quadwords (128-bit), SE-mode only") |