This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc 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: __HAVE_64B_ATOMICS and alignment


On 11/28/2016 12:51 PM, Torvald Riegel wrote:
This means that for an LP32 architecture such as i686 which could
conceivable provide 64-bit atomics, we might try to perform an atomic
operation on a potentially misaligned uint64_t value.
i686 has no 64b atomic loads or stores.

double loads and stores via the FPU are atomic, and they preserve all bit patterns. (Starting with the Pentium, the FPU was sometimes used to implement string copies.) Hotspot uses this capability to implement volatile doubles and longs if SSE is not available, so it better be true. :)

Thanks,
Florian


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