[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 5/5] target-m68k: Implement bitfield ops for
From: |
Laurent Vivier |
Subject: |
Re: [Qemu-devel] [PATCH v2 5/5] target-m68k: Implement bitfield ops for memory |
Date: |
Sun, 27 Nov 2016 20:48:03 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 |
Le 09/11/2016 à 14:46, Richard Henderson a écrit :
> --- a/target-m68k/op_helper.c
> +++ b/target-m68k/op_helper.c
> +uint32_t HELPER(bfexts_mem)(CPUM68KState *env, uint32_t addr,
> + int32_t ofs, uint32_t len)
> +{
> + uintptr_t ra = GETPC();
> + struct bf_data d = bf_prep(addr, ofs, len);
> + uint64_t data = bf_load(env, d.addr, d.blen, ra);
> +
> + return (int64_t)(data << d.bofs) >> (64 - len);
We must use d.len instead of len, otherwise we shift with 32bit value.
- return (int64_t)(data << d.bofs) >> (64 - len);
+ return (int64_t)(data << d.bofs) >> (64 - d.len);
Laurent
- Re: [Qemu-devel] [PATCH v2 3/5] target-m68k: Inline shifts, (continued)