equal
deleted
inserted
replaced
53 if (new_val == old_val) { |
53 if (new_val == old_val) { |
54 // Someone else beat us to it |
54 // Someone else beat us to it |
55 inc_live = false; |
55 inc_live = false; |
56 return false; |
56 return false; |
57 } |
57 } |
58 const bm_word_t cur_val = Atomic::cmpxchg(new_val, addr, old_val); |
58 const bm_word_t cur_val = Atomic::cmpxchg(addr, old_val, new_val); |
59 if (cur_val == old_val) { |
59 if (cur_val == old_val) { |
60 // Success |
60 // Success |
61 const bm_word_t marked_mask = bit_mask(bit); |
61 const bm_word_t marked_mask = bit_mask(bit); |
62 inc_live = !(old_val & marked_mask); |
62 inc_live = !(old_val & marked_mask); |
63 return true; |
63 return true; |