[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v16 32/35] target-tilegx: Handle atomic instruct
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH v16 32/35] target-tilegx: Handle atomic instructions |
Date: |
Tue, 15 Sep 2015 11:46:36 +0100 |
On 14 September 2015 at 23:43, Richard Henderson <address@hidden> wrote:
> Signed-off-by: Richard Henderson <address@hidden>
> ---
> +static void do_exch(CPUTLGState *env, bool quad, bool cmp)
> +{
> + target_ulong addr;
> + target_long val, sprval;
> +
> + start_exclusive();
> +
> + addr = env->atomic_srca;
> + if (quad ? get_user_s64(val, addr) : get_user_s32(val, addr)) {
> + goto sigsegv_mapper;
> + }
> +
> + if (cmp) {
> + if (quad) {
> + sprval = env->spregs[TILEGX_SPR_CMPEXCH];
> + } else {
> + sprval = sextract64(env->spregs[TILEGX_SPR_CMPEXCH], 0, 32);
> + }
> + }
> +
> + if (!cmp || val == sprval) {
> + target_long valb = env->atomic_srcb;
> + if (quad ? put_user_u64(valb, addr) : put_user_u32(valb, addr)) {
> + goto sigsegv_mapper;
> + }
> + }
> +
> + set_regval(env, env->atomic_dstr, val);
> + end_exclusive();
> + return;
> +
> + sigsegv_mapper:
This label (and the one in do_fetch) should be "sigsegv_maperr"
> + end_exclusive();
> + gen_sigsegv_mapper(env, addr);
(and I just noticed this function has a typo in its name too).
Otherwise
Reviewed-by: Peter Maydell <address@hidden>
thanks
-- PMM
- [Qemu-devel] [PATCH v16 25/35] target-tilegx: Handle bitfield instructions, (continued)
- [Qemu-devel] [PATCH v16 25/35] target-tilegx: Handle bitfield instructions, Richard Henderson, 2015/09/14
- [Qemu-devel] [PATCH v16 24/35] target-tilegx: Implement system and memory management instructions, Richard Henderson, 2015/09/14
- [Qemu-devel] [PATCH v16 26/35] target-tilegx: Handle shift instructions, Richard Henderson, 2015/09/14
- [Qemu-devel] [PATCH v16 28/35] target-tilegx: Handle scalar multiply instructions, Richard Henderson, 2015/09/14
- [Qemu-devel] [PATCH v16 27/35] target-tilegx: Handle conditional move instructions, Richard Henderson, 2015/09/14
- [Qemu-devel] [PATCH v16 29/35] target-tilegx: Handle mask instructions, Richard Henderson, 2015/09/14
- [Qemu-devel] [PATCH v16 30/35] target-tilegx: Handle v1cmpeq, v1cmpne, Richard Henderson, 2015/09/14
- [Qemu-devel] [PATCH v16 34/35] target-tilegx: Handle v1shli, v1shrui, Richard Henderson, 2015/09/14
- [Qemu-devel] [PATCH v16 31/35] target-tilegx: Handle mtspr, mfspr, Richard Henderson, 2015/09/14
- [Qemu-devel] [PATCH v16 32/35] target-tilegx: Handle atomic instructions, Richard Henderson, 2015/09/14
- Re: [Qemu-devel] [PATCH v16 32/35] target-tilegx: Handle atomic instructions,
Peter Maydell <=
- [Qemu-devel] [PATCH v16 33/35] target-tilegx: Handle v4int_l/h, Richard Henderson, 2015/09/14
- [Qemu-devel] [PATCH v16 35/35] target-tilegx: Handle v1shl, v1shru, v1shrs, Richard Henderson, 2015/09/14
- Re: [Qemu-devel] [PATCH v16 00/35] TileGX basic instructions, Peter Maydell, 2015/09/15