This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] libitm: Add custom HTM fast path for RTM on x86_64.


On 08/22/2013 11:39 AM, Torvald Riegel wrote:
> +	/* Store edi for future HTM fast path retries.  We use a stack slot
> +	   lower than the jmpbuf so that the jmpbuf's rip field will overlap
> +	   with the proper return address on the stack.  */
> +	movl	%edi, -64(%rsp)

You havn't allocated the stack frame here, and you're storing
outside the redzone.  This is invalid.

Two possibilities:

 (1) always allocate the stack frame on entry to
     the function (adds two register additions to
     the htm fast path -- in the noise i'd think)

 (2) store the edi value in the non-htm path, with
     the pr_HTMRetryableAbort bit or'd in.  (adds an
     extra store to the non-htm path; probably noise).
     You'd want to mask out that bit when you reload it.


r~




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]