diff options
| author | serpilliere <fabrice.desclaux@cea.fr> | 2015-10-19 20:51:53 +0200 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2015-10-23 10:53:51 +0200 |
| commit | beea5121ef2e9d0df7edfa49cb8aae2ffd9836a9 (patch) | |
| tree | cb989a8b597f3e3b3fe94b1d8139008ecabc1b8a | |
| parent | 5871e7da55bbffa4cadfbdf11e73366efef37c54 (diff) | |
| download | miasm-beea5121ef2e9d0df7edfa49cb8aae2ffd9836a9.tar.gz miasm-beea5121ef2e9d0df7edfa49cb8aae2ffd9836a9.zip | |
Arch/x86/sem: fix movd
Diffstat (limited to '')
| -rw-r--r-- | miasm2/arch/x86/sem.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/miasm2/arch/x86/sem.py b/miasm2/arch/x86/sem.py index ecbd9b7b..3a46a251 100644 --- a/miasm2/arch/x86/sem.py +++ b/miasm2/arch/x86/sem.py @@ -3213,12 +3213,14 @@ def l_str(ir, instr, a): def movd(ir, instr, a, b): e = [] - if a.size == 64: - value = m2_expr.ExprCompose([(m2_expr.ExprInt32(0), 32, 64), - (b, 0, 32)]) - e.append(m2_expr.ExprAff(a, value)) + if a in regs_mm_expr: + e.append(m2_expr.ExprAff(a, m2_expr.ExprCompose([(b, 0, 32), + (m2_expr.ExprInt32(0), 32, 64)]))) + elif a in regs_xmm_expr: + e.append(m2_expr.ExprAff(a, m2_expr.ExprCompose([(b, 0, 32), + (m2_expr.ExprInt_fromsize(96, 0), 32, 128)]))) else: - e.append(m2_expr.ExprAff(a, b[0:32])) + e.append(m2_expr.ExprAff(a, b[:32])) return e, [] def movdqu(ir, instr, a, b): |