summaryrefslogtreecommitdiffhomepage
path: root/pkg/ring0/lib_arm64.go
diff options
context:
space:
mode:
authorRobin Luk <lubin.lu@antgroup.com>2021-01-14 19:06:46 +0800
committerRobin Luk <lubin.lu@antgroup.com>2021-02-03 11:50:36 +0000
commit6eb80b2e2df4a7e0a0b9dcfc99906a84fd8fc3f0 (patch)
tree4b04266e0608caf4c661b56d4ef7cb7731ba334d /pkg/ring0/lib_arm64.go
parent25130d6183d399fc3bfa93385aeba6819437ea6c (diff)
arm64 kvm:implement basic lazy save and restore for FPSIMD registers
Implement basic lazy save and restore for FPSIMD registers, which only restore FPSIMD state on el0_fpsimd_acc and save FPSIMD state in switch(). Signed-off-by: Robin Luk <lubin.lu@antgroup.com>
Diffstat (limited to 'pkg/ring0/lib_arm64.go')
-rw-r--r--pkg/ring0/lib_arm64.go8
1 files changed, 5 insertions, 3 deletions
diff --git a/pkg/ring0/lib_arm64.go b/pkg/ring0/lib_arm64.go
index a490bf3af..edf24eda3 100644
--- a/pkg/ring0/lib_arm64.go
+++ b/pkg/ring0/lib_arm64.go
@@ -16,6 +16,9 @@
package ring0
+// storeEl0Fpstate writes the address of application's fpstate.
+func storeEl0Fpstate(value *byte)
+
// storeAppASID writes the application's asid value.
func storeAppASID(asid uintptr)
@@ -59,11 +62,10 @@ func LoadFloatingPoint(*byte)
// SaveFloatingPoint saves floating point state.
func SaveFloatingPoint(*byte)
-// EnableVFP enables fpsimd.
-func EnableVFP()
+func FPSIMDDisableTrap()
// DisableVFP disables fpsimd.
-func DisableVFP()
+func FPSIMDEnableTrap()
// Init sets function pointers based on architectural features.
//