[PATCH] D63964: [ARM] Fix unwind info for Thumb1 functions that save high registers.

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 28 16:17:31 PDT 2019


efriedma created this revision.
efriedma added a reviewer: ostannard.
Herald added subscribers: kristof.beyls, javed.absar.
Herald added a project: LLVM.

There were two issues here: one, some of the relevant instructions were missing the expected "FrameSetup" flag, and two, ARMAsmPrinter::EmitUnwindingInstruction wasn't expecting "mov" instructions in the prologue.

I'm sticking the additional state into ARMFunctionInfo so it's obvious it only applies to the current function.

I considered a few alternative approaches where we would compute the correct unwind information as part of the prologue/epilogue lowering, but it seems like a lot of work to introduce pseudo-instructions, and the current code seems to be reliable enough.

Fixes https://bugs.llvm.org/show_bug.cgi?id=42408.


Repository:
  rL LLVM

https://reviews.llvm.org/D63964

Files:
  lib/Target/ARM/ARMAsmPrinter.cpp
  lib/Target/ARM/ARMMachineFunctionInfo.h
  lib/Target/ARM/Thumb1FrameLowering.cpp
  test/CodeGen/Thumb/callee_save.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D63964.207172.patch
Type: text/x-patch
Size: 17269 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190628/7a51c426/attachment.bin>


More information about the llvm-commits mailing list