diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2015-02-20 14:02:20 +0100 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2015-02-20 14:02:20 +0100 |
| commit | 82d3e73cd19f3638265d35f765cdab1dc13d1ddb (patch) | |
| tree | d2c4a568c9fd9aea904b92e1bcbeb770e8dddbb5 /miasm2/ir/translators/C.py | |
| parent | 736befb2b6fab02e601eae392a9969ac91f2caa3 (diff) | |
| download | miasm-82d3e73cd19f3638265d35f765cdab1dc13d1ddb.tar.gz miasm-82d3e73cd19f3638265d35f765cdab1dc13d1ddb.zip | |
X86: fix bsr/bsf behaviour as issued in PR #79
Diffstat (limited to '')
| -rw-r--r-- | miasm2/ir/translators/C.py | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/miasm2/ir/translators/C.py b/miasm2/ir/translators/C.py index a730b1d8..007f8378 100644 --- a/miasm2/ir/translators/C.py +++ b/miasm2/ir/translators/C.py @@ -59,6 +59,10 @@ class TranslatorC(Translator): if expr.op == 'parity': return "parity(%s&0x%x)" % (cls.from_expr(expr.args[0]), size2mask(expr.args[0].size)) + elif expr.op in ['bsr', 'bsf']: + return "x86_%s(%s, 0x%x)" % (expr.op, + cls.from_expr(expr.args[0]), + expr.args[0].size) elif expr.op == '!': return "(~ %s)&0x%x" % (cls.from_expr(expr.args[0]), size2mask(expr.args[0].size)) @@ -102,10 +106,6 @@ class TranslatorC(Translator): cls.from_expr(expr.args[0]), cls.from_expr(expr.args[1]), size2mask(expr.args[0].size)) - elif expr.op in ['bsr', 'bsf']: - return 'my_%s(%s, %s)' % (expr.op, - cls.from_expr(expr.args[0]), - cls.from_expr(expr.args[1])) elif (expr.op.startswith('cpuid') or expr.op.startswith("fcom") or expr.op in ["fadd", "fsub", "fdiv", 'fmul', "fscale"]): |