about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorserpilliere <devnull@localhost>2012-05-09 16:27:23 +0200
committerserpilliere <devnull@localhost>2012-05-09 16:27:23 +0200
commit4c1249be30b233e0a9feeab3afb0be492dde4104 (patch)
tree941c26c35047ee80ebe13f7337dca529437bd327
parent6008b0fe75024316529e485500f063cd6c1f6720 (diff)
downloadmiasm-4c1249be30b233e0a9feeab3afb0be492dde4104.tar.gz
miasm-4c1249be30b233e0a9feeab3afb0be492dde4104.zip
fix mask in toC
Diffstat (limited to '')
-rw-r--r--miasm/expression/expression.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/miasm/expression/expression.py b/miasm/expression/expression.py
index 235a79b8..e538b784 100644
--- a/miasm/expression/expression.py
+++ b/miasm/expression/expression.py
@@ -549,8 +549,10 @@ class ExprSlice(Expr):
     def __hash__(self):
         return hash(self.arg)^hash(self.start)^hash(self.stop)
     def toC(self):
-        # XXX gen mask in python for 64 bit & 32 bit compat
-        return "((%s>>%d) & ((0xFFFFFFFF>>(32-%d))))"%(self.arg.toC(), self.start, self.stop-self.start)
+        # XXX check mask for 64 bit & 32 bit compat
+        return "((%s>>%d) & 0x%X)"%(self.arg.toC(),
+                                    self.start,
+                                    (1<<(self.stop-self.start))-1)
     def canonize(self):
         return ExprSlice(self.arg.canonize(),
                          self.start,