swap value macro change with xor