about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAjax <commial@gmail.com>2018-02-09 14:54:18 +0100
committerAjax <commial@gmail.com>2018-02-09 17:36:31 +0100
commit104d1425792e95a3df64aede5d46b43c324ca125 (patch)
treeb2f076cc353b876f35fe5c602f2c867aeaba203c
parent971b683a5f068068a2d775d5807deacd13918cf9 (diff)
downloadmiasm-104d1425792e95a3df64aede5d46b43c324ca125.tar.gz
miasm-104d1425792e95a3df64aede5d46b43c324ca125.zip
Add EMMS, implemtend as a NOP
-rw-r--r--miasm2/arch/x86/arch.py2
-rw-r--r--miasm2/arch/x86/sem.py6
-rw-r--r--test/arch/x86/arch.py3
3 files changed, 11 insertions, 0 deletions
diff --git a/miasm2/arch/x86/arch.py b/miasm2/arch/x86/arch.py
index 40cd4e9c..72ed3309 100644
--- a/miasm2/arch/x86/arch.py
+++ b/miasm2/arch/x86/arch.py
@@ -4553,6 +4553,8 @@ addop("maskmovq", [bs8(0x0f), bs8(0xf7), no_xmm_pref] +
 addop("maskmovdqu", [bs8(0x0f), bs8(0xf7), pref_66] +
       rmmod(xmm_reg, rm_arg_xmm_reg))
 
+addop("emms", [bs8(0x0f), bs8(0x77)])
+
 
 mn_x86.bintree = factor_one_bit(mn_x86.bintree)
 # mn_x86.bintree = factor_fields_all(mn_x86.bintree)
diff --git a/miasm2/arch/x86/sem.py b/miasm2/arch/x86/sem.py
index becee84e..ddc8aaf9 100644
--- a/miasm2/arch/x86/sem.py
+++ b/miasm2/arch/x86/sem.py
@@ -4447,6 +4447,11 @@ def maskmovq(ir, instr, src, mask):
     return e, blks
 
 
+def emms(ir, instr):
+    # Implemented as a NOP
+    return [], []
+
+
 mnemo_func = {'mov': mov,
               'xchg': xchg,
               'movzx': movzx,
@@ -4984,6 +4989,7 @@ mnemo_func = {'mov': mov,
               "smsw": smsw,
               "maskmovq": maskmovq,
               "maskmovdqu": maskmovq,
+              "emms": emms,
               }
 
 
diff --git a/test/arch/x86/arch.py b/test/arch/x86/arch.py
index f491c19a..2af90c8a 100644
--- a/test/arch/x86/arch.py
+++ b/test/arch/x86/arch.py
@@ -3074,6 +3074,9 @@ reg_tests = [
      "0ff7d3"),
     (m32, "00000000    MASKMOVDQU XMM4, XMM5",
      "660ff7e5"),
+
+    (m32, "00000000    EMMS",
+     "0f77"),
 ]