diff options
Diffstat (limited to 'miasm2/expression/simplifications_common.py')
| -rw-r--r-- | miasm2/expression/simplifications_common.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/miasm2/expression/simplifications_common.py b/miasm2/expression/simplifications_common.py index e620a97d..c907fe84 100644 --- a/miasm2/expression/simplifications_common.py +++ b/miasm2/expression/simplifications_common.py @@ -21,6 +21,7 @@ def simp_cst_propagation(e_s, e): op = e.op # simpl integer manip # int OP int => int + # TODO: <<< >>> << >> are architecture dependant if op in op_propag_cst: while (len(args) >= 2 and isinstance(args[-1], ExprInt) and @@ -46,7 +47,10 @@ 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) + elif op == '<<<': + o = i1.arg << i2.arg | i1.arg >> (i1.size - i2.arg) elif op == '/': o = i1.arg / i2.arg elif op == '%': |