diff options
author | George Koehler <gkoehler@cvs.openbsd.org> | 2024-03-03 03:09:40 +0000 |
---|---|---|
committer | George Koehler <gkoehler@cvs.openbsd.org> | 2024-03-03 03:09:40 +0000 |
commit | 7c0627865bb445062dff313cf817835d9c5ec7f2 (patch) | |
tree | 8dad8c8e7d130a8a08cffbeba015fe69e1a40db4 /gnu/llvm | |
parent | 46ef208d20a183dc6d665b69b6ad0157ed40d04f (diff) |
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@
Diffstat (limited to 'gnu/llvm')
-rw-r--r-- | gnu/llvm/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp | 6 |
1 files changed, 0 insertions, 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)) { |