
Well, according to http://en.wikipedia.org/wiki/X86-64#Virtual_address_space_details it might be dangerous to rely on the fact that top 16 bits are not currently used. On Fri, 18 Jan 2008 15:03:21 -0700, Tim Blechmann <tim@klingt.org> wrote:
On Fri, 18 Jan 2008 12:43:39 -0800, Cory Nelson wrote:
On Jan 18, 2008 9:56 AM, Jeffrey Yasskin <jyasskin@google.com> wrote:
using shared_ptr<T> as a value type. The implementation I'm thinking of uses hazard pointers (http://erdani.org/publications/cuj-2004-12.pdf) and double-wide-cas (cmpxchg16b on x86-64). So I have three questions for this list:
Athlon 64s (pre-dual core) do not have cmpxchg16b - how do you plan to get around that?
iirc, the x86_64 doesn't actually use a 64-bit virtual address space, but only 48-bit ... the remaining 16 bit could be used to store the tag ...
best, tim