This commit introduces two fake instructions MORESTACK_RET and
authorRafael Espindola <rafael.espindola@gmail.com>
Wed, 26 Oct 2011 21:12:27 +0000 (21:12 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Wed, 26 Oct 2011 21:12:27 +0000 (21:12 +0000)
commite840e88239cf92a065cbf5f5b9c7d18bc139c0e1
tree35284b23a73dec41789d4f75e55078bd4a090c70
parent75757f9fd13bffc51a6aa30eefe706c4f84d0913
This commit introduces two fake instructions MORESTACK_RET and
MORESTACK_RET_RESTORE_R10; which are lowered to a RET and a RET
followed by a MOV respectively.  Having a fake instruction prevents
the verifier from seeing a MachineBasicBlock end with a
non-terminator (MOV).  It also prevents the rather eccentric case of a
MachineBasicBlock ending with RET but having successors nevertheless.

Patch by Sanjoy Das.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143062 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86FrameLowering.cpp
lib/Target/X86/X86InstrCompiler.td
lib/Target/X86/X86MCInstLower.cpp
test/CodeGen/X86/segmented-stacks.ll