[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 15/15] tcg: use ext op for deposit
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH 15/15] tcg: use ext op for deposit |
Date: |
Tue, 5 Apr 2011 06:54:44 +0200 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
On Mon, Apr 04, 2011 at 04:32:24PM +0200, Alexander Graf wrote:
> With the s390x target we use the deposit instruction to store 32bit values
> into 64bit registers without clobbering the upper 32 bits.
>
> This specific operation can be optimized slightly by using the ext operation
> instead of an explicit and in the deposit instruction. This patch adds that
> special case to the generic deposit implementation.
>
> Signed-off-by: Alexander Graf <address@hidden>
> ---
> tcg/tcg-op.h | 6 +++++-
> 1 files changed, 5 insertions(+), 1 deletions(-)
Have you really measuring a difference here? This should already be
handled, at least on x86, by this code:
if (TCG_TARGET_REG_BITS == 64) {
if (val == 0xffffffffu) {
tcg_out_ext32u(s, r0, r0);
return;
}
if (val == (uint32_t)val) {
/* AND with no high bits set can use a 32-bit operation. */
rexw = 0;
}
}
> diff --git a/tcg/tcg-op.h b/tcg/tcg-op.h
> index 207a89f..88575e7 100644
> --- a/tcg/tcg-op.h
> +++ b/tcg/tcg-op.h
> @@ -2124,7 +2124,11 @@ static inline void tcg_gen_deposit_i64(TCGv_i64 ret,
> TCGv_i64 arg1,
> uint64_t mask = (1ull << len) - 1;
> TCGv_i64 t1 = tcg_temp_new_i64 ();
>
> - tcg_gen_andi_i64(t1, arg2, mask);
> + if (len == 32) {
> + tcg_gen_ext32u_i64(t1, arg2);
> + } else {
> + tcg_gen_andi_i64(t1, arg2, mask);
> + }
> tcg_gen_shli_i64(t1, t1, ofs);
> tcg_gen_andi_i64(ret, arg1, ~(mask << ofs));
> tcg_gen_or_i64(ret, ret, t1);
> --
> 1.6.0.2
>
>
>
--
Aurelien Jarno GPG: 1024D/F1BCDB73
address@hidden http://www.aurel32.net
- Re: [Qemu-devel] [PATCH 05/15] s390x: Enable s390x-softmmu target, (continued)
[Qemu-devel] [PATCH 15/15] tcg: use ext op for deposit, Alexander Graf, 2011/04/04
- Re: [Qemu-devel] [PATCH 15/15] tcg: use ext op for deposit,
Aurelien Jarno <=
- Re: [Qemu-devel] [PATCH 15/15] tcg: use ext op for deposit, Alexander Graf, 2011/04/05
- Re: [Qemu-devel] [PATCH 15/15] tcg: use ext op for deposit, Aurelien Jarno, 2011/04/10
- Re: [Qemu-devel] [PATCH 15/15] tcg: use ext op for deposit, Alexander Graf, 2011/04/10
- Re: [Qemu-devel] [PATCH 15/15] tcg: use ext op for deposit, Aurelien Jarno, 2011/04/10
- Re: [Qemu-devel] [PATCH 15/15] tcg: use ext op for deposit, Alexander Graf, 2011/04/10
- Re: [Qemu-devel] [PATCH 15/15] tcg: use ext op for deposit, Aurelien Jarno, 2011/04/10
- Re: [Qemu-devel] [PATCH 15/15] tcg: use ext op for deposit, Alexander Graf, 2011/04/14
[Qemu-devel] [PATCH 07/15] s390x: Adjust GDB stub, Alexander Graf, 2011/04/04
[Qemu-devel] [PATCH 02/15] s390x: set alignment for long to 8, Alexander Graf, 2011/04/04