about summary refs log tree commit diff stats
path: root/miasm2/ir/translators/C.py
diff options
context:
space:
mode:
authorCamille Mougey <commial@gmail.com>2018-08-30 08:08:33 +0200
committerGitHub <noreply@github.com>2018-08-30 08:08:33 +0200
commita06f5c7703da2b5f0890f7681eed638ffe6698a1 (patch)
tree8f97fbf1156f8fe3c27c7da55066bc0927c545b0 /miasm2/ir/translators/C.py
parent53faba1609e80ed11edc7e504dffe59a21dc1d44 (diff)
parente83a23d1d5a837c8635ef403ddab310587641c32 (diff)
downloadmiasm-a06f5c7703da2b5f0890f7681eed638ffe6698a1.tar.gz
miasm-a06f5c7703da2b5f0890f7681eed638ffe6698a1.zip
Merge pull request #829 from serpilliere/fix_float
X86: fix float
Diffstat (limited to '')
-rw-r--r--miasm2/ir/translators/C.py20
1 files changed, 7 insertions, 13 deletions
diff --git a/miasm2/ir/translators/C.py b/miasm2/ir/translators/C.py
index 01aa7d7a..6700e826 100644
--- a/miasm2/ir/translators/C.py
+++ b/miasm2/ir/translators/C.py
@@ -199,20 +199,14 @@ class TranslatorC(Translator):
                     expr.size,
                     self.from_expr(expr.args[0]),
                 )
-            elif expr.op.startswith("sint_to_fp"):
-                dest_size = expr.size
-                arg_size = expr.args[0].size
-                if (arg_size, dest_size) in [
-                        (32, 32), (64, 64), (32, 64),
-                ]:
-                    func = "sint%d_to_fp%d" % (arg_size, dest_size)
-                else:
+            elif expr.op == "sint_to_fp":
+                size = expr.size
+                arg = expr.args[0]
+                if size not in [32, 64]:
                     raise RuntimeError(
-                        "Unsupported size for sint_to_fp: %r to %r" % (
-                            arg_size,
-                            dest_size
-                        ))
-                return "%s(%s)" % (func, self.from_expr(expr.args[0]))
+                        "Unsupported size for sint_to_fp: %r" % size
+                    )
+                return "%s_%d(%s)" % (expr.op, size, self.from_expr(arg))
             elif expr.op.startswith("fp_to_sint"):
                 dest_size = expr.size
                 arg_size = expr.args[0].size