added support for cmpxchg