Aarch64 implementation for dwarf exception handling
Yufeng Zhang 张玉峰
yufeng.zhang.uk@googlemail.com
Thu Feb 13 11:41:00 GMT 2014
Hi Shiva,
I wonder if you have any test case to demonstrate the potential
code-gen issue you are concerned with.
Thanks,
Yufeng
On Thu, Feb 13, 2014 at 2:14 AM, Shiva Chen <shiva0217@gmail.com> wrote:
> Hi,
>
> I have a question about the implementation of
>
> aarch64_final_eh_return_addr
>
> which is used to point out the return address of the frame
>
> According the source code
>
> If FP is not needed
>
> return gen_frame_mem (DImode,
> plus_constant (Pmode,
> stack_pointer_rtx,
> fp_offset
> + cfun->machine->frame.saved_regs_size
> - 2 * UNITS_PER_WORD));
>
>
> According the frame layout
>
> +-------------------------------+ <-- arg_pointer_rtx
> |
> | callee-allocated save area
> | for register varargs
> |
> +-------------------------------+
> |
> | local variables
> |
> +-------------------------------+ <-- frame_pointer_rtx
> |
> | callee-saved registers
> |
> +-------------------------------+
> | LR'
> +-------------------------------+
> | FP'
> P+-------------------------------+ <-- hard_frame_pointer_rtx
> | dynamic allocation
> +-------------------------------+
> |
> | outgoing stack arguments
> |
> +-------------------------------+ <-- stack_pointer_rtx
>
> Shouldn't the return value be
>
> return gen_frame_mem (DImode,
> plus_constant (Pmode,
> stack_pointer_rtx,
> fp_offset
> + 2* UNITS_PER_WORD));
>
> Or I just mis-understanding something ?
>
>
> Hope someone could give me a tip.
>
> It would be very helpful.
>
> Thanks
>
> Shiva Chen
More information about the Gcc
mailing list