From c57cb79f9adb570946f02ce96930ee686ad65734 Mon Sep 17 00:00:00 2001 From: Ajax Date: Thu, 12 Nov 2015 15:47:08 +0100 Subject: Simplifications: '>>>', '<<<' with rounds > size --- miasm2/expression/simplifications_common.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'miasm2/expression/simplifications_common.py') diff --git a/miasm2/expression/simplifications_common.py b/miasm2/expression/simplifications_common.py index d50e81a1..fe69d0b9 100644 --- a/miasm2/expression/simplifications_common.py +++ b/miasm2/expression/simplifications_common.py @@ -45,10 +45,11 @@ def simp_cst_propagation(e_s, e): x2 = mod_size2int[i2.arg.size](i2.arg) o = mod_size2uint[i1.arg.size](x1 >> x2) elif op == '>>>': - rounds = i2.arg - o = i1.arg >> i2.arg | i1.arg << (i1.size - i2.arg) + o = (i1.arg >> (i2.arg % i2.size) | + i1.arg << ((i1.size - i2.arg) % i2.size)) elif op == '<<<': - o = i1.arg << i2.arg | i1.arg >> (i1.size - i2.arg) + o = (i1.arg << (i2.arg % i2.size) | + i1.arg >> ((i1.size - i2.arg) % i2.size)) elif op == '/': o = i1.arg / i2.arg elif op == '%': -- cgit 1.4.1