diff --git a/gen/x86_table.js b/gen/x86_table.js index 7f46755a..e4238493 100644 --- a/gen/x86_table.js +++ b/gen/x86_table.js @@ -617,7 +617,7 @@ const encodings = [ { sse: 1, opcode: 0x0F11, e: 1, custom: 1 }, { sse: 1, opcode: 0xF30F11, e: 1 }, { sse: 1, opcode: 0x660F11, e: 1, custom: 1 }, - { sse: 1, opcode: 0xF20F11, e: 1 }, + { sse: 1, opcode: 0xF20F11, e: 1, custom: 1 }, { sse: 1, opcode: 0x0F12, e: 1 }, { sse: 1, opcode: 0x660F12, reg_ud: 1, e: 1 }, { sse: 1, opcode: 0xF20F12, e: 1, skip: 1, block_boundary: 1, }, // sse3 diff --git a/src/rust/jit_instructions.rs b/src/rust/jit_instructions.rs index 4414eb2e..57956e79 100644 --- a/src/rust/jit_instructions.rs +++ b/src/rust/jit_instructions.rs @@ -4787,6 +4787,14 @@ pub fn instr_660F11_mem_jit(ctx: &mut JitContext, modrm_byte: ModrmByte, r: u32) instr_660F29_mem_jit(ctx, modrm_byte, r) } pub fn instr_660F11_reg_jit(ctx: &mut JitContext, r1: u32, r2: u32) { sse_mov_xmm_xmm(ctx, r2, r1) } +pub fn instr_F20F11_mem_jit(ctx: &mut JitContext, modrm_byte: ModrmByte, r: u32) { + instr_660FD6_mem_jit(ctx, modrm_byte, r) +} +pub fn instr_F20F11_reg_jit(ctx: &mut JitContext, r1: u32, r2: u32) { + ctx.builder.const_i32(r1 as i32); + ctx.builder.const_i32(r2 as i32); + ctx.builder.call_fn2("instr_F20F11_reg"); +} pub fn instr_0F28_mem_jit(ctx: &mut JitContext, modrm_byte: ModrmByte, r: u32) { let dest = global_pointers::get_reg_xmm_offset(r);