value swap macro change with xor