about summary refs log tree commit diff stats
path: root/miasm2/arch/x86/sem.py
diff options
context:
space:
mode:
Diffstat (limited to 'miasm2/arch/x86/sem.py')
-rw-r--r--miasm2/arch/x86/sem.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/miasm2/arch/x86/sem.py b/miasm2/arch/x86/sem.py
index a9737923..ff27937f 100644
--- a/miasm2/arch/x86/sem.py
+++ b/miasm2/arch/x86/sem.py
@@ -3949,6 +3949,15 @@ def sqrtss(ir, instr, a, b):
     return e, []
 
 
+def pmovmskb(ir, instr, a, b):
+    e = []
+    out = []
+    for i in xrange(b.size / 8):
+        out.append((b[8 * i + 7:8 * (i + 1)], i, i + 1))
+    src = m2_expr.ExprCompose(out)
+    e.append(m2_expr.ExprAff(a, src.zeroExtend(a.size)))
+    return e, []
+
 mnemo_func = {'mov': mov,
               'xchg': xchg,
               'movzx': movzx,
@@ -4426,6 +4435,8 @@ mnemo_func = {'mov': mov,
               "sqrtsd": sqrtsd,
               "sqrtss": sqrtss,
 
+              "pmovmskb": pmovmskb,
+
               }