mirror of
https://github.com/qemu/qemu.git
synced 2024-11-25 11:53:39 +08:00
target/i386: do not use MOVL to move data between SSE registers
Write down explicitly the load/store sequence. Extracted from a patch by Paul Brook <paul@nowt.org>. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
91117bc546
commit
3dd116e32e
@ -3295,8 +3295,10 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,
|
||||
offsetof(CPUX86State, xmm_regs[reg].ZMM_L(3)));
|
||||
} else {
|
||||
rm = (modrm & 7) | REX_B(s);
|
||||
gen_op_movl(s, offsetof(CPUX86State, xmm_regs[reg].ZMM_L(0)),
|
||||
offsetof(CPUX86State,xmm_regs[rm].ZMM_L(0)));
|
||||
tcg_gen_ld_i32(s->tmp2_i32, cpu_env,
|
||||
offsetof(CPUX86State, xmm_regs[rm].ZMM_L(0)));
|
||||
tcg_gen_st_i32(s->tmp2_i32, cpu_env,
|
||||
offsetof(CPUX86State, xmm_regs[reg].ZMM_L(0)));
|
||||
}
|
||||
break;
|
||||
case 0x310: /* movsd xmm, ea */
|
||||
|
Loading…
Reference in New Issue
Block a user