diff --git a/cpu/cpu.go b/cpu/cpu.go index 8fa707aa4..11a0abc1d 100644 --- a/cpu/cpu.go +++ b/cpu/cpu.go @@ -105,6 +105,7 @@ var ARM64 struct { HasSVE bool // Scalable Vector Extensions HasSVE2 bool // Scalable Vector Extensions 2 HasASIMDFHM bool // Advanced SIMD multiplication FP16 to FP32 + HasDIT bool // Data Independent Timing support _ CacheLinePad } diff --git a/cpu/cpu_arm64.go b/cpu/cpu_arm64.go index 0e27a21e1..98956a5b5 100644 --- a/cpu/cpu_arm64.go +++ b/cpu/cpu_arm64.go @@ -168,6 +168,11 @@ func parseARM64SystemRegisters(isar0, isar1, pfr0 uint64) { parseARM64SVERegister(getzfr0()) } + + switch extractBits(pfr0, 48, 51) { + case 1: + ARM64.HasDIT = true + } } func parseARM64SVERegister(zfr0 uint64) {