On 11.09.19 16:54, Richard Henderson wrote: > On 9/6/19 3:57 AM, David Hildenbrand wrote: >> if (dest == src + 1) { >> fast_memset(env, dest, cpu_ldub_data_ra(env, src, ra), l, ra); >> - } else if (dest < src || src + l <= dest) { >> + } else if (!is_destructive_overlap(env, dest, src, l)) { >> fast_memmove(env, dest, src, l, ra); >> } else { >> for (i = 0; i < l; i++) { > > I suppose, though last time I checked fast_memmove didn't support wrapping.
Yes, that's fixed by access_prepare(), access_memmove(). Wrapping is/was broken in most mem handlers ... > > Reviewed-by: Richard Henderson <richard.hender...@linaro.org> > > r~ > -- Thanks, David / dhildenb