[Gc] Re: Re[4]: libatomic_ops aarch64 support

Yvan Roux yvan.roux at linaro.org
Thu Feb 28 13:57:23 PST 2013


Hi Ivan,

I finally fixed the double_[load|store|compare_and_swap] AArch64
support. I defined double_ptr_storage as an unsigned __int128 and used
the load and store exclusive pair registers instruction of the A64
isa. The testsuite is now fine (notice that the failures with stack
and malloc was due to the previous compare_and_swap implementation). I
kept the generic implementation garded by an ifndef, but maybe they
could be put in something like a double_generic.h.

Cheers,
Yvan

On 15 February 2013 15:51, Yvan Roux <yvan.roux at linaro.org> wrote:
> Ivan,
>
> the native build is fine after the small fix below in your last commit
> (the issue I encountered was on my side), we just have to fix the
> correctness ;)
>
>      return (int)__atomic_compare_exchange_n(&addr->AO_whole,
> -                                &old_val->AO_whole /* p_expected */,
> +                                &old_val.AO_whole /* p_expected */,
>
> Yvan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: aarch64.patch
Type: application/octet-stream
Size: 7508 bytes
Desc: not available
Url : http://napali.hpl.hp.com/pipermail/gc/attachments/20130228/419f501b/aarch64.obj


More information about the Gc mailing list