On 02/05/18 18:28, Jeff Law wrote:
On 03/14/2018 11:40 AM, Sudakshina Das wrote:
Hi

This patch is another partial fix for PR 84521. This is adding a
definition to one of the target hooks used in the SJLJ implemetation so
that AArch64 defines the hard_frame_pointer_rtx as the
TARGET_BUILTIN_SETJMP_FRAME_VALUE. As pointed out by Wilco there is
still a lot more work to be done for these builtins in the future.

Testing: Bootstrapped and regtested on aarch64-none-linux-gnu and added
new test.

Is this ok for trunk?

Sudi


*** gcc/ChangeLog ***

2018-03-14  Sudakshina Das  <sudi....@arm.com>

     * builtins.c (expand_builtin_setjmp_receiver): Update condition
     to restore frame pointer.
     * config/aarch64/aarch64.h (DONT_USE_BUILTIN_SETJMP): Update
     comment.
     * config/aarch64/aarch64.c (aarch64_builtin_setjmp_frame_value):
     New.
     (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.

*** gcc/testsuite/ChangeLog ***

2018-03-14  Sudakshina Das  <sudi....@arm.com>

     * gcc.c-torture/execute/pr84521.c: New test.
So just to be clear, you do _not_ want the frame pointer restored here?
Right?

aarch64_builtin_setjmp_frame_value always returns hard_frame_pointer_rtx
which will cause the generic code in builtins.c to not restore the frame
pointer.

Have you looked at other targets which define builtin_setjmp_frame_value
to determine if they'll do the right thing.  x86 and sparc are the most
important.  I see that arc, vax and avr also define that hook, but are
obviously harder to test.


Sorry this fell off my radar. I have reg-tested it on x86 and tried it
on the sparc machine from the gcc farm but I think I couldn't finished
the run and now its showing to he unreachable.

Sudi

jeff



Reply via email to