about summary refs log tree commit diff stats
path: root/miasm/expression/expression.py
diff options
context:
space:
mode:
authorserpilliere <devnull@localhost>2011-10-19 11:37:11 +0200
committerserpilliere <devnull@localhost>2011-10-19 11:37:11 +0200
commit6422cca2e70fe7806850b49d040e57f771b53901 (patch)
tree50711b2c59266fd44e552fc8df24509949dc6eee /miasm/expression/expression.py
parent48b51aa94e4fb02b7170b78feb4d4ae43d2ba42d (diff)
downloadfocaccia-miasm-6422cca2e70fe7806850b49d040e57f771b53901.tar.gz
focaccia-miasm-6422cca2e70fe7806850b49d040e57f771b53901.zip
add floating point support for emulation
Diffstat (limited to 'miasm/expression/expression.py')
-rw-r--r--miasm/expression/expression.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/miasm/expression/expression.py b/miasm/expression/expression.py
index e5ea8eda..8fa9eb27 100644
--- a/miasm/expression/expression.py
+++ b/miasm/expression/expression.py
@@ -457,8 +457,11 @@ class ExprOp(Expr):
                 return "%s(%s)"%(self.op, self.args[0].toC())
             elif self.op.startswith("double_to_mem_"):
                 return "%s(%s)"%(self.op, self.args[0].toC())
+            elif self.op in ["ftan", "frndint", "f2xm1", "fsin"]:
+                return "%s(%s)"%(self.op, self.args[0].toC())
             else:
-                fsdfdsf
+                print self.op
+                raise ValueError('unknown op!!', str(self.op))
                 return '('+str(self.op)+self.args[0].toC()+')'
         elif len(self.args)==2:
             if self.op == "==":
@@ -478,7 +481,7 @@ class ExprOp(Expr):
             elif self.op in dct_rot:
                 return '(%s(%s, %s, %s) &0x%x)'%(dct_rot[self.op],
                                                  self.args[0].get_size(),
-                                                 self.args[0].toC(), 
+                                                 self.args[0].toC(),
                                                  self.args[1].toC(),
                                                  my_size_mask[self.args[0].get_size()])
 
@@ -534,7 +537,7 @@ class ExprOp(Expr):
                 return "%s(%s, %s)"%(self.op, self.args[0].toC(), self.args[1].toC())
             elif self.op.startswith("fcom"):
                 return "%s(%s, %s)"%(self.op, self.args[0].toC(), self.args[1].toC())
-            elif self.op in ["fadd", "fdiv"]:
+            elif self.op in ["fadd", "fsub", "fdiv", 'fmul', "fscale"]:
                 return "%s(%s, %s)"%(self.op, self.args[0].toC(), self.args[1].toC())
             else:
                 print self.op