AtomicStrongCAS clobbers both eax and whatever you choose to hold the boolean result. The boolean result is set after eax is set. So the boolean result could use eax if eax is otherwise unused. But, we currently fail at this. This is one of those things that is very likely to be super complex and very unlikely to be super profitable, but it's worth thinking about in case some easy solution does present itself.