[PPC64][libunwind] Fix r2 not properly restored

This change makes each unwind step inspect the instruction at the
return address and, if needed, read r2 from its saved location and
modify the context appropriately.

The unwind logic is able to handle both ELFv1 and ELFv2 stacks.

Reported by Bug 41050

Patch by Leandro Lupori!

Differential Revision: https://reviews.llvm.org/D59694

git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@360861 91177308-0d34-0410-b5e6-96231b3b80d8
3 files changed