Describir: x86-TSO: A Rigorous and Usable Programmer's Model for x86 Multiprocessors.