qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 3/5] target-arm: convert shl and shr helpers to


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH 3/5] target-arm: convert shl and shr helpers to TCG
Date: Mon, 17 Sep 2012 10:43:13 +0100

On 17 September 2012 10:30, Laurent Desnogues
<address@hidden> wrote:
> On Mon, Sep 17, 2012 at 1:08 AM, Aurelien Jarno <address@hidden> wrote:
>> +#define GEN_SHIFT(name)                                \
>> +static void gen_##name(TCGv dest, TCGv t0, TCGv t1)    \
>> +{                                                      \
>> +    TCGv tmp1, tmp2;                                   \
>> +    tmp1 = tcg_temp_new_i32();                         \
>> +    tcg_gen_andi_i32(tmp1, t1, 0xff);                  \
>> +    tmp2 = tcg_temp_new_i32();                         \
>> +    tcg_gen_setcondi_i32(TCG_COND_GE, tmp2, tmp1, 32); \
>> +    tcg_gen_andi_i32(tmp1, tmp1, 0x1f);                \
>
> I don't think the 'and 0x1f' is needed given that later you'll and
> with 0 if the shift amount is >= 32.

The TCG shift operations are undefined behaviour (not merely
undefined result) if the shift is >= 32, so we must avoid
doing that even if we're going to throw away the answer.

-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]