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>
This commit is contained in:
@@ -52,6 +52,8 @@ class ArmMachineType(Enum):
|
||||
'DTOnly' : -1,
|
||||
}
|
||||
|
||||
class SveVectorLength(UInt8): min = 1; max = 16
|
||||
|
||||
class ArmSystem(System):
|
||||
type = 'ArmSystem'
|
||||
cxx_header = "arch/arm/system.hh"
|
||||
@@ -80,6 +82,10 @@ class ArmSystem(System):
|
||||
"Supported physical address range in bits when using AArch64 (ARMv8)")
|
||||
have_large_asid_64 = Param.Bool(False,
|
||||
"True if ASID is 16 bits in AArch64 (ARMv8)")
|
||||
have_sve = Param.Bool(True,
|
||||
"True if SVE is implemented (ARMv8)")
|
||||
sve_vl = Param.SveVectorLength(1,
|
||||
"SVE vector length in quadwords (128-bit)")
|
||||
|
||||
semihosting = Param.ArmSemihosting(NULL,
|
||||
"Enable support for the Arm semihosting by settings this parameter")
|
||||
|
||||
Reference in New Issue
Block a user