diff options
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/vfp/vfphw.S | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/arch/arm/vfp/vfphw.S b/arch/arm/vfp/vfphw.S index c75443e204b2..404538ae591d 100644 --- a/arch/arm/vfp/vfphw.S +++ b/arch/arm/vfp/vfphw.S | |||
@@ -81,11 +81,8 @@ ENTRY(vfp_support_entry) | |||
81 | orr r1, r1, #FPEXC_EN @ user FPEXC has the enable bit set | 81 | orr r1, r1, #FPEXC_EN @ user FPEXC has the enable bit set |
82 | ldr r4, [r3, r11, lsl #2] @ vfp_current_hw_state pointer | 82 | ldr r4, [r3, r11, lsl #2] @ vfp_current_hw_state pointer |
83 | bic r5, r1, #FPEXC_EX @ make sure exceptions are disabled | 83 | bic r5, r1, #FPEXC_EX @ make sure exceptions are disabled |
84 | cmp r4, r10 | 84 | cmp r4, r10 @ this thread owns the hw context? |
85 | beq check_for_exception @ we are returning to the same | 85 | beq vfp_hw_state_valid |
86 | @ process, so the registers are | ||
87 | @ still there. In this case, we do | ||
88 | @ not want to drop a pending exception. | ||
89 | 86 | ||
90 | VFPFMXR FPEXC, r5 @ enable VFP, disable any pending | 87 | VFPFMXR FPEXC, r5 @ enable VFP, disable any pending |
91 | @ exceptions, so we can get at the | 88 | @ exceptions, so we can get at the |
@@ -132,7 +129,8 @@ no_old_VFP_process: | |||
132 | #endif | 129 | #endif |
133 | VFPFMXR FPSCR, r5 @ restore status | 130 | VFPFMXR FPSCR, r5 @ restore status |
134 | 131 | ||
135 | check_for_exception: | 132 | @ The context stored in the VFP hardware is up to date with this thread |
133 | vfp_hw_state_valid: | ||
136 | tst r1, #FPEXC_EX | 134 | tst r1, #FPEXC_EX |
137 | bne process_exception @ might as well handle the pending | 135 | bne process_exception @ might as well handle the pending |
138 | @ exception before retrying branch | 136 | @ exception before retrying branch |