Currently, arraycopy operations can cause temporary from-space-references in the destination array. Those would be subsequently updated by an arraycopy-post-barrier, but it's awkward because this temporary from-space references need to be dealt with, e.g. in the CAS-obj barrier, and a few other places.
We can update the src array before copying, and therefore ensure to never see a from-space-reference in the dst array, ever. This opens up a couple of opportunities for simplification and optimization.