[THUMB2] Frame pointer for arm with THUMB2 mode.
Set frame pointer to the predictable location in the stack frame
for arm with THUMB2 mode.
Denis Khalikov <d.khalikov@partner.samsung.com>
* config/arm/arm.c (arm_emit_multi_reg_pop_no_return): New function.
(arm_compute_initial_elimination_offset): Add support for
TARGET_THUMB_STACK_UNWIND.
(arm_expand_prologue): Emit function prologue related to
TARGET_THUMB_STACK_UNWIND.
(thumb2_expand_return): Emit function epilogue related to
TARGET_THUMB_STACK_UNWIND.
(arm_expand_epilogue): Emit function epilogue related to
TARGET_THUMB_STACK_UNWIND.
* config/arm/arm.h (TARGET_THUMB_STACK_UNWIND): New define.
(INITIAL_ELIMINATION_OFFSET): Add support for
TARGET_THUMB_STACK_UNWIND.
* config/arm/arm.opt: Add compile-time option THUMB_FP.
* gcc/testsuite/c-c++-common/asan/fast-unwind-thumb.c: New tests.
Change-Id: I45a68a1216f3115c5199e5cea14c344fabe11fc1