[llvm] [Xtensa] Fix FP register scavenging. (PR #215984)

Andrei Safronov via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 13 01:19:45 PDT 2026


https://github.com/andreisfr created https://github.com/llvm/llvm-project/pull/215984

None

>From 69a38470bfd0e220bdcd141ace2765ddf0194a4b Mon Sep 17 00:00:00 2001
From: Andrei Safronov <safronov at espressif.com>
Date: Mon, 10 Aug 2026 11:17:29 +0300
Subject: [PATCH] [Xtensa] Fix FP register scavenging.

---
 llvm/lib/Target/Xtensa/XtensaFrameLowering.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/lib/Target/Xtensa/XtensaFrameLowering.cpp b/llvm/lib/Target/Xtensa/XtensaFrameLowering.cpp
index 1c0dc66a46144..0c090f04e2508 100644
--- a/llvm/lib/Target/Xtensa/XtensaFrameLowering.cpp
+++ b/llvm/lib/Target/Xtensa/XtensaFrameLowering.cpp
@@ -368,7 +368,7 @@ void XtensaFrameLowering::processFunctionBeforeFrameFinalized(
   auto *XtensaFI = MF.getInfo<XtensaMachineFunctionInfo>();
   unsigned ScavSlotsNum = 0;
 
-  if (!isInt<12>(MaxSPOffset))
+  if (!isInt<12>(MaxSPOffset) || hasFP(MF))
     ScavSlotsNum = 1;
 
   // Far branches over 18-bit offset require a spill slot for scratch register.



More information about the llvm-commits mailing list