summaryrefslogtreecommitdiffstats
path: root/arch/arm64/kvm/hyp/fpsimd.S
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2015-10-26 08:34:09 +0000
committerMarc Zyngier <marc.zyngier@arm.com>2015-12-14 11:30:41 +0000
commitc13d1683df16db16c91372177ca10c31677b5ed5 (patch)
treec33ebab7d9dff4a45664c47edda215838ed5c5b7 /arch/arm64/kvm/hyp/fpsimd.S
parentbe901e9b15cd2c8e48dc089b4655ea4a076e66fd (diff)
downloadlinux-c13d1683df16db16c91372177ca10c31677b5ed5.tar.bz2
arm64: KVM: Implement fpsimd save/restore
Implement the fpsimd save restore, keeping the lazy part in assembler (as returning to C would be overkill). Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Diffstat (limited to 'arch/arm64/kvm/hyp/fpsimd.S')
-rw-r--r--arch/arm64/kvm/hyp/fpsimd.S33
1 files changed, 33 insertions, 0 deletions
diff --git a/arch/arm64/kvm/hyp/fpsimd.S b/arch/arm64/kvm/hyp/fpsimd.S
new file mode 100644
index 000000000000..da3f22c7f14a
--- /dev/null
+++ b/arch/arm64/kvm/hyp/fpsimd.S
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2015 - ARM Ltd
+ * Author: Marc Zyngier <marc.zyngier@arm.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <linux/linkage.h>
+
+#include <asm/fpsimdmacros.h>
+
+ .text
+ .pushsection .hyp.text, "ax"
+
+ENTRY(__fpsimd_save_state)
+ fpsimd_save x0, 1
+ ret
+ENDPROC(__fpsimd_save_state)
+
+ENTRY(__fpsimd_restore_state)
+ fpsimd_restore x0, 1
+ ret
+ENDPROC(__fpsimd_restore_state)