[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 6/6] target-i386: Cleanup pextrq
From: |
Andreas Färber |
Subject: |
[Qemu-devel] [RFC 6/6] target-i386: Cleanup pextrq |
Date: |
Sat, 10 Dec 2011 13:58:15 +0100 |
gen_op_mov_reg_v() wants a TCGv, so use cpu_T[0] like pextrd does.
Signed-off-by: Andreas Färber <address@hidden>
---
target-i386/translate.c | 17 +++++++++--------
1 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/target-i386/translate.c b/target-i386/translate.c
index 6d09496..5ce8d3e 100644
--- a/target-i386/translate.c
+++ b/target-i386/translate.c
@@ -3842,14 +3842,15 @@ static void gen_sse(DisasContext *s, int b,
target_ulong pc_start, int rex_r)
(s->mem_index >> 2) - 1);
} else { /* pextrq */
#ifdef TARGET_X86_64
- tcg_gen_ld_i64(cpu_tmp1_i64, cpu_env,
- offsetof(CPUX86State,
- xmm_regs[reg].XMM_Q(val & 1)));
- if (mod == 3)
- gen_op_mov_reg_v(ot, rm, cpu_tmp1_i64);
- else
- tcg_gen_qemu_st64(cpu_tmp1_i64, cpu_A0,
- (s->mem_index >> 2) - 1);
+ tcg_gen_ld_tl(cpu_T[0], cpu_env,
+ offsetof(CPUX86State,
+ xmm_regs[reg].XMM_Q(val & 1)));
+ if (mod == 3) {
+ gen_op_mov_reg_v(ot, rm, cpu_T[0]);
+ } else {
+ tcg_gen_qemu_st64_tl(cpu_T[0], cpu_A0,
+ (s->mem_index >> 2) - 1);
+ }
#else
goto illegal_op;
#endif
--
1.7.7
- [Qemu-devel] [RFC 0/6] target-i386: TCGv cleanups, Andreas Färber, 2011/12/10
- [Qemu-devel] [PATCH 1/6] target-i386: Fix sloppy uses of i32/i64 functions, Andreas Färber, 2011/12/10
- [Qemu-devel] [PATCH 2/6] target-i386: Cleanup movd xmm, ea, Andreas Färber, 2011/12/10
- [Qemu-devel] [RFC 3/6] tcg: Add tcg_gen_qemu_{ld,st}64_tl(), Andreas Färber, 2011/12/10
- [Qemu-devel] [RFC 4/6] target-i386: Use tcg_gen_{ld,st}64_tl(), Andreas Färber, 2011/12/10
- [Qemu-devel] [RFC 5/6] target-i386: Cleanup pinsrq, Andreas Färber, 2011/12/10
- [Qemu-devel] [RFC 6/6] target-i386: Cleanup pextrq,
Andreas Färber <=
- Re: [Qemu-devel] [RFC 0/6] target-i386: TCGv cleanups, Paul Brook, 2011/12/11