Changes between Version 6 and Version 7 of AtomicPrimops


Ignore:
Timestamp:
Jun 7, 2014 1:46:45 PM (12 months ago)
Author:
tibbe
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AtomicPrimops

    v6 v7  
    3333A `CallishMachOp` already acts as a memory barrier; the Cmm optimizer will not float loads/stores past it. We'll document the reliance on this behavior in the sinking pass to make sure that if it's ever changed, the optimizer is taught about how to handle these atomic operations in some different way. 
    3434 
    35 The `CallishMachOp` will be translated to the correct instructions in the backends (e.g. `lock; add` on x86). 
     35The `CallishMachOp` will be translated to the correct instructions in the backends (e.g. `lock; xadd` on x86). 
    3636 
    3737As the Cmm code generator cannot reorder reads/writes around prim calls (i.e. `CallishMachOp`s) the `memory_order_seq_cst` semantics should be preserved, as long as the backend outputs a memory barrier to prevent CPU speculation.