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: [RFC][AARCH64] TARGET_ATOMIC_ASSIGN_EXPAND_FENV hook


On 29 April 2014 03:37, Kugan <kugan.vivekanandarajah@linaro.org> wrote:
>
> On 28/04/14 21:01, Ramana Radhakrishnan wrote:
>> On 04/26/14 11:57, Kugan wrote:
>>> Attached patch implements TARGET_ATOMIC_ASSIGN_EXPAND_FENV for AARCH64.
>>> With this, atomic test-case gcc.dg/atomic/c11-atomic-exec-5.c now PASS.
>>>
>>> This implementation is based on SPARC and i386 implementations.
>>>
>>> Regression tested on qemu-aarch64 for aarch64-none-linux-gnu with no new
>>> regression. Is this OK for trunk?
>>
>> Again like A32 please test on hardware to make sure this behaves
>> correctly with c11-atomic-exec-5.c .
>>
>> If you don't have access to hardware, let us know : we'll take it for a
>> spin once you update the patch according to Marcus's comments.
>>
>
> Thanks for the review. I have updated the patch. I also have updated
> hold, clear and update to be exactly as in feholdexcpt.c, fclrexcpt.c
> and feupdateenv.c of glibc/ports/sysdeps/aarch64/fpu.
>

Kugan, I've not looked at the respin in detail yet, but it has just
occurred to me that the sequence used here to set FPCR is
insufficient.  The architecture reference manual requires that any
write to FPCR must be syncrhronized by a context synchronization
operation so we need to plant an ISB after the write.   Both the write
and ISB are likely to be expensive on some implementations so it would
be good to ensure that both the write and the isb are scheduled
independently.  IIRC there si

> I have limited real hardware access and just did a bootstrap and tested
> c11-atomic-exec-5.c alone to make sure that it PASS. I have also
> regression tested again on qemu-aarch64 for aarch64-none-linux-gnu with
> no new regressions. I will appreciate if you could do the regression
> testing on real hw.

Once the ISB issue is resolved I'll give the patch a spin on HW here.
/Marcus


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