qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [5281] Use the new concat_i32_i64 op for std and stda


From: Blue Swirl
Subject: Re: [Qemu-devel] [5281] Use the new concat_i32_i64 op for std and stda
Date: Sun, 21 Sep 2008 19:08:35 +0300

On 9/21/08, Paul Brook <address@hidden> wrote:
> On Sunday 21 September 2008, Blue Swirl wrote:
>  > +    r_low = tcg_temp_new(TCG_TYPE_I32);
>  > +    tcg_gen_trunc_tl_i32(r_low, cpu_tmp0);
>  > +    tcg_gen_trunc_tl_i32(cpu_tmp32, hi);
>  > +    tcg_gen_concat_i32_i64(cpu_tmp64, r_low, cpu_tmp32);
>  > +    tcg_temp_free(r_low);
>
>
> It's more efficient to not use concat_i32_i64 on 64-bit targets.
>  See patch below. I'll let you decide if you want to apply or ignore it.

Good point. How about adding instead a concat_i64_i64 starting from this piece:
>  +    tcg_gen_shli_i64(dest, high, 32);
>  +    tcg_gen_ext32u_i64(low, low);
>  +    tcg_gen_or_i64(dest, dest, low);

and also add defines for concat_tl_i64? That would be both clean and efficient.

I think ldd on i386 would benefit from a reverse operation (64 to two
32/64 bit words).




reply via email to

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