[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Consult] tilegx: Is it a qemu's system bug?
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [Consult] tilegx: Is it a qemu's system bug? |
Date: |
Sat, 25 Apr 2015 09:30:06 -1000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 |
On 04/25/2015 05:12 AM, Chen Gang wrote:
> Hello All:
>
> I want to consult an issue I met below for the latest master branch, is
> it a qemu's bug? (it is about ctz/cnttz instruction for tilegx)
>
> OP:
> ld_i32 tmp0,env,$0xfffffffffffffffc
> movi_i32 tmp1,$0x0
> brcond_i32 tmp0,tmp1,ne,$L0
> movi_i64 tmp3,$0x0 /* Initialize tmp3 */
> set_label $L1
> shr_i64 tmp2,r2,tmp3
You can't keep temporaries live across basic blocks.
That is, across set_label, br, or brcond. In that case
you'd have to use tcg_new_local_temp() instead.
That said, you shouldn't open-code ctz but instead use
a helper function and use ctz64().
r~