Why is the xadd instruction used to get atomic operation?