diff options
| -rw-r--r-- | miasm2/arch/x86/arch.py | 2 | ||||
| -rw-r--r-- | miasm2/arch/x86/sem.py | 6 | ||||
| -rw-r--r-- | test/arch/x86/arch.py | 3 |
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"), ] |