diff options
| author | Camille Mougey <commial@gmail.com> | 2015-02-13 13:57:56 +0100 |
|---|---|---|
| committer | Camille Mougey <commial@gmail.com> | 2015-02-13 13:57:56 +0100 |
| commit | 44df579e8d114725b85ade8d5b5d4dc4df16555f (patch) | |
| tree | 2641783cbe1e54429273be5e63473612f3ff9042 /test/expression/simplifications.py | |
| parent | 5d0d3e5675005d38bfc926a3fe025182ade50720 (diff) | |
| parent | 2a969bbd61ce3d5f74fdf6f577322993fcb527fb (diff) | |
| download | miasm-44df579e8d114725b85ade8d5b5d4dc4df16555f.tar.gz miasm-44df579e8d114725b85ade8d5b5d4dc4df16555f.zip | |
Merge pull request #67 from serpilliere/expr_simp_op_compose
Expr simp op compose
Diffstat (limited to 'test/expression/simplifications.py')
| -rw-r--r-- | test/expression/simplifications.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/expression/simplifications.py b/test/expression/simplifications.py index 0f217c72..f4b4fcd6 100644 --- a/test/expression/simplifications.py +++ b/test/expression/simplifications.py @@ -12,6 +12,7 @@ b = ExprId('b') c = ExprId('c') d = ExprId('d') e = ExprId('e') +f = ExprId('f', size=64) m = ExprMem(a) s = a[:8] @@ -157,6 +158,46 @@ to_test = [(ExprInt32(1) - ExprInt32(1), ExprInt32(0)), ExprInt_fromsize(a.size, -1)), (ExprOp('-', ExprInt8(1), ExprInt8(0)), ExprInt8(1)), + + (ExprCompose([(a, 0, 32), (ExprInt32(0), 32, 64)]) << ExprInt64(0x20), + ExprCompose([(ExprInt32(0), 0, 32), (a, 32, 64)])), + (ExprCompose([(a, 0, 32), (ExprInt32(0), 32, 64)]) << ExprInt64(0x10), + ExprCompose([(ExprInt16(0), 0, 16), (a, 16, 48), (ExprInt16(0), 48, 64)])), + (ExprCompose([(a, 0, 32), (ExprInt32(0), 32, 64)]) << ExprInt64(0x30), + ExprCompose([(ExprInt_fromsize(48, 0), 0, 48), (a[:0x10], 48, 64)])), + (ExprCompose([(a, 0, 32), (ExprInt32(0), 32, 64)]) << ExprInt64(0x11), + ExprCompose([(ExprInt_fromsize(0x11, 0), 0, 0x11), (a, 0x11, 0x31), (ExprInt_fromsize(0xF, 0), 0x31, 0x40)])), + (ExprCompose([(a, 0, 32), (ExprInt32(0), 32, 64)]) << ExprInt64(0x40), + ExprInt64(0)), + (ExprCompose([(a, 0, 32), (ExprInt32(0), 32, 64)]) << ExprInt64(0x50), + ExprInt64(0)), + + (ExprCompose([(ExprInt32(0), 0, 32), (a, 32, 64)]) >> ExprInt64(0x20), + ExprCompose([(a, 0, 32), (ExprInt32(0), 32, 64)])), + (ExprCompose([(ExprInt32(0), 0, 32), (a, 32, 64)]) >> ExprInt64(0x10), + ExprCompose([(ExprInt16(0), 0, 16), (a, 16, 48), (ExprInt16(0), 48, 64)])), + (ExprCompose([(ExprInt32(0), 0, 32), (a, 32, 64)]) >> ExprInt64(0x30), + ExprCompose([(a[0x10:], 0, 16), (ExprInt_fromsize(48, 0), 16, 64)])), + (ExprCompose([(ExprInt32(0), 0, 32), (a, 32, 64)]) >> ExprInt64(0x11), + ExprCompose([(ExprInt_fromsize(0xf, 0), 0, 0xf), (a, 0xf, 0x2f), (ExprInt_fromsize(0x11, 0), 0x2f, 0x40)])), + (ExprCompose([(ExprInt32(0), 0, 32), (a, 32, 64)]) >> ExprInt64(0x40), + ExprInt64(0)), + (ExprCompose([(ExprInt32(0), 0, 32), (a, 32, 64)]) >> ExprInt64(0x50), + ExprInt64(0)), + + + (ExprCompose([(a, 0, 32), (b, 32, 64)]) << ExprInt64(0x20), + ExprCompose([(ExprInt32(0), 0, 32), (a, 32, 64)])), + (ExprCompose([(a, 0, 32), (b, 32, 64)]) << ExprInt64(0x10), + ExprCompose([(ExprInt16(0), 0, 16), (a, 16, 48), (b[:16], 48, 64)])), + + (ExprCompose([(a, 0, 32), (b, 32, 64)]) | ExprCompose([(c, 0, 32), (d, 32, 64)]), + ExprCompose([(a|c, 0, 32), (b|d, 32, 64)])), + (ExprCompose([(a, 0, 32), (ExprInt32(0), 32, 64)]) | ExprCompose([(ExprInt32(0), 0, 32), (d, 32, 64)]), + ExprCompose([(a, 0, 32), (d, 32, 64)])), + (ExprCompose([(f[:32], 0, 32), (ExprInt32(0), 32, 64)]) | ExprCompose([(ExprInt32(0), 0, 32), (f[32:], 32, 64)]), + f), + ] for e, e_check in to_test[:]: |