angr.analyses.decompiler.peephole_optimizations.concat_simplifier¶
- class angr.analyses.decompiler.peephole_optimizations.concat_simplifier.ConcatSimplifier¶
Bases:
PeepholeOptimizationExprBaseSimplify Concat expressions: - (a CONCAT b) >> bits(b) => a (high-part extraction) - (a CONCAT b) & mask => b (low-part extraction, where mask = (1 << bits(b)) - 1) - (a >> (bits-1)) CONCAT a => Convert(a, signed, 2*bits) (sign-extension) - 0 CONCAT a => Convert(a, unsigned, 2*bits) (zero-extension) - Convert(a CONCAT b, to_bits=bits(b)) => b (truncate to low part)
- NAME = 'Simplify Concat expressions'¶
- expr_classes = (<class 'angr.ailment.expression.BinaryOp'>, <class 'angr.ailment.expression.Convert'>)¶