projects
/
qemu.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
91117bc
)
target/i386: do not use MOVL to move data between SSE registers
author
Paolo Bonzini
<pbonzini@redhat.com>
Fri, 26 Aug 2022 21:15:33 +0000
(23:15 +0200)
committer
Paolo Bonzini
<pbonzini@redhat.com>
Thu, 1 Sep 2022 18:16:33 +0000
(20:16 +0200)
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>
target/i386/tcg/translate.c
patch
|
blob
|
history
diff --git
a/target/i386/tcg/translate.c
b/target/i386/tcg/translate.c
index b7972f0ff53dc5edcc0153d1d8e6824beb51f970..3237c1d8f9d34ef89d96cefa481d180d4d423202 100644
(file)
--- a/
target/i386/tcg/translate.c
+++ b/
target/i386/tcg/translate.c
@@
-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 */