about summary refs log tree commit diff stats
path: root/miasm2/arch/x86/sem.py
diff options
context:
space:
mode:
authorCamille Mougey <commial@gmail.com>2017-02-03 16:21:25 +0100
committerGitHub <noreply@github.com>2017-02-03 16:21:25 +0100
commitc44bd532e8363fb85c94313c0ffb83ba0b0f7f77 (patch)
treebad58924a72fe33fde7ddc37a5d4dee795b40f75 /miasm2/arch/x86/sem.py
parent91e5c5adb43dc5ad20ea80a33f5eaaff0af30e12 (diff)
parent6125d37a9cf2b9d2907668552c31a0510176a822 (diff)
downloadmiasm-c44bd532e8363fb85c94313c0ffb83ba0b0f7f77.tar.gz
miasm-c44bd532e8363fb85c94313c0ffb83ba0b0f7f77.zip
Merge pull request #488 from serpilliere/fix_x86_mnemos
Fix x86 mnemos
Diffstat (limited to 'miasm2/arch/x86/sem.py')
-rw-r--r--miasm2/arch/x86/sem.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/miasm2/arch/x86/sem.py b/miasm2/arch/x86/sem.py
index ea5830e3..df5a07a0 100644
--- a/miasm2/arch/x86/sem.py
+++ b/miasm2/arch/x86/sem.py
@@ -3627,6 +3627,15 @@ def pslld(ir, instr, a, b):
 def psllq(ir, instr, a, b):
     return ps_rl_ll(ir, instr, a, b, "<<",  64)
 
+def pslldq(ir, instr, a, b):
+    assert b.is_int()
+    e = []
+    count = int(b)
+    if count > 15:
+        return [m2_expr.ExprAff(a, m2_expr.ExprInt(0, a.size))], []
+    else:
+        return [m2_expr.ExprAff(a, a << m2_expr.ExprInt(8*count, a.size))], []
+
 
 def iret(ir, instr):
     """IRET implementation
@@ -4361,6 +4370,7 @@ mnemo_func = {'mov': mov,
               "psllw": psllw,
               "pslld": pslld,
               "psllq": psllq,
+              "pslldq": pslldq,
 
               "pmaxub": pmaxub,
               "pmaxuw": pmaxuw,