mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-23 10:54:07 +08:00
arm: add erratum mitigation to __gnu_cmse_nonsecure_call [PR102035]
Add the recommended erratum mitigation sequence to
__gnu_cmse_nonsecure_call for use on Armv8-m.main devices. Since this
is in the library code we cannot know in advance whether the core we
are running on will be affected by this, so always enable it.
libgcc:
PR target/102035
* config/arm/cmse_nonsecure_call.S (__gnu_cmse_nonsecure_call):
Add vlldm erratum work-around.
(cherry picked from commit 574e7950bd
)
This commit is contained in:
parent
a3e0dafd46
commit
a6db929252
@ -102,6 +102,11 @@ blxns r4
|
||||
#ifdef __ARM_PCS_VFP
|
||||
vpop.f64 {d8-d15}
|
||||
#else
|
||||
/* VLLDM erratum mitigation sequence. */
|
||||
mrs r5, control
|
||||
tst r5, #8 /* CONTROL_S.SFPA */
|
||||
it ne
|
||||
.inst.w 0xeeb00a40 /* vmovne s0, s0 */
|
||||
vlldm sp /* Lazy restore of d0-d16 and FPSCR. */
|
||||
add sp, sp, #0x88 /* Free space used to save floating point registers. */
|
||||
#endif /* __ARM_PCS_VFP */
|
||||
|
Loading…
Reference in New Issue
Block a user