search for: op_mem

Displaying 5 results from an estimated 5 matches for "op_mem".

Did you mean: oldmem
2011 Nov 30
0
[PATCH 2/4] x86/emulator: add emulation of SIMD FP moves
...x_pfx) - 1]; \ +} while (0) + union vex { uint8_t raw[2]; struct { @@ -3850,6 +3860,76 @@ x86_emulate( case 0x19 ... 0x1f: /* nop (amd-defined) */ break; + case 0x2b: /* {,v}movntp{s,d} xmm,m128 */ + /* vmovntp{s,d} ymm,m256 */ + fail_if(ea.type != OP_MEM); + /* fall through */ + case 0x28: /* {,v}movap{s,d} xmm/m128,xmm */ + /* vmovap{s,d} ymm/m256,ymm */ + case 0x29: /* {,v}movap{s,d} xmm,xmm/m128 */ + /* vmovap{s,d} ymm,ymm/m256 */ + fail_if(vex.pfx & VEX_PREFIX_SCALAR_MASK); + /* fall th...
2013 Nov 19
1
[PATCH] x86: fix emulation of indirect far calls and jumps
...to push; - break; case 4: /* jmp (near) */ _regs.eip = src.val; dst.type = OP_NONE; @@ -3580,9 +3579,9 @@ x86_emulate( case 5: /* jmp (far, absolute indirect) */ { unsigned long sel; - generate_exception_if(dst.type != OP_MEM, EXC_UD, -1); + generate_exception_if(src.type != OP_MEM, EXC_UD, -1); - if ( (rc = read_ulong(dst.mem.seg, dst.mem.off+dst.bytes, + if ( (rc = read_ulong(src.mem.seg, src.mem.off + op_bytes, &sel, 2, ctxt, ops)) )...
2013 Aug 28
3
[PATCH] x86: AVX instruction emulation fixes
...if ( mode_64bit() && !vex.r ) rex_prefix |= REX_R; fail_if(vex.opcx != vex_0f); @@ -3899,8 +3896,9 @@ x86_emulate( else { fail_if((vex.opcx != vex_0f) || - (vex.reg && ((ea.type == OP_MEM) || - !(vex.pfx & VEX_PREFIX_SCALAR_MASK)))); + ((vex.reg != 0xf) && + ((ea.type == OP_MEM) || + !(vex.pfx & VEX_PREFIX_SCALAR_MASK)))); vcpu_must_have_avx(); get_fp...
2008 Apr 21
1
[PATCH] x86-64: emulation support for cmpxchg16b
...86_seg_gs; goto pop_seg; - case 0xc7: /* Grp9 (cmpxchg8b) */ -#if defined(__i386__) - { - unsigned long old_lo, old_hi; + case 0xc7: /* Grp9 (cmpxchg{8,16}b) */ generate_exception_if((modrm_reg & 7) != 1, EXC_UD, -1); generate_exception_if(ea.type != OP_MEM, EXC_UD, -1); - if ( (rc = ops->read(ea.mem.seg, ea.mem.off+0, &old_lo, 4, ctxt)) || - (rc = ops->read(ea.mem.seg, ea.mem.off+4, &old_hi, 4, ctxt)) ) - goto done; - if ( (old_lo != _regs.eax) || (old_hi != _regs.edx) ) - { - _regs...
2011 Nov 30
0
[PATCH 4/4] x86/emulator: cleanup
...ptr[1] = rex | REX_PREFIX; \ } while (0) +#define rep_prefix() (vex.pfx >= vex_f3) +#define repe_prefix() (vex.pfx == vex_f3) +#define repne_prefix() (vex.pfx == vex_f2) + /* Type, address-of, and value of an instruction''s operand. */ struct operand { enum { OP_REG, OP_MEM, OP_IMM, OP_NONE } type; @@ -734,7 +738,7 @@ static unsigned long __get_rep_prefix( #define get_rep_prefix() ({ \ unsigned long max_reps = 1; \ - if ( rep_prefix )...