[X86] Emit .cfi_escape GNU_ARGS_SIZE when adjusting the stack before calls
authorMichael Kuperstein <michael.m.kuperstein@intel.com>
Wed, 7 Oct 2015 07:01:31 +0000 (07:01 +0000)
committerMichael Kuperstein <michael.m.kuperstein@intel.com>
Wed, 7 Oct 2015 07:01:31 +0000 (07:01 +0000)
commit6d30abd62eb9c8993dc8104daf3036b8158090b5
tree208ccf4c5d75616e31633b446bec6b4522b2b67e
parent2fe1f6e4f3f58218bbcc3568be435745c980c345
[X86] Emit .cfi_escape GNU_ARGS_SIZE when adjusting the stack before calls

When outgoing function arguments are passed using push instructions, and EH
is enabled, we may need to indicate to the stack unwinder that the stack
pointer was adjusted before the call.

This should fix the exception handling issues in PR24792.

Differential Revision: http://reviews.llvm.org/D13132

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@249522 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/MC/MCDwarf.h
include/llvm/MC/MCStreamer.h
lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
lib/MC/MCAsmStreamer.cpp
lib/MC/MCDwarf.cpp
lib/MC/MCStreamer.cpp
lib/Target/X86/X86FrameLowering.cpp
test/CodeGen/X86/push-cfi-obj.ll [new file with mode: 0644]
test/CodeGen/X86/push-cfi.ll [new file with mode: 0644]