arch-arm: This commit adds Pointer Authentication feature.
authorJordi Vaquero <jordi.vaquero@metempsy.com>
Tue, 4 Feb 2020 16:37:37 +0000 (17:37 +0100)
committerJordi Vaquero <jordi.vaquero@metempsy.com>
Thu, 6 Feb 2020 22:22:54 +0000 (22:22 +0000)
commit3cea7d9ce49bda49c50e756339ff1287fd55df77
tree2b42e990359d0888fea0fdb0bd5436031df6a095
parenta62ea2c44f2c8832c548dcc73a2512ecee0dd473
arch-arm: This commit adds Pointer Authentication feature.

+ ArmISA.py: Enabling the feature adding  QARMA algorithm as default.
+ faults.cc/faults.hh: Add PACTrapFault
+ includes/insts.isa: Adding new isa files.
+ aarch64.isa: Add decode part for PAC instructions
+ pauth.isa: Isa for PAC instructions
+ misc64.isa: PAC instructions templates
+ miscregs.cc/hh/types: New Registers for PAC Key low/high.
+ types.hh: Modification of system registers that were incomplete
            for ARMv8
+ utility.hh: Add isSecureEL2 enabled. The function is there but will
              always return false for now.
+ pauth_helpers.hh/cc: Implementation of auxiliar functions and derivates.
+ qarma.hh/cc: This functions follow ARMv8 reference pseudo code
              implementing QARMA block cipher algorithms.

Change-Id: I3095a1279204206d9a816a4fb7fc176c18f9680b
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25024
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
28 files changed:
src/arch/arm/ArmISA.py
src/arch/arm/SConscript
src/arch/arm/faults.cc
src/arch/arm/insts/branch64.cc
src/arch/arm/insts/branch64.hh
src/arch/arm/insts/misc.cc
src/arch/arm/insts/misc.hh
src/arch/arm/insts/misc64.cc
src/arch/arm/isa/formats/aarch64.isa
src/arch/arm/isa/includes.isa
src/arch/arm/isa/insts/branch64.isa
src/arch/arm/isa/insts/insts.isa
src/arch/arm/isa/insts/ldr64.isa
src/arch/arm/isa/insts/pauth.isa [new file with mode: 0644]
src/arch/arm/isa/templates/branch64.isa
src/arch/arm/isa/templates/misc64.isa
src/arch/arm/miscregs.cc
src/arch/arm/miscregs.hh
src/arch/arm/miscregs_types.hh
src/arch/arm/pauth_helpers.cc [new file with mode: 0644]
src/arch/arm/pauth_helpers.hh [new file with mode: 0644]
src/arch/arm/qarma.cc [new file with mode: 0644]
src/arch/arm/qarma.hh [new file with mode: 0644]
src/arch/arm/table_walker.cc
src/arch/arm/tlb.cc
src/arch/arm/types.hh
src/arch/arm/utility.cc
src/arch/arm/utility.hh