[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [qemu-s390x] [Qemu-devel] [PATCH v2 06/28] s390x/tcg: MVC: Use is_de
From: |
David Hildenbrand |
Subject: |
Re: [qemu-s390x] [Qemu-devel] [PATCH v2 06/28] s390x/tcg: MVC: Use is_destructive_overlap() |
Date: |
Wed, 11 Sep 2019 18:13:59 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 |
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 <address@hidden>
>
> r~
>
--
Thanks,
David / dhildenb
- Re: [qemu-s390x] [Qemu-devel] [PATCH v2 02/28] s390x/tcg: MVCL: Zero out unused bits of address, (continued)
- [qemu-s390x] [PATCH v2 05/28] s390x/tcg: MVC: Increment the length once, David Hildenbrand, 2019/09/06
- [qemu-s390x] [PATCH v2 06/28] s390x/tcg: MVC: Use is_destructive_overlap(), David Hildenbrand, 2019/09/06
- [qemu-s390x] [PATCH v2 07/28] s390x/tcg: MVPG: Check for specification exceptions, David Hildenbrand, 2019/09/06
- [qemu-s390x] [PATCH v2 08/28] s390x/tcg: MVPG: Properly wrap the addresses, David Hildenbrand, 2019/09/06
- [qemu-s390x] [PATCH v2 09/28] s390x/tcg: MVCLU/MVCLE: Process max 4k bytes at a time, David Hildenbrand, 2019/09/06
- [qemu-s390x] [PATCH v2 10/28] s390x/tcg: MVCS/MVCP: Check for special operation exceptions, David Hildenbrand, 2019/09/06
- [qemu-s390x] [PATCH v2 11/28] s390x/tcg: MVCS/MVCP: Properly wrap the length, David Hildenbrand, 2019/09/06