[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 20/21] target-arm: A64: Add 2-reg-misc REV* inst
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH 20/21] target-arm: A64: Add 2-reg-misc REV* instructions |
Date: |
Tue, 28 Jan 2014 12:57:54 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 |
On 01/26/2014 11:25 AM, Peter Maydell wrote:
> + int elements = dsize / esize;
> + int i;
> + TCGv_i64 tcg_rd_hi, tcg_rd, tcg_rn;
> +
> + if (opsz >= 3) {
> + unallocated_encoding(s);
> + return;
> + }
> +
> + tcg_rn = tcg_temp_new_i64();
> + tcg_rd = tcg_const_i64(0);
> + tcg_rd_hi = tcg_const_i64(0);
> +
> + for (i = 0; i < elements; i++) {
> + int e_rev = (i & 0xf) ^ revmask;
> + int off = e_rev * esize;
> + read_vec_element(s, tcg_rn, rn, i, size);
> + if (off >= 64) {
> + tcg_gen_deposit_i64(tcg_rd_hi, tcg_rd_hi, tcg_rn, off - 64,
> esize);
> + } else {
> + tcg_gen_deposit_i64(tcg_rd, tcg_rd, tcg_rn, off, esize);
> + }
> + }
> + write_vec_element(s, tcg_rd, rd, 0, MO_64);
> + write_vec_element(s, tcg_rd_hi, rd, 1, MO_64);
Surely a special case for esize == 8 is in order, since that's bswap.
Otherwise,
Reviewed-by: Richard Henderson <address@hidden>
r~
- [Qemu-devel] [PATCH 00/21] A64: Add Neon instructions, second and third sets, Peter Maydell, 2014/01/26
- [Qemu-devel] [PATCH 20/21] target-arm: A64: Add 2-reg-misc REV* instructions, Peter Maydell, 2014/01/26
- Re: [Qemu-devel] [PATCH 20/21] target-arm: A64: Add 2-reg-misc REV* instructions,
Richard Henderson <=
- [Qemu-devel] [PATCH 19/21] target-arm: A64: Add narrowing 2-reg-misc instructions, Peter Maydell, 2014/01/26
- [Qemu-devel] [PATCH 17/21] target-arm: A64: Implement 2-register misc compares, ABS, NEG, Peter Maydell, 2014/01/26
- [Qemu-devel] [PATCH 18/21] target-arm: A64: Implement 2-reg-misc CNT, NOT and RBIT, Peter Maydell, 2014/01/26
- [Qemu-devel] [PATCH 10/21] target-arm: A64: Implement remaining non-pairwise int SIMD 3-reg-same insns, Peter Maydell, 2014/01/26
- [Qemu-devel] [PATCH 01/21] target-arm: A64: Add SIMD three-different multiply accumulate insns, Peter Maydell, 2014/01/26