[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [qemu-s390x] [Qemu-devel] [PATCH v1 15/33] s390x/tcg: Implement VECT
From: |
David Hildenbrand |
Subject: |
Re: [qemu-s390x] [Qemu-devel] [PATCH v1 15/33] s390x/tcg: Implement VECTOR LOAD TO BLOCK BOUNDARY |
Date: |
Thu, 28 Feb 2019 09:40:57 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 |
On 27.02.19 17:08, Richard Henderson wrote:
> On 2/26/19 3:38 AM, David Hildenbrand wrote:
>> +void HELPER(vll)(CPUS390XState *env, void *v1, uint64_t addr, uint64_t
>> bytes)
>> +{
>> + S390Vector tmp = {};
>> + int i;
>> +
>> + bytes = MIN(bytes, 16);
>> + for (i = 0; i < bytes; i++) {
>> + uint8_t byte = cpu_ldub_data_ra(env, addr, GETPC());
>> +
>> + s390_vec_write_element8(&tmp, i, byte);
>> + addr = wrap_address(env, addr + 1);
>> + }
>
> TODO:
>
> if (likely(bytes >= 16)) {
> uint64_t t0 = cpu_ldq_data_ra(env, addr, GETPC());
> uint64_t t1 = cpu_ldq_data_ra(env, addr, GETPC());
adding + wrapping the address of course.
> s390_vec_write_element64(v1, 0, t0);
> s390_vec_write_element64(v1, 1, t1);
> } else {
> // byte loop
> }
>
> But what you have is correct, so
Makes sense and gets rid of the MIN(), so changed :)
Thanks!
> Reviewed-by: Richard Henderson <address@hidden>
>
>
> r~
>
--
Thanks,
David / dhildenb
- Re: [qemu-s390x] [Qemu-devel] [PATCH v1 08/33] s390x/tcg: Implement VECTOR LOAD, (continued)
- [qemu-s390x] [PATCH v1 05/33] s390x/tcg: Implement VECTOR GATHER ELEMENT, David Hildenbrand, 2019/02/26
- [qemu-s390x] [PATCH v1 12/33] s390x/tcg: Implement VECTOR LOAD GR FROM VR ELEMENT, David Hildenbrand, 2019/02/26
- [qemu-s390x] [PATCH v1 20/33] s390x/tcg: Implement VECTOR PACK, David Hildenbrand, 2019/02/26
- [qemu-s390x] [PATCH v1 15/33] s390x/tcg: Implement VECTOR LOAD TO BLOCK BOUNDARY, David Hildenbrand, 2019/02/26
- [qemu-s390x] [PATCH v1 16/33] s390x/tcg: Implement VECTOR LOAD VR ELEMENT FROM GR, David Hildenbrand, 2019/02/26
- [qemu-s390x] [PATCH v1 18/33] s390x/tcg: Implement VECTOR LOAD WITH LENGTH, David Hildenbrand, 2019/02/26
- [qemu-s390x] [PATCH v1 19/33] s390x/tcg: Implement VECTOR MERGE (HIGH|LOW), David Hildenbrand, 2019/02/26
- [qemu-s390x] [PATCH v1 13/33] s390x/tcg: Implement VECTOR LOAD LOGICAL ELEMENT AND ZERO, David Hildenbrand, 2019/02/26