https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101197
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Also, one will probably need to rename all the MOVE_* and *move_* stuff to COPY_* and *copy_* and reserve MOVE_* and *move_* for the overlapping copies. And most likely on various arches it might need smaller size limits, because it will also depend on how many registers the target has (besides fixes/special ones or those that likely need to be used for the to and from addresses), some small spilling might be ok, but heavy spilling would essentially mean memcpy to a temporary spill area and memcpy back.