From 47fe91694258cf5e2eb195795793b7774a135c9f Mon Sep 17 00:00:00 2001 From: Roland Shoemaker Date: Wed, 10 Jul 2024 17:53:02 -0500 Subject: [PATCH] cpu: add support for DIT detection Change-Id: I9f0991da9684ebd297e40a754e34130c418c34d0 Reviewed-on: https://go-review.googlesource.com/c/sys/+/597377 Reviewed-by: Ian Lance Taylor LUCI-TryBot-Result: Go LUCI --- cpu/cpu.go | 1 + cpu/cpu_arm64.go | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/cpu/cpu.go b/cpu/cpu.go index 8fa707aa..11a0abc1 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 0e27a21e..98956a5b 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) {