[cpp-threads] Brief example ITANIUM Implementation for C/C++ Memory Model

Hans Boehm Hans.Boehm at hp.com
Wed Dec 24 05:58:06 GMT 2008



On Tue, 23 Dec 2008, Alexander Terekhov wrote:

> Following the lead of
>
> http://www.rdrop.com/users/paulmck/scalability/paper/N2745r.2008.12.16a.html
> (cmpxchg aside for a moment aside, "Store Seq Cst" is surely busted)
>
> here's a brief example ITANIUM implementation for C/C++ Memory Model:
>
> (cmpxchg aside for a moment)
>
> Load Relaxed:  ld
> Load Consume:  ld
> Load Acquire:  ld.acq
> Load Seq_Cst:  mf,ld.acq
> Store Relaxed: st
> Store Release: st.rel
> Store Seq Cst: st.rel,mf
> Consume Fence: <ignore>
> Acquire Fence: mf
> Release Fence: mf
> Acq_Rel Fence: mf
> Seq_Cst Fence: mf
>
> Any objections and/or questions?
None, except that Load relaxed is also ld.acq, in order to prevent
reordering of loads from the same location.

Hans

>
> TIA.
>
> regards,
> alexander.
>
> --
> cpp-threads mailing list
> cpp-threads at decadentplace.org.uk
> http://www.decadentplace.org.uk/cgi-bin/mailman/listinfo/cpp-threads
>



More information about the cpp-threads mailing list