aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Turner <andrew@FreeBSD.org>2023-02-20 12:22:11 +0000
committerAndrew Turner <andrew@FreeBSD.org>2023-02-20 12:29:56 +0000
commit24abb6b82102eec577eff9bd8dd7726e8cab89f4 (patch)
treec7aac6a7fc34d6bb31d263468dc723b053d4dcb3
parent8aad241ed0c51c45370bd2879fc113170563a018 (diff)
downloadsrc-24abb6b82102eec577eff9bd8dd7726e8cab89f4.tar.gz
src-24abb6b82102eec577eff9bd8dd7726e8cab89f4.zip
When saving a context on arm call the vfp handler
When adding kernel VFP support on arm a comparison instruction was removed, however the branch to vfp_save_state was still conditional. Remove the conditional check and always call into vfp_save_state as it could cause unexpected results otherwise. Sponsored by: Arm Ltd
-rw-r--r--sys/arm/arm/swtch-v6.S2
-rw-r--r--sys/arm/arm/swtch.S2
2 files changed, 2 insertions, 2 deletions
diff --git a/sys/arm/arm/swtch-v6.S b/sys/arm/arm/swtch-v6.S
index bff1bc8f3d35..b23fb2f7686f 100644
--- a/sys/arm/arm/swtch-v6.S
+++ b/sys/arm/arm/swtch-v6.S
@@ -325,7 +325,7 @@ ENTRY(cpu_switch)
ldr r3, [r10, #(TD_PCB)]
mov r1, r3
mov r0, r10
- blne _C_LABEL(vfp_save_state)
+ bl _C_LABEL(vfp_save_state)
#endif
/*
diff --git a/sys/arm/arm/swtch.S b/sys/arm/arm/swtch.S
index f7c2beaf4f3e..1856f8b1e97c 100644
--- a/sys/arm/arm/swtch.S
+++ b/sys/arm/arm/swtch.S
@@ -101,7 +101,7 @@ ENTRY(savectx)
#ifdef VFP
mov r1, r0
mov r0, #0
- blne _C_LABEL(vfp_save_state)
+ bl _C_LABEL(vfp_save_state)
#endif
add sp, sp, #4;
ldmfd sp!, {pc}