On 9/6/19 3:57 AM, David Hildenbrand wrote: > + /* > + * Our access should not exceed single pages, as we must not report > access > + * exceptions exceeding the actually copied range (which we don't know at > + * this point). We might over-indicate watchpoints within the pages > + * (if we ever care, we have to limit processing to a single byte). > + */ > + srca = access_prepare(env, s, len, MMU_DATA_LOAD, ra); > + desta = access_prepare(env, d, len, MMU_DATA_STORE, ra); > + for (i = 0; i < len; i++) { > + const uint8_t v = access_get_byte(env, &srca, i, ra); > + > + access_set_byte(env, &desta, i, v, ra); > if (v == c) { > - set_address_zero(env, r1, d + len); > + set_address_zero(env, r1, d + i); > return 1; > }
Worth using memchr + memmove w/ nondestructive overlap? That said, Reviewed-by: Richard Henderson <richard.hender...@linaro.org> r~