mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-25 07:02:38 +00:00
target/i386: fix avx2 instructions vzeroall and vpermdq
vzeroall: xmm_regs should be used instead of xmm_t0 vpermdq: bit 3 and 7 of imm should be considered Signed-off-by: Xinyu Li <lixinyu20s@ict.ac.cn> Message-Id: <20230510145222.586487-1-lixinyu20s@ict.ac.cn> Cc: qemu-stable@nongnu.org Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
2b55e479e6
commit
056d649007
@ -2497,6 +2497,14 @@ void helper_vpermdq_ymm(Reg *d, Reg *v, Reg *s, uint32_t order)
|
||||
d->Q(1) = r1;
|
||||
d->Q(2) = r2;
|
||||
d->Q(3) = r3;
|
||||
if (order & 0x8) {
|
||||
d->Q(0) = 0;
|
||||
d->Q(1) = 0;
|
||||
}
|
||||
if (order & 0x80) {
|
||||
d->Q(2) = 0;
|
||||
d->Q(3) = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void helper_vpermq_ymm(Reg *d, Reg *s, uint32_t order)
|
||||
|
@ -2285,7 +2285,7 @@ static void gen_VZEROALL(DisasContext *s, CPUX86State *env, X86DecodedInsn *deco
|
||||
{
|
||||
TCGv_ptr ptr = tcg_temp_new_ptr();
|
||||
|
||||
tcg_gen_addi_ptr(ptr, cpu_env, offsetof(CPUX86State, xmm_t0));
|
||||
tcg_gen_addi_ptr(ptr, cpu_env, offsetof(CPUX86State, xmm_regs));
|
||||
gen_helper_memset(ptr, ptr, tcg_constant_i32(0),
|
||||
tcg_constant_ptr(CPU_NB_REGS * sizeof(ZMMReg)));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user