Reviewed-on: https://go-review.googlesource.com/14922
From-SVN: r228087
-90ebe729992443dc00b19c76b28d1270e17245a4
+66c113f1af300ce27b99f18f792901d7327d6699
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
// So we use 17msb of pointers as ABA counter.
# define PTR_BITS 47
# endif
-# endif
# define CNT_BITS (64 - PTR_BITS + 3)
static inline uint64 lfPack(LFNode *node, uintptr cnt) {
return ((uint64)(node)<<(64-PTR_BITS)) | (cnt&(((1<<CNT_BITS)-1)));
static inline LFNode* lfUnpack(uint64 val) {
return (LFNode*)((val >> CNT_BITS) << 3);
}
+# endif
#else
static inline uint64 lfPack(LFNode *node, uintptr cnt) {
return ((uint64)(uintptr)(node)<<32) | cnt;