}
opc[2] = 0xc3;
- invoke_stub(_PRE_EFLAGS("[eflags]", "[mask]", "[tmp]"),
+ _regs.eflags &= ~EFLAGS_MASK;
+ invoke_stub("",
_POST_EFLAGS("[eflags]", "[mask]", "[tmp]"),
[eflags] "+g" (_regs.eflags),
[tmp] "=&r" (dummy), "+m" (*mmvalp)
opc[2] = 0xc3;
copy_VEX(opc, vex);
- invoke_stub(_PRE_EFLAGS("[eflags]", "[mask]", "[tmp]"),
+ _regs.eflags &= ~EFLAGS_MASK;
+ invoke_stub("",
_POST_EFLAGS("[eflags]", "[mask]", "[tmp]"),
[eflags] "+g" (_regs.eflags),
"=a" (dst.val), [tmp] "=&r" (dummy)
break;
case rmw_xadd:
+ *eflags &= ~EFLAGS_MASK;
switch ( state->op_bytes )
{
unsigned long dummy;
#define XADD(sz, cst, mod) \
case sz: \
- asm ( _PRE_EFLAGS("[efl]", "[msk]", "[tmp]") \
+ asm ( "" \
COND_LOCK(xadd) " %"#mod"[reg], %[mem]; " \
_POST_EFLAGS("[efl]", "[msk]", "[tmp]") \
: [reg] "+" #cst (state->ea.val), \