 I'm still not sure how to perform the whole operation in a single, atomic step. I'm also aware that wrapping x, y and z inside a struct and make it atomic is not feasible here, as the struct doesn't fit inside a single 00-bit register. 