[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [qemu-s390x] [Qemu-devel] [PATCH v1 7/7] s390x/tcg: Implement LOAD C
From: |
Richard Henderson |
Subject: |
Re: [qemu-s390x] [Qemu-devel] [PATCH v1 7/7] s390x/tcg: Implement LOAD COUNT TO BLOCK BOUNDARY |
Date: |
Mon, 25 Feb 2019 08:14:04 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 |
On 2/25/19 3:55 AM, David Hildenbrand wrote:
> +uint64_t HELPER(lcbb)(uint64_t addr, uint32_t m3)
> +{
> + const uint32_t block_size = 1ul << (m3 + 6);
> + const uint64_t rounded_addr = ROUND_UP(addr, block_size);
> + uint32_t to_load = 16;
> +
> + if (rounded_addr != addr) {
> + to_load = MIN(rounded_addr - addr, to_load);
> + }
> + return to_load;
> +}
I don't understand all of this "blocksize" business, when they are all powers
of two, and the maximum value returned is 16.
As far as I can see, the result is obtained by -(addr | -16) regardless of the
value of m3.
r~
- [qemu-s390x] [PATCH v1 3/7] s390x/tcg: Clarify terminology in vec_reg_offset(), (continued)
[qemu-s390x] [PATCH v1 6/7] s390x/tcg: Implement LOAD LENGTHENED short HFP to long HFP, David Hildenbrand, 2019/02/25
[qemu-s390x] [PATCH v1 1/7] s390x/tcg: RXE has an optional M3 field, David Hildenbrand, 2019/02/25
[qemu-s390x] [PATCH v1 2/7] s390x/tcg: Simplify disassembler operands initialization, David Hildenbrand, 2019/02/25