[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v5 10/35] target/arm: Implement SVE store vector
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH v5 10/35] target/arm: Implement SVE store vector/predicate register |
Date: |
Mon, 25 Jun 2018 16:51:04 +0100 |
On 21 June 2018 at 02:53, Richard Henderson
<address@hidden> wrote:
> Signed-off-by: Richard Henderson <address@hidden>
> ---
> target/arm/translate-sve.c | 103 +++++++++++++++++++++++++++++++++++++
> target/arm/sve.decode | 6 +++
> 2 files changed, 109 insertions(+)
>
> diff --git a/target/arm/translate-sve.c b/target/arm/translate-sve.c
> index 954d6653d3..50f1ff75ef 100644
> --- a/target/arm/translate-sve.c
> +++ b/target/arm/translate-sve.c
> @@ -3762,6 +3762,89 @@ static void do_ldr(DisasContext *s, uint32_t vofs,
> uint32_t len,
> tcg_temp_free_i64(t0);
> }
>
> +/* Similarly for stores. */
> +static void do_str(DisasContext *s, uint32_t vofs, uint32_t len,
> + int rn, int imm)
> +{
> + /* Predicate register stores can be any multiple of 2. */
> + if (len_remain) {
> + tcg_gen_ld_i64(t0, cpu_env, vofs + len_align);
> + tcg_gen_addi_i64(addr, cpu_reg_sp(s, rn), imm + len_align);
> +
> + switch (len_remain) {
> + case 2:
> + case 4:
> + case 8:
> + tcg_gen_qemu_st_i64(t0, addr, midx, MO_LE | ctz32(len_remain));
> + break;
> +
> + case 6:
> + tcg_gen_qemu_st_i64(t0, addr, midx, MO_LEUL);
> + tcg_gen_addi_i64(addr, addr, 4);
> + tcg_gen_shri_i64(addr, addr, 32);
Shouldn't this be shifting t0 rather than addr ?
> + tcg_gen_qemu_st_i64(t0, addr, midx, MO_LEUW);
> + break;
> +
> + default:
> + g_assert_not_reached();
> + }
> + }
Otherwise
Reviewed-by: Peter Maydell <address@hidden>
thanks
-- PMM
- [Qemu-devel] [PATCH v5 07/35] target/arm: Implement SVE FP Multiply-Add Group, (continued)
- [Qemu-devel] [PATCH v5 08/35] target/arm: Implement SVE Floating Point Accumulating Reduction Group, Richard Henderson, 2018/06/20
- [Qemu-devel] [PATCH v5 09/35] target/arm: Implement SVE load and broadcast element, Richard Henderson, 2018/06/20
- [Qemu-devel] [PATCH v5 10/35] target/arm: Implement SVE store vector/predicate register, Richard Henderson, 2018/06/20
- Re: [Qemu-devel] [PATCH v5 10/35] target/arm: Implement SVE store vector/predicate register,
Peter Maydell <=
- [Qemu-devel] [PATCH v5 12/35] target/arm: Implement SVE prefetches, Richard Henderson, 2018/06/20
- [Qemu-devel] [PATCH v5 13/35] target/arm: Implement SVE gather loads, Richard Henderson, 2018/06/20
- [Qemu-devel] [PATCH v5 11/35] target/arm: Implement SVE scatter stores, Richard Henderson, 2018/06/20
- [Qemu-devel] [PATCH v5 15/35] target/arm: Implement SVE scatter store vector immediate, Richard Henderson, 2018/06/20