fix(build): enable fp during fp save/restore

Newer compilers such as clang/LLVM 19 flag uses of floating point
instructions when the architecture does not allow for it. We can
temporarily enable the use of floating point operations where it
it is safe and necessary for the build to succeed.

Change-Id: I1a832f846915c35792684906c94aef81c1f72d63
Signed-off-by: Andrei Homescu <ahomescu@google.com>
Signed-off-by: Per Larsen <perlarsen@google.com>
This commit is contained in:
Per Larsen 2025-01-16 11:46:25 +00:00 committed by Andrei Homescu
parent e83738c074
commit 5141de1443

View file

@ -75,6 +75,9 @@
*/
#if CTX_INCLUDE_FPREGS
func fpregs_context_save
.arch_extension fp
/* Temporarily enable floating point */
/* Save x0 and pass its original value to fpregs_state_save */
mov x1, x0
@ -97,6 +100,7 @@ func fpregs_context_save
fpregs_state_save x1, x9
.arch_extension nofp
ret
endfunc fpregs_context_save
@ -115,6 +119,9 @@ endfunc fpregs_context_save
* ------------------------------------------------------------------
*/
func fpregs_context_restore
.arch_extension fp
/* Temporarily enable floating point */
/* Save x0 and pass its original value to fpregs_state_restore */
mov x1, x0
@ -137,6 +144,7 @@ func fpregs_context_restore
fpregs_state_restore x1, x9
.arch_extension nofp
ret
endfunc fpregs_context_restore
#endif /* CTX_INCLUDE_FPREGS */