From ba8279b1ec0bb33a36651fdeee4fa7126b68d98e Mon Sep 17 00:00:00 2001 From: gkoehler Date: Sun, 3 Mar 2024 03:09:39 +0000 Subject: [PATCH] For macppc, add missing CFI for cr2, cr3, cr4 clang -S was missing a line like ".cfi_offset cr2, -16" in functions that spill cr2 (or cr3, cr4) to the stack. This was breaking a few C++ exceptions. This fix adds the missing CFI. This will fix the C++ exception that was crashing egdb from ports/devel/gdb when you did "q to quit" in the pager. ok kettenis@ tobhe@ --- gnu/llvm/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/gnu/llvm/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp b/gnu/llvm/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp index bb6a46b50fa..7e547789b8e 100644 --- a/gnu/llvm/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp +++ b/gnu/llvm/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp @@ -1193,12 +1193,6 @@ void PPCFrameLowering::emitPrologue(MachineFunction &MF, if ((Reg == PPC::X2 || Reg == PPC::R2) && MustSaveTOC) continue; - // For SVR4, don't emit a move for the CR spill slot if we haven't - // spilled CRs. - if (isSVR4ABI && (PPC::CR2 <= Reg && Reg <= PPC::CR4) - && !MustSaveCR) - continue; - // For 64-bit SVR4 when we have spilled CRs, the spill location // is SP+8, not a frame-relative slot. if (isSVR4ABI && isPPC64 && (PPC::CR2 <= Reg && Reg <= PPC::CR4)) { -- 2.20.1