From: Aurelien Jarno <aurelien@aurel32.net>
To: Richard Henderson <rth@twiddle.net>
Cc: qemu-devel@nongnu.org, agraf@suse.de
Subject: Re: [Qemu-devel] [PATCH 6/7] target-i386: Use deposit operation.
Date: Thu, 20 Jan 2011 12:06:43 +0100 [thread overview]
Message-ID: <20110120110643.GC26032@volta.aurel32.net> (raw)
In-Reply-To: <1294716228-9299-7-git-send-email-rth@twiddle.net>
On Mon, Jan 10, 2011 at 07:23:47PM -0800, Richard Henderson wrote:
> Use this for assignment to the low byte or low word of a register.
>
> Signed-off-by: Richard Henderson <rth@twiddle.net>
> ---
> target-i386/translate.c | 34 ++++++----------------------------
> 1 files changed, 6 insertions(+), 28 deletions(-)
Acked-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
> diff --git a/target-i386/translate.c b/target-i386/translate.c
> index 7b6e3c2..c008450 100644
> --- a/target-i386/translate.c
> +++ b/target-i386/translate.c
> @@ -274,28 +274,16 @@ static inline void gen_op_andl_A0_ffff(void)
>
> static inline void gen_op_mov_reg_v(int ot, int reg, TCGv t0)
> {
> - TCGv tmp;
> -
> switch(ot) {
> case OT_BYTE:
> - tmp = tcg_temp_new();
> - tcg_gen_ext8u_tl(tmp, t0);
> if (reg < 4 X86_64_DEF( || reg >= 8 || x86_64_hregs)) {
> - tcg_gen_andi_tl(cpu_regs[reg], cpu_regs[reg], ~0xff);
> - tcg_gen_or_tl(cpu_regs[reg], cpu_regs[reg], tmp);
> + tcg_gen_deposit_tl(cpu_regs[reg], cpu_regs[reg], t0, 0, 8);
> } else {
> - tcg_gen_shli_tl(tmp, tmp, 8);
> - tcg_gen_andi_tl(cpu_regs[reg - 4], cpu_regs[reg - 4], ~0xff00);
> - tcg_gen_or_tl(cpu_regs[reg - 4], cpu_regs[reg - 4], tmp);
> + tcg_gen_deposit_tl(cpu_regs[reg - 4], cpu_regs[reg - 4], t0, 8, 8);
> }
> - tcg_temp_free(tmp);
> break;
> case OT_WORD:
> - tmp = tcg_temp_new();
> - tcg_gen_ext16u_tl(tmp, t0);
> - tcg_gen_andi_tl(cpu_regs[reg], cpu_regs[reg], ~0xffff);
> - tcg_gen_or_tl(cpu_regs[reg], cpu_regs[reg], tmp);
> - tcg_temp_free(tmp);
> + tcg_gen_deposit_tl(cpu_regs[reg], cpu_regs[reg], t0, 0, 16);
> break;
> default: /* XXX this shouldn't be reached; abort? */
> case OT_LONG:
> @@ -323,15 +311,9 @@ static inline void gen_op_mov_reg_T1(int ot, int reg)
>
> static inline void gen_op_mov_reg_A0(int size, int reg)
> {
> - TCGv tmp;
> -
> switch(size) {
> case 0:
> - tmp = tcg_temp_new();
> - tcg_gen_ext16u_tl(tmp, cpu_A0);
> - tcg_gen_andi_tl(cpu_regs[reg], cpu_regs[reg], ~0xffff);
> - tcg_gen_or_tl(cpu_regs[reg], cpu_regs[reg], tmp);
> - tcg_temp_free(tmp);
> + tcg_gen_deposit_tl(cpu_regs[reg], cpu_regs[reg], cpu_A0, 0, 16);
> break;
> default: /* XXX this shouldn't be reached; abort? */
> case 1:
> @@ -415,9 +397,7 @@ static inline void gen_op_add_reg_im(int size, int reg, int32_t val)
> switch(size) {
> case 0:
> tcg_gen_addi_tl(cpu_tmp0, cpu_regs[reg], val);
> - tcg_gen_ext16u_tl(cpu_tmp0, cpu_tmp0);
> - tcg_gen_andi_tl(cpu_regs[reg], cpu_regs[reg], ~0xffff);
> - tcg_gen_or_tl(cpu_regs[reg], cpu_regs[reg], cpu_tmp0);
> + tcg_gen_deposit_tl(cpu_regs[reg], cpu_regs[reg], cpu_tmp0, 0, 16);
> break;
> case 1:
> tcg_gen_addi_tl(cpu_tmp0, cpu_regs[reg], val);
> @@ -439,9 +419,7 @@ static inline void gen_op_add_reg_T0(int size, int reg)
> switch(size) {
> case 0:
> tcg_gen_add_tl(cpu_tmp0, cpu_regs[reg], cpu_T[0]);
> - tcg_gen_ext16u_tl(cpu_tmp0, cpu_tmp0);
> - tcg_gen_andi_tl(cpu_regs[reg], cpu_regs[reg], ~0xffff);
> - tcg_gen_or_tl(cpu_regs[reg], cpu_regs[reg], cpu_tmp0);
> + tcg_gen_deposit_tl(cpu_regs[reg], cpu_regs[reg], cpu_tmp0, 0, 16);
> break;
> case 1:
> tcg_gen_add_tl(cpu_tmp0, cpu_regs[reg], cpu_T[0]);
> --
> 1.7.2.3
>
>
>
--
Aurelien Jarno GPG: 1024D/F1BCDB73
aurelien@aurel32.net http://www.aurel32.net
next prev parent reply other threads:[~2011-01-20 11:06 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-11 3:23 [Qemu-devel] [PATCH 0/7] Define "deposit" tcg operation, v2 Richard Henderson
2011-01-11 3:23 ` [Qemu-devel] [PATCH 1/7] tcg: Define "deposit" as an optional operation Richard Henderson
2011-01-11 23:45 ` Aurelien Jarno
2011-01-12 11:00 ` Edgar E. Iglesias
2011-01-11 3:23 ` [Qemu-devel] [PATCH 2/7] tcg-ppc: Implement deposit operation Richard Henderson
2011-01-11 12:40 ` [Qemu-devel] " malc
2011-01-11 16:32 ` Richard Henderson
2011-01-11 19:11 ` malc
2011-01-11 3:23 ` [Qemu-devel] [PATCH 3/7] tcg-hppa: " Richard Henderson
2011-01-11 3:23 ` [Qemu-devel] [PATCH 4/7] tcg-ia64: " Richard Henderson
2011-01-11 3:23 ` [Qemu-devel] [PATCH 5/7] tcg-i386: " Richard Henderson
2011-01-25 12:27 ` Edgar E. Iglesias
2011-01-25 16:13 ` Richard Henderson
2011-01-25 16:48 ` Edgar E. Iglesias
2011-01-25 22:07 ` Richard Henderson
2011-01-26 8:53 ` Edgar E. Iglesias
2011-01-26 9:23 ` Alexander Graf
2011-01-26 15:50 ` Richard Henderson
2011-01-26 16:00 ` Alexander Graf
2011-01-26 16:34 ` Avi Kivity
2011-01-26 16:40 ` Richard Henderson
2011-01-26 16:50 ` Alexander Graf
2011-01-26 18:21 ` Richard Henderson
2011-01-26 18:27 ` Alexander Graf
2011-01-26 18:55 ` Richard Henderson
2011-01-26 19:01 ` Alexander Graf
2011-01-26 19:05 ` Richard Henderson
2011-01-26 19:09 ` Alexander Graf
2011-01-26 19:19 ` Richard Henderson
2011-01-26 19:27 ` Alexander Graf
2011-01-31 8:33 ` Aurelien Jarno
2011-02-08 18:05 ` Richard Henderson
2011-02-09 7:41 ` [Qemu-devel] " Paolo Bonzini
2011-02-09 17:24 ` Blue Swirl
2011-01-11 3:23 ` [Qemu-devel] [PATCH 6/7] target-i386: Use " Richard Henderson
2011-01-12 11:01 ` Edgar E. Iglesias
2011-01-20 11:06 ` Aurelien Jarno [this message]
2011-01-11 3:23 ` [Qemu-devel] [PATCH 7/7] target-ppc: " Richard Henderson
2011-01-11 23:45 ` [Qemu-devel] [PATCH 0/7] Define "deposit" tcg operation, v2 Aurelien Jarno
2011-01-20 11:31 ` Edgar E. Iglesias
-- strict thread matches above, loose matches on Subject: below --
2011-01-07 22:42 [Qemu-devel] [PATCH 0/7] Define "deposit" tcg operation Richard Henderson
2011-01-07 22:43 ` [Qemu-devel] [PATCH 6/7] target-i386: Use deposit operation Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110120110643.GC26032@volta.aurel32.net \
--to=aurelien@aurel32.net \
--cc=agraf@suse.de \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).