miasm
Reverse engineering framework
sem.py File Reference

Classes

class  miasm.arch.x86.sem.ir_x86_16
 
class  miasm.arch.x86.sem.ir_x86_32
 
class  miasm.arch.x86.sem.ir_x86_64
 

Namespaces

 miasm.arch.x86.sem
 

Functions

def miasm.arch.x86.sem.update_flag_zf_eq (a, b)
 
def miasm.arch.x86.sem.update_flag_zf (a)
 
def miasm.arch.x86.sem.update_flag_nf (arg)
 
def miasm.arch.x86.sem.update_flag_pf (a)
 
def miasm.arch.x86.sem.update_flag_af (op1, op2, res)
 
def miasm.arch.x86.sem.update_flag_znp (a)
 
def miasm.arch.x86.sem.update_flag_np (result)
 
def miasm.arch.x86.sem.null_flag_co ()
 
def miasm.arch.x86.sem.update_flag_arith (a)
 
def miasm.arch.x86.sem.update_flag_zfaddwc_eq (arg1, arg2, arg3)
 
def miasm.arch.x86.sem.update_flag_zfsubwc_eq (arg1, arg2, arg3)
 
def miasm.arch.x86.sem.update_flag_arith_add_znp (arg1, arg2)
 
def miasm.arch.x86.sem.update_flag_arith_addwc_znp (arg1, arg2, arg3)
 
def miasm.arch.x86.sem.update_flag_arith_sub_znp (arg1, arg2)
 
def miasm.arch.x86.sem.update_flag_arith_subwc_znp (arg1, arg2, arg3)
 
def miasm.arch.x86.sem.check_ops_msb (a, b, c)
 
def miasm.arch.x86.sem.arith_flag (a, b, c)
 
def miasm.arch.x86.sem.update_flag_add_cf (op1, op2, res)
 
def miasm.arch.x86.sem.update_flag_add_of (op1, op2, res)
 
def miasm.arch.x86.sem.update_flag_sub_cf (op1, op2, res)
 
def miasm.arch.x86.sem.update_flag_sub_of (op1, op2, res)
 
def miasm.arch.x86.sem.update_flag_addwc_cf (op1, op2, op3)
 
def miasm.arch.x86.sem.update_flag_addwc_of (op1, op2, op3)
 
def miasm.arch.x86.sem.update_flag_subwc_cf (op1, op2, op3)
 
def miasm.arch.x86.sem.update_flag_subwc_of (op1, op2, op3)
 
def miasm.arch.x86.sem.update_flag_arith_add_co (x, y, z)
 
def miasm.arch.x86.sem.update_flag_arith_sub_co (x, y, z)
 
def miasm.arch.x86.sem.update_flag_arith_addwc_co (arg1, arg2, arg3)
 
def miasm.arch.x86.sem.update_flag_arith_subwc_co (arg1, arg2, arg3)
 
def miasm.arch.x86.sem.set_float_cs_eip (instr)
 
def miasm.arch.x86.sem.mode2addrsize (mode)
 
def miasm.arch.x86.sem.instr2addrsize (instr)
 
def miasm.arch.x86.sem.expraddr (mode, ptr)
 
def miasm.arch.x86.sem.fix_mem_args_size (instr, *args)
 
def miasm.arch.x86.sem.mem2double (instr, arg)
 
def miasm.arch.x86.sem.float_implicit_st0 (arg1, arg2)
 
def miasm.arch.x86.sem.gen_jcc (ir, instr, cond, dst, jmp_if)
 
def miasm.arch.x86.sem.gen_fcmov (ir, instr, cond, arg1, arg2, mov_if)
 
def miasm.arch.x86.sem.gen_cmov (ir, instr, cond, dst, src, mov_if)
 
def miasm.arch.x86.sem.mov (_, instr, dst, src)
 
def miasm.arch.x86.sem.movq (_, instr, dst, src)
 
def miasm.arch.x86.sem.xchg (arg1, arg2)
 
def miasm.arch.x86.sem.movzx (_, instr, dst, src)
 
def miasm.arch.x86.sem.movsx (_, instr, dst, src)
 
def miasm.arch.x86.sem.lea (_, instr, dst, src)
 
def miasm.arch.x86.sem.add (_, instr, dst, src)
 
def miasm.arch.x86.sem.xadd (_, instr, dst, src)
 
def miasm.arch.x86.sem.adc (_, instr, dst, src)
 
def miasm.arch.x86.sem.sub (_, instr, dst, src)
 
def miasm.arch.x86.sem.sbb (_, instr, dst, src)
 
def miasm.arch.x86.sem.neg (_, instr, src)
 
def miasm.arch.x86.sem.l_not (_, instr, dst)
 
def miasm.arch.x86.sem.l_cmp (_, instr, dst, src)
 
def miasm.arch.x86.sem.xor (_, instr, dst, src)
 
def miasm.arch.x86.sem.pxor (_, instr, dst, src)
 
def miasm.arch.x86.sem.l_or (_, instr, dst, src)
 
def miasm.arch.x86.sem.l_and (_, instr, dst, src)
 
def miasm.arch.x86.sem.l_test (_, instr, dst, src)
 
def miasm.arch.x86.sem.get_shift (dst, src)
 
def miasm.arch.x86.sem.l_rol (ir, instr, dst, src)
 
def miasm.arch.x86.sem.l_ror (ir, instr, dst, src)
 
def miasm.arch.x86.sem.rotate_with_carry_tpl (ir, instr, op, dst, src)
 
def miasm.arch.x86.sem.rcl (ir, instr, dst, src)
 
def miasm.arch.x86.sem.rcr (ir, instr, dst, src)
 
def miasm.arch.x86.sem.sar (ir, instr, dst, src)
 
def miasm.arch.x86.sem.shr (ir, instr, dst, src)
 
def miasm.arch.x86.sem.shrd (ir, instr, dst, src1, src2)
 
def miasm.arch.x86.sem.shl (ir, instr, dst, src)
 
def miasm.arch.x86.sem.shld (ir, instr, dst, src1, src2)
 
def miasm.arch.x86.sem.cmc (_, instr)
 
def miasm.arch.x86.sem.clc (_, instr)
 
def miasm.arch.x86.sem.stc (_, instr)
 
def miasm.arch.x86.sem.cld (_, instr)
 
def miasm.arch.x86.sem.std (_, instr)
 
def miasm.arch.x86.sem.cli (_, instr)
 
def miasm.arch.x86.sem.sti (_, instr)
 
def miasm.arch.x86.sem.inc (_, instr, dst)
 
def miasm.arch.x86.sem.dec (_, instr, dst)
 
def miasm.arch.x86.sem.push_gen (ir, instr, src, size)
 
def miasm.arch.x86.sem.push (ir, instr, src)
 
def miasm.arch.x86.sem.pushw (ir, instr, src)
 
def miasm.arch.x86.sem.pop_gen (ir, instr, src, size)
 
def miasm.arch.x86.sem.pop (ir, instr, src)
 
def miasm.arch.x86.sem.popw (ir, instr, src)
 
def miasm.arch.x86.sem.sete (_, instr, dst)
 
def miasm.arch.x86.sem.setnz (_, instr, dst)
 
def miasm.arch.x86.sem.setl (_, instr, dst)
 
def miasm.arch.x86.sem.setg (_, instr, dst)
 
def miasm.arch.x86.sem.setge (_, instr, dst)
 
def miasm.arch.x86.sem.seta (_, instr, dst)
 
def miasm.arch.x86.sem.setae (_, instr, dst)
 
def miasm.arch.x86.sem.setb (_, instr, dst)
 
def miasm.arch.x86.sem.setbe (_, instr, dst)
 
def miasm.arch.x86.sem.setns (_, instr, dst)
 
def miasm.arch.x86.sem.sets (_, instr, dst)
 
def miasm.arch.x86.sem.seto (_, instr, dst)
 
def miasm.arch.x86.sem.setp (_, instr, dst)
 
def miasm.arch.x86.sem.setnp (_, instr, dst)
 
def miasm.arch.x86.sem.setle (_, instr, dst)
 
def miasm.arch.x86.sem.setna (_, instr, dst)
 
def miasm.arch.x86.sem.setnbe (_, instr, dst)
 
def miasm.arch.x86.sem.setno (_, instr, dst)
 
def miasm.arch.x86.sem.setnb (_, instr, dst)
 
def miasm.arch.x86.sem.setalc (_, instr)
 
def miasm.arch.x86.sem.bswap (_, instr, dst)
 
def miasm.arch.x86.sem.cmps (ir, instr, size)
 
def miasm.arch.x86.sem.scas (ir, instr, size)
 
def miasm.arch.x86.sem.compose_eflag (s=32)
 
def miasm.arch.x86.sem.pushfd (ir, instr)
 
def miasm.arch.x86.sem.pushfq (ir, instr)
 
def miasm.arch.x86.sem.pushfw (ir, instr)
 
def miasm.arch.x86.sem.popfd (ir, instr)
 
def miasm.arch.x86.sem.popfw (ir, instr)
 
def miasm.arch.x86.sem.pusha_gen (ir, instr, size)
 
def miasm.arch.x86.sem.pusha (ir, instr)
 
def miasm.arch.x86.sem.pushad (ir, instr)
 
def miasm.arch.x86.sem.popa_gen (ir, instr, size)
 
def miasm.arch.x86.sem.popa (ir, instr)
 
def miasm.arch.x86.sem.popad (ir, instr)
 
def miasm.arch.x86.sem.call (ir, instr, dst)
 
def miasm.arch.x86.sem.ret (ir, instr, src=None)
 
def miasm.arch.x86.sem.retf (ir, instr, src=None)
 
def miasm.arch.x86.sem.leave (ir, instr)
 
def miasm.arch.x86.sem.enter (ir, instr, src1, src2)
 
def miasm.arch.x86.sem.jmp (ir, instr, dst)
 
def miasm.arch.x86.sem.jz (ir, instr, dst)
 
def miasm.arch.x86.sem.jcxz (ir, instr, dst)
 
def miasm.arch.x86.sem.jecxz (ir, instr, dst)
 
def miasm.arch.x86.sem.jrcxz (ir, instr, dst)
 
def miasm.arch.x86.sem.jnz (ir, instr, dst)
 
def miasm.arch.x86.sem.jp (ir, instr, dst)
 
def miasm.arch.x86.sem.jnp (ir, instr, dst)
 
def miasm.arch.x86.sem.ja (ir, instr, dst)
 
def miasm.arch.x86.sem.jae (ir, instr, dst)
 
def miasm.arch.x86.sem.jb (ir, instr, dst)
 
def miasm.arch.x86.sem.jbe (ir, instr, dst)
 
def miasm.arch.x86.sem.jge (ir, instr, dst)
 
def miasm.arch.x86.sem.jg (ir, instr, dst)
 
def miasm.arch.x86.sem.jl (ir, instr, dst)
 
def miasm.arch.x86.sem.jle (ir, instr, dst)
 
def miasm.arch.x86.sem.js (ir, instr, dst)
 
def miasm.arch.x86.sem.jns (ir, instr, dst)
 
def miasm.arch.x86.sem.jo (ir, instr, dst)
 
def miasm.arch.x86.sem.jno (ir, instr, dst)
 
def miasm.arch.x86.sem.loop (ir, instr, dst)
 
def miasm.arch.x86.sem.loopne (ir, instr, dst)
 
def miasm.arch.x86.sem.loope (ir, instr, dst)
 
def miasm.arch.x86.sem.div (ir, instr, src1)
 
def miasm.arch.x86.sem.idiv (ir, instr, src1)
 
def miasm.arch.x86.sem.mul (_, instr, src1)
 
def miasm.arch.x86.sem.imul (_, instr, src1, src2=None, src3=None)
 
def miasm.arch.x86.sem.cbw (_, instr)
 
def miasm.arch.x86.sem.cwde (_, instr)
 
def miasm.arch.x86.sem.cdqe (_, instr)
 
def miasm.arch.x86.sem.cwd (_, instr)
 
def miasm.arch.x86.sem.cdq (_, instr)
 
def miasm.arch.x86.sem.cqo (_, instr)
 
def miasm.arch.x86.sem.stos (ir, instr, size)
 
def miasm.arch.x86.sem.lods (ir, instr, size)
 
def miasm.arch.x86.sem.movs (ir, instr, size)
 
def miasm.arch.x86.sem.movsd (_, instr, dst, src)
 
def miasm.arch.x86.sem.movsd_dispatch (ir, instr, dst=None, src=None)
 
def miasm.arch.x86.sem.float_prev (flt, popcount=1)
 
def miasm.arch.x86.sem.float_pop (avoid_flt=None, popcount=1)
 
def miasm.arch.x86.sem.fcom (_, instr, dst=None, src=None)
 
def miasm.arch.x86.sem.ftst (_, instr)
 
def miasm.arch.x86.sem.fxam (ir, instr)
 
def miasm.arch.x86.sem.ficom (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.fcomi (_, instr, dst=None, src=None)
 
def miasm.arch.x86.sem.fcomip (ir, instr, dst=None, src=None)
 
def miasm.arch.x86.sem.fucomi (ir, instr, dst=None, src=None)
 
def miasm.arch.x86.sem.fucomip (ir, instr, dst=None, src=None)
 
def miasm.arch.x86.sem.fcomp (ir, instr, dst=None, src=None)
 
def miasm.arch.x86.sem.fcompp (ir, instr, dst=None, src=None)
 
def miasm.arch.x86.sem.ficomp (ir, instr, dst, src=None)
 
def miasm.arch.x86.sem.fucom (ir, instr, dst=None, src=None)
 
def miasm.arch.x86.sem.fucomp (ir, instr, dst=None, src=None)
 
def miasm.arch.x86.sem.fucompp (ir, instr, dst=None, src=None)
 
def miasm.arch.x86.sem.comiss (_, instr, dst, src)
 
def miasm.arch.x86.sem.comisd (_, instr, dst, src)
 
def miasm.arch.x86.sem.fld (_, instr, src)
 
def miasm.arch.x86.sem.fst (_, instr, dst)
 
def miasm.arch.x86.sem.fstp (ir, instr, dst)
 
def miasm.arch.x86.sem.fist (_, instr, dst)
 
def miasm.arch.x86.sem.fistp (ir, instr, dst)
 
def miasm.arch.x86.sem.fisttp (_, instr, dst)
 
def miasm.arch.x86.sem.fild (ir, instr, src)
 
def miasm.arch.x86.sem.fldz (ir, instr)
 
def miasm.arch.x86.sem.fld1 (ir, instr)
 
def miasm.arch.x86.sem.fldl2t (ir, instr)
 
def miasm.arch.x86.sem.fldpi (ir, instr)
 
def miasm.arch.x86.sem.fldln2 (ir, instr)
 
def miasm.arch.x86.sem.fldl2e (ir, instr)
 
def miasm.arch.x86.sem.fldlg2 (ir, instr)
 
def miasm.arch.x86.sem.fadd (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.fiadd (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.fisub (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.fisubr (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.fpatan (_, instr)
 
def miasm.arch.x86.sem.fprem (_, instr)
 
def miasm.arch.x86.sem.fprem1 (_, instr)
 
def miasm.arch.x86.sem.faddp (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.fninit (_, instr)
 
def miasm.arch.x86.sem.fyl2x (_, instr)
 
def miasm.arch.x86.sem.fnstenv (ir, instr, dst)
 
def miasm.arch.x86.sem.fldenv (ir, instr, src)
 
def miasm.arch.x86.sem.fsub (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.fsubp (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.fsubr (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.fsubrp (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.fmul (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.fimul (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.fdiv (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.fdivr (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.fdivrp (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.fidiv (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.fidivr (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.fdivp (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.fmulp (_, instr, dst, src=None)
 
def miasm.arch.x86.sem.ftan (_, instr, src)
 
def miasm.arch.x86.sem.fxch (_, instr, src)
 
def miasm.arch.x86.sem.fptan (_, instr)
 
def miasm.arch.x86.sem.frndint (_, instr)
 
def miasm.arch.x86.sem.fsin (_, instr)
 
def miasm.arch.x86.sem.fcos (_, instr)
 
def miasm.arch.x86.sem.fsincos (_, instr)
 
def miasm.arch.x86.sem.fscale (_, instr)
 
def miasm.arch.x86.sem.f2xm1 (_, instr)
 
def miasm.arch.x86.sem.fchs (_, instr)
 
def miasm.arch.x86.sem.fsqrt (_, instr)
 
def miasm.arch.x86.sem.fabs (_, instr)
 
def miasm.arch.x86.sem.fnstsw (_, instr, dst)
 
def miasm.arch.x86.sem.fnstcw (_, instr, dst)
 
def miasm.arch.x86.sem.fldcw (_, instr, src)
 
def miasm.arch.x86.sem.fwait (_, instr)
 
def miasm.arch.x86.sem.fcmovb (ir, instr, arg1, arg2)
 
def miasm.arch.x86.sem.fcmove (ir, instr, arg1, arg2)
 
def miasm.arch.x86.sem.fcmovbe (ir, instr, arg1, arg2)
 
def miasm.arch.x86.sem.fcmovu (ir, instr, arg1, arg2)
 
def miasm.arch.x86.sem.fcmovnb (ir, instr, arg1, arg2)
 
def miasm.arch.x86.sem.fcmovne (ir, instr, arg1, arg2)
 
def miasm.arch.x86.sem.fcmovnbe (ir, instr, arg1, arg2)
 
def miasm.arch.x86.sem.fcmovnu (ir, instr, arg1, arg2)
 
def miasm.arch.x86.sem.nop (_, instr, a=None)
 
def miasm.arch.x86.sem.prefetch0 (_, instr, src=None)
 
def miasm.arch.x86.sem.prefetch1 (_, instr, src=None)
 
def miasm.arch.x86.sem.prefetch2 (_, instr, src=None)
 
def miasm.arch.x86.sem.prefetchw (_, instr, src=None)
 
def miasm.arch.x86.sem.prefetchnta (_, instr, src=None)
 
def miasm.arch.x86.sem.lfence (_, instr, src=None)
 
def miasm.arch.x86.sem.mfence (_, instr, src=None)
 
def miasm.arch.x86.sem.sfence (_, instr, src=None)
 
def miasm.arch.x86.sem.ud2 (_, instr, src=None)
 
def miasm.arch.x86.sem.hlt (_, instr)
 
def miasm.arch.x86.sem.rdtsc (_, instr)
 
def miasm.arch.x86.sem.daa (_, instr)
 
def miasm.arch.x86.sem.das (_, instr)
 
def miasm.arch.x86.sem.aam (ir, instr, src)
 
def miasm.arch.x86.sem.aad (_, instr, src)
 
def miasm.arch.x86.sem.aaa (ir, instr)
 
def miasm.arch.x86.sem.aas (ir, instr)
 
def miasm.arch.x86.sem.bsr_bsf (ir, instr, dst, src, op_func)
 
def miasm.arch.x86.sem.bsf (ir, instr, dst, src)
 
def miasm.arch.x86.sem.bsr (ir, instr, dst, src)
 
def miasm.arch.x86.sem.arpl (_, instr, dst, src)
 
def miasm.arch.x86.sem.ins (_, instr, size)
 
def miasm.arch.x86.sem.sidt (ir, instr, dst)
 
def miasm.arch.x86.sem.sldt (_, instr, dst)
 
def miasm.arch.x86.sem.cmovz (ir, instr, dst, src)
 
def miasm.arch.x86.sem.cmovnz (ir, instr, dst, src)
 
def miasm.arch.x86.sem.cmovpe (ir, instr, dst, src)
 
def miasm.arch.x86.sem.cmovnp (ir, instr, dst, src)
 
def miasm.arch.x86.sem.cmovge (ir, instr, dst, src)
 
def miasm.arch.x86.sem.cmovg (ir, instr, dst, src)
 
def miasm.arch.x86.sem.cmovl (ir, instr, dst, src)
 
def miasm.arch.x86.sem.cmovle (ir, instr, dst, src)
 
def miasm.arch.x86.sem.cmova (ir, instr, dst, src)
 
def miasm.arch.x86.sem.cmovae (ir, instr, dst, src)
 
def miasm.arch.x86.sem.cmovbe (ir, instr, dst, src)
 
def miasm.arch.x86.sem.cmovb (ir, instr, dst, src)
 
def miasm.arch.x86.sem.cmovo (ir, instr, dst, src)
 
def miasm.arch.x86.sem.cmovno (ir, instr, dst, src)
 
def miasm.arch.x86.sem.cmovs (ir, instr, dst, src)
 
def miasm.arch.x86.sem.cmovns (ir, instr, dst, src)
 
def miasm.arch.x86.sem.icebp (_, instr)
 
def miasm.arch.x86.sem.l_int (_, instr, src)
 
def miasm.arch.x86.sem.l_sysenter (_, instr)
 
def miasm.arch.x86.sem.l_syscall (_, instr)
 
def miasm.arch.x86.sem.l_out (_, instr, src1, src2)
 
def miasm.arch.x86.sem.l_outs (_, instr, size)
 
def miasm.arch.x86.sem.xlat (ir, instr)
 
def miasm.arch.x86.sem.cpuid (_, instr)
 
def miasm.arch.x86.sem.bittest_get (ir, instr, src, index)
 
def miasm.arch.x86.sem.bt (ir, instr, src, index)
 
def miasm.arch.x86.sem.btc (ir, instr, src, index)
 
def miasm.arch.x86.sem.bts (ir, instr, src, index)
 
def miasm.arch.x86.sem.btr (ir, instr, src, index)
 
def miasm.arch.x86.sem.into (_, instr)
 
def miasm.arch.x86.sem.l_in (_, instr, src1, src2)
 
def miasm.arch.x86.sem.cmpxchg (arg1, arg2)
 
def miasm.arch.x86.sem.cmpxchg8b (arg1)
 
def miasm.arch.x86.sem.cmpxchg16b (arg1)
 
def miasm.arch.x86.sem.lds (ir, instr, dst, src)
 
def miasm.arch.x86.sem.les (ir, instr, dst, src)
 
def miasm.arch.x86.sem.lss (ir, instr, dst, src)
 
def miasm.arch.x86.sem.lfs (ir, instr, dst, src)
 
def miasm.arch.x86.sem.lgs (ir, instr, dst, src)
 
def miasm.arch.x86.sem.lahf (_, instr)
 
def miasm.arch.x86.sem.sahf (_, instr)
 
def miasm.arch.x86.sem.lar (_, instr, dst, src)
 
def miasm.arch.x86.sem.lsl (_, instr, dst, src)
 
def miasm.arch.x86.sem.fclex (_, instr)
 
def miasm.arch.x86.sem.fnclex (_, instr)
 
def miasm.arch.x86.sem.l_str (_, instr, dst)
 
def miasm.arch.x86.sem.movd (_, instr, dst, src)
 
def miasm.arch.x86.sem.movdqu (_, instr, dst, src)
 
def miasm.arch.x86.sem.movapd (_, instr, dst, src)
 
def miasm.arch.x86.sem.andps (_, instr, dst, src)
 
def miasm.arch.x86.sem.andnps (_, instr, dst, src)
 
def miasm.arch.x86.sem.orps (_, instr, dst, src)
 
def miasm.arch.x86.sem.xorps (_, instr, dst, src)
 
def miasm.arch.x86.sem.rdmsr (ir, instr)
 
def miasm.arch.x86.sem.wrmsr (ir, instr)
 
def miasm.arch.x86.sem.vec_op_clip (op, size, callback=None)
 
def miasm.arch.x86.sem.vec_vertical_sem (op, elt_size, reg_size, dst, src, apply_on_output)
 
def miasm.arch.x86.sem.vec_vertical_instr (op, elt_size, apply_on_output=lambda x:x)
 
def miasm.arch.x86.sem.pmuludq (ir, instr, dst, src)
 
def miasm.arch.x86.sem.pmaddwd (ir, instr, dst, src)
 
def miasm.arch.x86.sem.psadbw (ir, instr, dst, src)
 
def miasm.arch.x86.sem.pand (_, instr, dst, src)
 
def miasm.arch.x86.sem.pandn (_, instr, dst, src)
 
def miasm.arch.x86.sem.por (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvtdq2pd (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvtdq2ps (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvtpd2dq (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvtpd2pi (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvtpd2ps (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvtpi2pd (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvtpi2ps (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvtps2dq (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvtps2pd (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvtps2pi (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvtsd2si (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvtsd2ss (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvtsi2sd (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvtsi2ss (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvtss2sd (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvtss2si (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvttpd2pi (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvttpd2dq (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvttsd2si (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvttps2dq (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvttps2pi (_, instr, dst, src)
 
def miasm.arch.x86.sem.cvttss2si (_, instr, dst, src)
 
def miasm.arch.x86.sem.movss (_, instr, dst, src)
 
def miasm.arch.x86.sem.ucomiss (_, instr, src1, src2)
 
def miasm.arch.x86.sem.ucomisd (_, instr, src1, src2)
 
def miasm.arch.x86.sem.pshufb (_, instr, dst, src)
 
def miasm.arch.x86.sem.pshufd (_, instr, dst, src, imm)
 
def miasm.arch.x86.sem.pshuflw (_, instr, dst, src, imm)
 
def miasm.arch.x86.sem.pshufhw (_, instr, dst, src, imm)
 
def miasm.arch.x86.sem.ps_rl_ll (ir, instr, dst, src, op, size)
 
def miasm.arch.x86.sem.psrlw (ir, instr, dst, src)
 
def miasm.arch.x86.sem.psrld (ir, instr, dst, src)
 
def miasm.arch.x86.sem.psrlq (ir, instr, dst, src)
 
def miasm.arch.x86.sem.psllw (ir, instr, dst, src)
 
def miasm.arch.x86.sem.pslld (ir, instr, dst, src)
 
def miasm.arch.x86.sem.psllq (ir, instr, dst, src)
 
def miasm.arch.x86.sem.psraw (ir, instr, dst, src)
 
def miasm.arch.x86.sem.psrad (ir, instr, dst, src)
 
def miasm.arch.x86.sem.pslldq (_, instr, dst, src)
 
def miasm.arch.x86.sem.psrldq (_, instr, dst, src)
 
def miasm.arch.x86.sem.iret (ir, instr)
 
def miasm.arch.x86.sem.pcmpeq (_, instr, dst, src, size)
 
def miasm.arch.x86.sem.pcmpgt (_, instr, dst, src, size)
 
def miasm.arch.x86.sem.pcmpeqb (ir, instr, dst, src)
 
def miasm.arch.x86.sem.pcmpeqw (ir, instr, dst, src)
 
def miasm.arch.x86.sem.pcmpeqd (ir, instr, dst, src)
 
def miasm.arch.x86.sem.pcmpeqq (ir, instr, dst, src)
 
def miasm.arch.x86.sem.pcmpgtb (ir, instr, dst, src)
 
def miasm.arch.x86.sem.pcmpgtw (ir, instr, dst, src)
 
def miasm.arch.x86.sem.pcmpgtd (ir, instr, dst, src)
 
def miasm.arch.x86.sem.pcmpgtq (ir, instr, dst, src)
 
def miasm.arch.x86.sem.punpck (_, instr, dst, src, size, off)
 
def miasm.arch.x86.sem.punpckhbw (ir, instr, dst, src)
 
def miasm.arch.x86.sem.punpckhwd (ir, instr, dst, src)
 
def miasm.arch.x86.sem.punpckhdq (ir, instr, dst, src)
 
def miasm.arch.x86.sem.punpckhqdq (ir, instr, dst, src)
 
def miasm.arch.x86.sem.punpcklbw (ir, instr, dst, src)
 
def miasm.arch.x86.sem.punpcklwd (ir, instr, dst, src)
 
def miasm.arch.x86.sem.punpckldq (ir, instr, dst, src)
 
def miasm.arch.x86.sem.punpcklqdq (ir, instr, dst, src)
 
def miasm.arch.x86.sem.pinsr (_, instr, dst, src, imm, size)
 
def miasm.arch.x86.sem.pinsrb (ir, instr, dst, src, imm)
 
def miasm.arch.x86.sem.pinsrw (ir, instr, dst, src, imm)
 
def miasm.arch.x86.sem.pinsrd (ir, instr, dst, src, imm)
 
def miasm.arch.x86.sem.pinsrq (ir, instr, dst, src, imm)
 
def miasm.arch.x86.sem.pextr (_, instr, dst, src, imm, size)
 
def miasm.arch.x86.sem.pextrb (ir, instr, dst, src, imm)
 
def miasm.arch.x86.sem.pextrw (ir, instr, dst, src, imm)
 
def miasm.arch.x86.sem.pextrd (ir, instr, dst, src, imm)
 
def miasm.arch.x86.sem.pextrq (ir, instr, dst, src, imm)
 
def miasm.arch.x86.sem.unpckhps (_, instr, dst, src)
 
def miasm.arch.x86.sem.unpckhpd (_, instr, dst, src)
 
def miasm.arch.x86.sem.unpcklps (_, instr, dst, src)
 
def miasm.arch.x86.sem.unpcklpd (_, instr, dst, src)
 
def miasm.arch.x86.sem.movlpd (_, instr, dst, src)
 
def miasm.arch.x86.sem.movlps (_, instr, dst, src)
 
def miasm.arch.x86.sem.movhpd (_, instr, dst, src)
 
def miasm.arch.x86.sem.movlhps (_, instr, dst, src)
 
def miasm.arch.x86.sem.movhlps (_, instr, dst, src)
 
def miasm.arch.x86.sem.movdq2q (_, instr, dst, src)
 
def miasm.arch.x86.sem.movq2dq (_, instr, dst, src)
 
def miasm.arch.x86.sem.sqrt_gen (_, instr, dst, src, size)
 
def miasm.arch.x86.sem.sqrtpd (ir, instr, dst, src)
 
def miasm.arch.x86.sem.sqrtps (ir, instr, dst, src)
 
def miasm.arch.x86.sem.sqrtsd (_, instr, dst, src)
 
def miasm.arch.x86.sem.sqrtss (_, instr, dst, src)
 
def miasm.arch.x86.sem.pmovmskb (_, instr, dst, src)
 
def miasm.arch.x86.sem.smsw (ir, instr, dst)
 
def miasm.arch.x86.sem.bndmov (ir, instr, dst, src)
 
def miasm.arch.x86.sem.palignr (ir, instr, dst, src, imm)
 
def miasm.arch.x86.sem.packsswb (ir, instr, dst, src)
 
def miasm.arch.x86.sem.packssdw (ir, instr, dst, src)
 
def miasm.arch.x86.sem.packuswb (ir, instr, dst, src)
 
def miasm.arch.x86.sem.maskmovq (ir, instr, src, mask)
 
def miasm.arch.x86.sem.emms (ir, instr)
 
def miasm.arch.x86.sem.incssp (ir, instr, dst)
 
def miasm.arch.x86.sem.rdssp (ir, instr, dst)
 
def miasm.arch.x86.sem.saveprevssp (ir, instr)
 
def miasm.arch.x86.sem.rstorssp (ir, instr, dst)
 
def miasm.arch.x86.sem.wrss (ir, instr, src, dst)
 
def miasm.arch.x86.sem.wruss (ir, instr, src, dst)
 
def miasm.arch.x86.sem.setssbsy (ir, instr)
 
def miasm.arch.x86.sem.clrssbsy (ir, instr, dst)
 
def miasm.arch.x86.sem.endbr64 (ir, instr)
 
def miasm.arch.x86.sem.endbr32 (ir, instr)
 
def miasm.arch.x86.sem.stmxcsr (ir, instr, dst)
 
def miasm.arch.x86.sem.ldmxcsr (ir, instr, dst)
 
def miasm.arch.x86.sem.shufps (ir, instr, dst, src, imm8)
 
def miasm.arch.x86.sem.shufpd (ir, instr, dst, src, imm8)
 
def miasm.arch.x86.sem.movmskps (ir, instr, dst, src)
 
def miasm.arch.x86.sem.movmskpd (ir, instr, dst, src)
 
def miasm.arch.x86.sem.roundss (ir, inst, dst, src, imm8)
 
def miasm.arch.x86.sem.roundsd (ir, inst, dst, src, imm8)
 
def miasm.arch.x86.sem.fxsave (_ir, _instr, _src)
 
def miasm.arch.x86.sem.fxrstor (_ir, _instr, _dst)
 

Variables

 miasm.arch.x86.sem.LOG_X86_SEM = logging.getLogger("x86_sem")
 
 miasm.arch.x86.sem.CONSOLE_HANDLER = logging.StreamHandler()
 
dictionary miasm.arch.x86.sem.ctx
 
 miasm.arch.x86.sem.sbuild = SemBuilder(ctx)
 
list miasm.arch.x86.sem.pa_regs
 
def miasm.arch.x86.sem.paddb = vec_vertical_instr('+', 8)
 
def miasm.arch.x86.sem.paddw = vec_vertical_instr('+', 16)
 
def miasm.arch.x86.sem.paddd = vec_vertical_instr('+', 32)
 
def miasm.arch.x86.sem.paddq = vec_vertical_instr('+', 64)
 
def miasm.arch.x86.sem.psubb = vec_vertical_instr('-', 8)
 
def miasm.arch.x86.sem.psubw = vec_vertical_instr('-', 16)
 
def miasm.arch.x86.sem.psubd = vec_vertical_instr('-', 32)
 
def miasm.arch.x86.sem.psubq = vec_vertical_instr('-', 64)
 
def miasm.arch.x86.sem.pmullb = vec_vertical_instr('*', 8)
 
def miasm.arch.x86.sem.pmullw = vec_vertical_instr('*', 16)
 
def miasm.arch.x86.sem.pmulld = vec_vertical_instr('*', 32)
 
def miasm.arch.x86.sem.pmullq = vec_vertical_instr('*', 64)
 
def miasm.arch.x86.sem.pmulhub = vec_vertical_instr('*', 8, _keep_mul_high)
 
def miasm.arch.x86.sem.pmulhuw = vec_vertical_instr('*', 16, _keep_mul_high)
 
def miasm.arch.x86.sem.pmulhud = vec_vertical_instr('*', 32, _keep_mul_high)
 
def miasm.arch.x86.sem.pmulhuq = vec_vertical_instr('*', 64, _keep_mul_high)
 
def miasm.arch.x86.sem.pmulhb = vec_vertical_instr('*', 8, lambda x: _keep_mul_high(x, signed=True))
 
def miasm.arch.x86.sem.pmulhw = vec_vertical_instr('*', 16, lambda x: _keep_mul_high(x, signed=True))
 
def miasm.arch.x86.sem.pmulhd = vec_vertical_instr('*', 32, lambda x: _keep_mul_high(x, signed=True))
 
def miasm.arch.x86.sem.pmulhq = vec_vertical_instr('*', 64, lambda x: _keep_mul_high(x, signed=True))
 
def miasm.arch.x86.sem.pavgb = vec_vertical_instr('avg', 8, _average)
 
def miasm.arch.x86.sem.pavgw = vec_vertical_instr('avg', 16, _average)
 
def miasm.arch.x86.sem.pminsw = vec_vertical_instr('min', 16, lambda x: _min_max(x, signed=True))
 
def miasm.arch.x86.sem.pminub = vec_vertical_instr('min', 8, lambda x: _min_max(x, signed=False))
 
def miasm.arch.x86.sem.pminuw = vec_vertical_instr('min', 16, lambda x: _min_max(x, signed=False))
 
def miasm.arch.x86.sem.pminud = vec_vertical_instr('min', 32, lambda x: _min_max(x, signed=False))
 
def miasm.arch.x86.sem.pmaxub = vec_vertical_instr('max', 8, lambda x: _min_max(x, signed=False))
 
def miasm.arch.x86.sem.pmaxuw = vec_vertical_instr('max', 16, lambda x: _min_max(x, signed=False))
 
def miasm.arch.x86.sem.pmaxud = vec_vertical_instr('max', 32, lambda x: _min_max(x, signed=False))
 
def miasm.arch.x86.sem.pmaxsw = vec_vertical_instr('max', 16, lambda x: _min_max(x, signed=True))
 
def miasm.arch.x86.sem.addss = vec_op_clip('fadd', 32)
 
def miasm.arch.x86.sem.addsd = vec_op_clip('fadd', 64)
 
def miasm.arch.x86.sem.addps = vec_vertical_instr('fadd', 32)
 
def miasm.arch.x86.sem.addpd = vec_vertical_instr('fadd', 64)
 
def miasm.arch.x86.sem.subss = vec_op_clip('fsub', 32)
 
def miasm.arch.x86.sem.subsd = vec_op_clip('fsub', 64)
 
def miasm.arch.x86.sem.subps = vec_vertical_instr('fsub', 32)
 
def miasm.arch.x86.sem.subpd = vec_vertical_instr('fsub', 64)
 
def miasm.arch.x86.sem.mulss = vec_op_clip('fmul', 32)
 
def miasm.arch.x86.sem.mulsd = vec_op_clip('fmul', 64)
 
def miasm.arch.x86.sem.mulps = vec_vertical_instr('fmul', 32)
 
def miasm.arch.x86.sem.mulpd = vec_vertical_instr('fmul', 64)
 
def miasm.arch.x86.sem.divss = vec_op_clip('fdiv', 32)
 
def miasm.arch.x86.sem.divsd = vec_op_clip('fdiv', 64)
 
def miasm.arch.x86.sem.divps = vec_vertical_instr('fdiv', 32)
 
def miasm.arch.x86.sem.divpd = vec_vertical_instr('fdiv', 64)
 
def miasm.arch.x86.sem.minps = vec_vertical_instr('fmin', 32, _float_min_max)
 
def miasm.arch.x86.sem.minpd = vec_vertical_instr('fmin', 64, _float_min_max)
 
def miasm.arch.x86.sem.minss = vec_op_clip('fmin', 32, _float_min_max)
 
def miasm.arch.x86.sem.minsd = vec_op_clip('fmin', 64, _float_min_max)
 
def miasm.arch.x86.sem.maxps = vec_vertical_instr('fmax', 32, _float_min_max)
 
def miasm.arch.x86.sem.maxpd = vec_vertical_instr('fmax', 64, _float_min_max)
 
def miasm.arch.x86.sem.maxss = vec_op_clip('fmax', 32, _float_min_max)
 
def miasm.arch.x86.sem.maxsd = vec_op_clip('fmax', 64, _float_min_max)
 
def miasm.arch.x86.sem.cmpeqps = vec_vertical_instr('==fu', 32, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpeqpd = vec_vertical_instr('==fu', 64, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpeqss = vec_op_clip('==fu', 32, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpeqsd = vec_op_clip('==fu', 64, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpltps = vec_vertical_instr('<fu', 32, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpltpd = vec_vertical_instr('<fu', 64, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpltss = vec_op_clip('<fu', 32, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpltsd = vec_op_clip('<fu', 64, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpleps = vec_vertical_instr('<=fu', 32, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmplepd = vec_vertical_instr('<=fu', 64, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpless = vec_op_clip('<=fu', 32, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmplesd = vec_op_clip('<=fu', 64, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpunordps = vec_vertical_instr('unord', 32, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpunordpd = vec_vertical_instr('unord', 64, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpunordss = vec_op_clip('unord', 32, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpunordsd = vec_op_clip('unord', 64, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpneqps = vec_vertical_instr('!=fu', 32, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpneqpd = vec_vertical_instr('!=fu', 64, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpneqss = vec_op_clip('!=fu', 32, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpneqsd = vec_op_clip('!=fu', 64, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpnltps = vec_vertical_instr('!<fu', 32, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpnltpd = vec_vertical_instr('!<fu', 64, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpnltss = vec_op_clip('!<fu', 32, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpnltsd = vec_op_clip('!<fu', 64, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpnleps = vec_vertical_instr('!<=fu', 32, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpnlepd = vec_vertical_instr('!<=fu', 64, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpnless = vec_op_clip('!<=fu', 32, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpnlesd = vec_op_clip('!<=fu', 64, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpordps = vec_vertical_instr('ord', 32, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpordpd = vec_vertical_instr('ord', 64, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpordss = vec_op_clip('ord', 32, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.cmpordsd = vec_op_clip('ord', 64, lambda x: _float_compare_to_mask(x))
 
def miasm.arch.x86.sem.psubusb = vec_vertical_instr('-', 8, _saturation_sub_unsigned)
 
def miasm.arch.x86.sem.psubusw = vec_vertical_instr('-', 16, _saturation_sub_unsigned)
 
def miasm.arch.x86.sem.paddusb = vec_vertical_instr('+', 8, _saturation_add)
 
def miasm.arch.x86.sem.paddusw = vec_vertical_instr('+', 16, _saturation_add)
 
def miasm.arch.x86.sem.psubsb = vec_vertical_instr('-', 8, _saturation_sub_signed)
 
def miasm.arch.x86.sem.psubsw = vec_vertical_instr('-', 16, _saturation_sub_signed)
 
def miasm.arch.x86.sem.paddsb = vec_vertical_instr('+', 8, _saturation_add_signed)
 
def miasm.arch.x86.sem.paddsw = vec_vertical_instr('+', 16, _saturation_add_signed)
 
int miasm.arch.x86.sem.STMXCSR_VALUE = 0x1fa0
 
dictionary miasm.arch.x86.sem.mnemo_func