mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
target/i386: tcg: high bits SSE cmp operation must be ignored
High bits in the immediate operand of SSE comparisons are ignored, they do not result in an undefined opcode exception. This is mentioned explicitly in the Intel documentation. Reported-by: sonicadvance1@gmail.com Closes: https://gitlab.com/qemu-project/qemu/-/issues/184 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
98a02bc449
commit
de65b39a51
1 changed files with 2 additions and 4 deletions
|
@ -4509,10 +4509,8 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,
|
|||
sse_fn_ppi(s->ptr0, s->ptr1, tcg_const_i32(val));
|
||||
break;
|
||||
case 0xc2:
|
||||
/* compare insns */
|
||||
val = x86_ldub_code(env, s);
|
||||
if (val >= 8)
|
||||
goto unknown_op;
|
||||
/* compare insns, bits 7:3 (7:5 for AVX) are ignored */
|
||||
val = x86_ldub_code(env, s) & 7;
|
||||
sse_fn_epp = sse_op_table4[val][b1];
|
||||
|
||||
tcg_gen_addi_ptr(s->ptr0, cpu_env, op1_offset);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue