about summary refs log tree commit diff stats
path: root/miasm2/arch/arm
diff options
context:
space:
mode:
Diffstat (limited to 'miasm2/arch/arm')
-rw-r--r--miasm2/arch/arm/arch.py26
-rw-r--r--miasm2/arch/arm/sem.py12
2 files changed, 19 insertions, 19 deletions
diff --git a/miasm2/arch/arm/arch.py b/miasm2/arch/arm/arch.py
index 5e4b02f9..39b4cb14 100644
--- a/miasm2/arch/arm/arch.py
+++ b/miasm2/arch/arm/arch.py
@@ -224,9 +224,9 @@ def deref2expr_pre(s, l, t):
 def deref2expr_pre_mem(s, l, t):
     t = t[0]
     if len(t) == 1:
-        return ExprMem(ExprOp("preinc", t[0], ExprInt(0, 32)))
+        return ExprMem(ExprOp("preinc", t[0], ExprInt(0, 32)), 32)
     elif len(t) == 2:
-        return ExprMem(ExprOp("preinc", t[0], t[1]))
+        return ExprMem(ExprOp("preinc", t[0], t[1]), 32)
     else:
         raise NotImplementedError('len(t) > 2')
 
@@ -239,8 +239,8 @@ def deref2expr_post(s, l, t):
 def deref_wb(s, l, t):
     t = t[0]
     if t[-1] == '!':
-        return ExprMem(ExprOp('wback', *t[:-1]))
-    return ExprMem(t[0])
+        return ExprMem(ExprOp('wback', *t[:-1]), 32)
+    return ExprMem(t[0], 32)
 
 # shift_off.setParseAction(deref_off)
 deref_nooff = Group(
@@ -855,7 +855,7 @@ class arm_imm8_12(m_arg):
             e = ExprOp('postinc', self.parent.rn.expr, e)
         if self.parent.wback.value == 1:
             e = ExprOp('wback', e)
-        self.expr = ExprMem(e)
+        self.expr = ExprMem(e, 32)
         return True
 
     def encode(self):
@@ -1056,7 +1056,7 @@ class arm_op2imm(arm_imm8_12):
                 e = ExprOp('postinc', self.parent.rn.expr, ExprInt(imm, 32))
             if self.parent.wback.value == 1:
                 e = ExprOp('wback', e)
-            self.expr = ExprMem(e)
+            self.expr = ExprMem(e, 32)
             return True
         rm = val & 0xf
         shift = val >> 4
@@ -1083,7 +1083,7 @@ class arm_op2imm(arm_imm8_12):
             e = ExprOp('postinc', self.parent.rn.expr, a)
         if self.parent.wback.value == 1:
             e = ExprOp('wback', e)
-        self.expr = ExprMem(e)
+        self.expr = ExprMem(e, 32)
         return True
 
     def encode(self):
@@ -1372,7 +1372,7 @@ class arm_immed(m_arg):
             e = ExprOp('postinc', self.parent.rn.expr, imm)
         if self.parent.wback.value == 1:
             e = ExprOp('wback', e)
-        self.expr = ExprMem(e)
+        self.expr = ExprMem(e, 32)
 
         return True
 
@@ -1459,9 +1459,9 @@ class arm_mem_rn_imm(m_arg):
         imm = ExprInt(value, 32)
         reg = gpregs.expr[v]
         if value:
-            expr = ExprMem(reg + imm)
+            expr = ExprMem(reg + imm, 32)
         else:
-            expr = ExprMem(reg)
+            expr = ExprMem(reg, 32)
         self.expr = expr
         return True
 
@@ -1748,9 +1748,9 @@ class arm_offpc(arm_offreg):
         v = v & self.lmask
         v <<= 2
         if v:
-            self.expr = ExprMem(self.off_reg + ExprInt(v, 32))
+            self.expr = ExprMem(self.off_reg + ExprInt(v, 32), 32)
         else:
-            self.expr = ExprMem(self.off_reg)
+            self.expr = ExprMem(self.off_reg, 32)
 
         e = self.expr.arg
         if isinstance(e, ExprOp) and e.op == 'wback':
@@ -1823,7 +1823,7 @@ class arm_deref(m_arg):
         v = v & self.lmask
         rbase = regs_expr[v]
         e = ExprOp('preinc', rbase, self.parent.off.expr)
-        self.expr = ExprMem(e)
+        self.expr = ExprMem(e, 32)
         return True
 
     def encode(self):
diff --git a/miasm2/arch/arm/sem.py b/miasm2/arch/arm/sem.py
index 29b25538..c2afeef5 100644
--- a/miasm2/arch/arm/sem.py
+++ b/miasm2/arch/arm/sem.py
@@ -672,11 +672,11 @@ def st_ld_m(ir, instr, a, b, store=False, postinc=False, updown=False):
     for i, r in enumerate(regs):
         ad = base + ExprInt(i * step, 32)
         if store:
-            e.append(ExprAff(ExprMem(ad), r))
+            e.append(ExprAff(ExprMem(ad, 32), r))
         else:
-            e.append(ExprAff(r, ExprMem(ad)))
+            e.append(ExprAff(r, ExprMem(ad, 32)))
             if r == PC:
-                e.append(ExprAff(ir.IRDst, ExprMem(ad)))
+                e.append(ExprAff(ir.IRDst, ExprMem(ad, 32)))
     # XXX TODO check multiple write cause by wb
     if wb:
         if postinc:
@@ -813,7 +813,7 @@ def push(ir, instr, a):
     regs = list(a.args)
     for i in xrange(len(regs)):
         r = SP + ExprInt(-4 * (i + 1), 32)
-        e.append(ExprAff(ExprMem(r), regs[i]))
+        e.append(ExprAff(ExprMem(r, 32), regs[i]))
     r = SP + ExprInt(-4 * len(regs), 32)
     e.append(ExprAff(SP, r))
     return e
@@ -825,9 +825,9 @@ def pop(ir, instr, a):
     dst = None
     for i in xrange(len(regs)):
         r = SP + ExprInt(4 * i, 32)
-        e.append(ExprAff(regs[i], ExprMem(r)))
+        e.append(ExprAff(regs[i], ExprMem(r, 32)))
         if regs[i] == ir.pc:
-            dst = ExprMem(r)
+            dst = ExprMem(r, 32)
     r = SP + ExprInt(4 * len(regs), 32)
     e.append(ExprAff(SP, r))
     if dst is not None: