Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 054167b3 authored by Mario Smarduch's avatar Mario Smarduch Committed by Marc Zyngier
Browse files

arm: KVM: keep arm vfp/simd exit handling consistent with arm64



After enhancing arm64 FP/SIMD exit handling, ARMv7 VFP exit branch is moved
to guest trap handling. This allows us to keep exit handling flow between both
architectures consistent.

Signed-off-by: default avatarMario Smarduch <m.smarduch@samsung.com>
Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
parent 33c76a0b
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -361,10 +361,6 @@ hyp_hvc:
	@ Check syndrome register
	mrc	p15, 4, r1, c5, c2, 0	@ HSR
	lsr	r0, r1, #HSR_EC_SHIFT
#ifdef CONFIG_VFPv3
	cmp	r0, #HSR_EC_CP_0_13
	beq	switch_to_guest_vfp
#endif
	cmp	r0, #HSR_EC_HVC
	bne	guest_trap		@ Not HVC instr.

@@ -378,7 +374,10 @@ hyp_hvc:
	cmp     r2, #0
	bne	guest_trap		@ Guest called HVC

host_switch_to_hyp:
	/*
	 * Getting here means host called HVC, we shift parameters and branch
	 * to Hyp function.
	 */
	pop	{r0, r1, r2}

	/* Check for __hyp_get_vectors */
@@ -409,6 +408,10 @@ guest_trap:

	@ Check if we need the fault information
	lsr	r1, r1, #HSR_EC_SHIFT
#ifdef CONFIG_VFPv3
	cmp	r1, #HSR_EC_CP_0_13
	beq	switch_to_guest_vfp
#endif
	cmp	r1, #HSR_EC_IABT
	mrceq	p15, 4, r2, c6, c0, 2	@ HIFAR
	beq	2f
@@ -477,7 +480,6 @@ guest_trap:
 */
#ifdef CONFIG_VFPv3
switch_to_guest_vfp:
	load_vcpu			@ Load VCPU pointer to r0
	push	{r3-r7}

	@ NEON/VFP used.  Turn on VFP access.