Did you guys need more details or can commit the patch. Thanks Original Message From: Arun Sharma Sent: Wednesday, October 1, 2014 10:59 To: Yvan Roux Cc: C Bergström; [email protected] Subject: Re: [Libunwind-devel] [PATCH] restore "x0" and "x1" registers
On Tue, Sep 30, 2014 at 3:55 AM, Yvan Roux <[email protected]> wrote: > Right, it is not specified in the AArch64 ABI that exception handlers > arguments have reserved registers as it uses the standard convention > to pass arguments, and in the GCC case only registers X0-X3 are used > for that (it is what I've implemented in Gregs.c in this port). > Thus, I think that they all have to be restored if they have been set > before (i.e. the corresponding eh_valid_mask is true). Arun does it > make sense ? I'd try to use ia64 and x86_64 as reference code on this topic. src/ia64/Gresume.c has some relevant comments on preserved vs scratch. My understanding of the aarch64 code is: (c->sigcontext_format == AARCH64_SCF_NONE) { // normal path } else { // exception handling path // eh_valid_mask is being looked at } What I'm not understanding is: how does the exception handling path end up with AARCH64_SCF_NONE? -Arun _______________________________________________ Libunwind-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/libunwind-devel
