|
@@ -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.
|