diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/arch/x86/arch.py | 15 | ||||
| -rwxr-xr-x | test/expression/stp.py | 20 |
2 files changed, 27 insertions, 8 deletions
diff --git a/test/arch/x86/arch.py b/test/arch/x86/arch.py index 694e18c0..d3b2964c 100644 --- a/test/arch/x86/arch.py +++ b/test/arch/x86/arch.py @@ -2147,6 +2147,10 @@ reg_tests = [ (m64, "00000000 LFENCE", "0faee8"), + (m64, "00000000 MFENCE", + "0FAEF0"), + (m64, "00000000 SFENCE", + "0FAEF8"), (m32, "00000000 SUB AL, 0x11", @@ -2798,6 +2802,12 @@ reg_tests = [ (m32, "00000000 PCMPGTQ XMM0, XMM5", "660f3837C5"), + (m64, "00000000 PCMPGTB XMM8, XMM5", + "66440f64c5"), + + (m64, "00000000 PALIGNR XMM1, XMM2, 0xC", + "660f3a0fca0c"), + (m32, "00000000 PUNPCKHBW MM2, QWORD PTR [EDX]", "0F6812"), @@ -2955,6 +2965,11 @@ reg_tests = [ (m32, "00000000 AESDECLAST XMM1, XMM2", "660f38dfca"), + (m64, "00000000 BNDMOV XMMWORD PTR [RSP + 0x80], BND0", + "660f1b842480000000"), + (m64, "00000000 BNDMOV BND3, XMMWORD PTR [RSP + 0xB0]", + "660f1a9c24b0000000"), + ] diff --git a/test/expression/stp.py b/test/expression/stp.py index a4b037de..38bbf9c8 100755 --- a/test/expression/stp.py +++ b/test/expression/stp.py @@ -8,24 +8,28 @@ class TestIrIr2STP(unittest.TestCase): def test_ExprOp_strcst(self): from miasm2.expression.expression import ExprInt, ExprOp - import miasm2.expression.stp # /!\ REALLY DIRTY HACK + from miasm2.ir.translators.translator import Translator + translator_smt2 = Translator.to_language("smt2") + args = [ExprInt(i, 32) for i in xrange(9)] self.assertEqual( - ExprOp('|', *args[:2]).strcst(), r'(0bin00000000000000000000000000000000 | 0bin00000000000000000000000000000001)') + translator_smt2.from_expr(ExprOp('|', *args[:2])), r'(bvor (_ bv0 32) (_ bv1 32))') self.assertEqual( - ExprOp('-', *args[:2]).strcst(), r'BVUMINUS(0bin00000000000000000000000000000000)') + translator_smt2.from_expr(ExprOp('-', *args[:2])), r'(bvsub (_ bv0 32) (_ bv1 32))') self.assertEqual( - ExprOp('+', *args[:3]).strcst(), r'BVPLUS(32,BVPLUS(32,0bin00000000000000000000000000000000, 0bin00000000000000000000000000000001), 0bin00000000000000000000000000000010)') - self.assertRaises(ValueError, ExprOp('X', *args[:1]).strcst) + translator_smt2.from_expr(ExprOp('+', *args[:3])), r'(bvadd (bvadd (_ bv0 32) (_ bv1 32)) (_ bv2 32))') + self.assertRaises(NotImplementedError, translator_smt2.from_expr, ExprOp('X', *args[:1])) def test_ExprSlice_strcst(self): - from miasm2.expression.expression import ExprInt, ExprSlice - import miasm2.expression.stp # /!\ REALLY DIRTY HACK + from miasm2.expression.expression import ExprInt, ExprOp + from miasm2.ir.translators.translator import Translator + translator_smt2 = Translator.to_language("smt2") + args = [ExprInt(i, 32) for i in xrange(9)] self.assertEqual( - args[0][1:2].strcst(), r'(0bin00000000000000000000000000000000)[1:1]') + translator_smt2.from_expr(args[0][1:2]), r'((_ extract 1 1) (_ bv0 32))') self.assertRaises(ValueError, args[0].__getitem__, slice(1,7,2)) if __name__ == '__main__': |