jit f30f11/movss
This commit is contained in:
parent
cf4af74d95
commit
3a8102811d
|
@ -624,7 +624,7 @@ const encodings = [
|
|||
{ sse: 1, opcode: 0x660F10, e: 1, custom: 1 },
|
||||
{ sse: 1, opcode: 0xF20F10, e: 1, custom: 1 },
|
||||
{ sse: 1, opcode: 0x0F11, e: 1, custom: 1 },
|
||||
{ sse: 1, opcode: 0xF30F11, e: 1 },
|
||||
{ sse: 1, opcode: 0xF30F11, e: 1, custom: 1 },
|
||||
{ sse: 1, opcode: 0x660F11, e: 1, custom: 1 },
|
||||
{ sse: 1, opcode: 0xF20F11, e: 1, custom: 1 },
|
||||
{ sse: 1, opcode: 0x0F12, e: 1 },
|
||||
|
|
|
@ -514,13 +514,11 @@ pub unsafe fn instr_0F11_mem(addr: i32, r: i32) {
|
|||
// movups xmm/m128, xmm
|
||||
mov_r_m128(addr, r);
|
||||
}
|
||||
#[no_mangle]
|
||||
pub unsafe fn instr_F30F11_reg(rm_dest: i32, reg_src: i32) {
|
||||
// movss xmm/m32, xmm
|
||||
let data = read_xmm128s(reg_src);
|
||||
write_xmm32(rm_dest, data.u32_0[0] as i32);
|
||||
}
|
||||
#[no_mangle]
|
||||
pub unsafe fn instr_F30F11_mem(addr: i32, r: i32) {
|
||||
// movss xmm/m32, xmm
|
||||
let data = read_xmm128s(r);
|
||||
|
@ -540,7 +538,6 @@ pub unsafe fn instr_F20F11_reg(r1: i32, r2: i32) {
|
|||
let data = read_xmm128s(r2);
|
||||
write_xmm64(r1, data.u64_0[0]);
|
||||
}
|
||||
#[no_mangle]
|
||||
pub unsafe fn instr_F20F11_mem(addr: i32, r: i32) {
|
||||
// movsd xmm/m64, xmm
|
||||
let data = read_xmm64s(r);
|
||||
|
|
|
@ -4817,6 +4817,16 @@ pub fn instr_F20F11_reg_jit(ctx: &mut JitContext, r1: u32, r2: u32) {
|
|||
ctx.builder.const_i32(r2 as i32);
|
||||
ctx.builder.call_fn2("instr_F20F11_reg");
|
||||
}
|
||||
pub fn instr_F30F11_mem_jit(ctx: &mut JitContext, modrm_byte: ModrmByte, r: u32) {
|
||||
instr_660F7E_mem_jit(ctx, modrm_byte, r)
|
||||
}
|
||||
pub fn instr_F30F11_reg_jit(ctx: &mut JitContext, r1: u32, r2: u32) {
|
||||
ctx.builder.const_i32(0);
|
||||
ctx.builder
|
||||
.load_fixed_i32(global_pointers::get_reg_xmm_offset(r2));
|
||||
ctx.builder
|
||||
.store_aligned_i32(global_pointers::get_reg_xmm_offset(r1));
|
||||
}
|
||||
|
||||
pub fn instr_0F28_mem_jit(ctx: &mut JitContext, modrm_byte: ModrmByte, r: u32) {
|
||||
let dest = global_pointers::get_reg_xmm_offset(r);
|
||||
|
|
Loading…
Reference in a new issue