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

Richard Henderson rth@redhat.com
Mon Aug 26 17:22:00 GMT 2013


On 08/22/2013 02:57 PM, Torvald Riegel wrote:
> On Thu, 2013-08-22 at 12:05 -0700, Richard Henderson wrote:
>> 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.
> 
> Oops.  Picked fix (2).  Better now?
> 

Move the andl of edi down into the HAVE_AS_RTM block, above the orl of
HTMRetriedAfterAbort.  Ok with that change.


r~



More information about the Gcc-patches mailing list