Displaying 3 results from an estimated 3 matches for "op_none".
Did you mean:
of_none
2011 Nov 30
0
[PATCH 3/4] x86/emulator: properly handle lzcnt and tzcnt
...)
+ {
+ _regs.eflags |= EFLG_CF;
+ dst.val = op_bytes * 8;
+ }
+ else if ( !dst.val )
+ _regs.eflags |= EFLG_ZF;
+ }
+ else if ( zf )
{
_regs.eflags |= EFLG_ZF;
dst.type = OP_NONE;
@@ -4371,13 +4385,28 @@ x86_emulate(
break;
}
- case 0xbd: /* bsr */ {
- int zf;
+ case 0xbd: /* bsr or lzcnt */ {
+ bool_t zf;
asm ( "bsr %2,%0; setz %b1"
: "=r" (dst.val), "=q" (zf)
- : "r...
2013 Nov 19
1
[PATCH] x86: fix emulation of indirect far calls and jumps
...ate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -3571,7 +3571,6 @@ x86_emulate(
_regs.eip = src.val;
src.val = dst.val;
goto 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(ds...
2011 Nov 30
0
[PATCH 4/4] x86/emulator: cleanup
...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 ) \
+...