The upper two bytes in our 64-bit pointers are always zero in reality (shortly about http://en.wikipedia.org/wiki/X86-64#Canonical_form_addresses).
The reserved 16 bits can be used for e.g. implementing spin-lock on pointers with no memory overhead (see https://github.com/facebook/folly/blob/master/folly/docs/PackedSyncPtr.md from FaceBook Open Library as an example).

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s