[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 21/68] target/arm: Convert Synchronization pr
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH v2 21/68] target/arm: Convert Synchronization primitives |
Date: |
Fri, 23 Aug 2019 16:28:01 +0100 |
On Mon, 19 Aug 2019 at 22:38, Richard Henderson
<address@hidden> wrote:
>
> Signed-off-by: Richard Henderson <address@hidden>
> ---
> target/arm/translate.c | 560 ++++++++++++++++++++++-------------------
> target/arm/a32.decode | 48 ++++
> target/arm/t32.decode | 46 ++++
> 3 files changed, 396 insertions(+), 258 deletions(-)
> +static bool op_stl(DisasContext *s, arg_STL *a, TCGMemOp mop)
> +{
> + TCGv_i32 addr, tmp;
> +
> + if (!ENABLE_ARCH_8) {
> + return false;
> + }
> + addr = load_reg(s, a->rn);
> +
> + tmp = load_reg(s, a->rt);
> + tcg_gen_mb(TCG_MO_ALL | TCG_BAR_STRL);
> + gen_aa32_st_i32(s, tmp, addr, get_mem_index(s), mop | s->be_data);
> + disas_set_da_iss(s, mop, a->rt | ISSIsAcqRel | ISSIsWrite);
> +
> + tcg_temp_free_i32(tmp);
> + tcg_temp_free_i32(addr);
> + return true;
> +}
> +
> - rm = insn & 0xf;
> - tmp = load_reg(s, rm);
> - switch (op1) {
> - case 0: /* stl */
> - gen_aa32_st32_iss(s, tmp, addr,
> - get_mem_index(s),
> - rm | ISSIsAcqRel);
> - break;
> - case 2: /* stlb */
> - gen_aa32_st8_iss(s, tmp, addr,
> - get_mem_index(s),
> - rm | ISSIsAcqRel);
> - break;
> - case 3: /* stlh */
> - gen_aa32_st16_iss(s, tmp, addr,
> - get_mem_index(s),
> - rm | ISSIsAcqRel);
> - break;
Any particular reason for doing separate gen_aa32_st_i32()
and disas_set_da_iss() calls rather than using the _gen_aa32_st32_iss()
function that the old decoder did?
either way
Reviewed-by: Peter Maydell <address@hidden>
thanks
-- PMM
- Re: [Qemu-devel] [PATCH v2 16/68] target/arm: Convert CLZ, (continued)
[Qemu-devel] [PATCH v2 22/68] target/arm: Convert USAD8, USADA8, SBFX, UBFX, BFC, BFI, UDF, Richard Henderson, 2019/08/19
[Qemu-devel] [PATCH v2 21/68] target/arm: Convert Synchronization primitives, Richard Henderson, 2019/08/19
[Qemu-devel] [PATCH v2 25/68] target/arm: Convert Signed multiply, signed and unsigned divide, Richard Henderson, 2019/08/19
[Qemu-devel] [PATCH v2 23/68] target/arm: Convert Parallel addition and subtraction, Richard Henderson, 2019/08/19