about summary refs log tree commit diff stats
path: root/test/arch/mep/ir/test_extension.py
diff options
context:
space:
mode:
authorserpilliere <serpilliere@users.noreply.github.com>2018-07-13 10:20:21 +0200
committerGitHub <noreply@github.com>2018-07-13 10:20:21 +0200
commitcc9c0c70af3a91157226440ae3b64199711ee0db (patch)
tree932dd2676afcf0c4ba6bf0c57d3b574954461ad2 /test/arch/mep/ir/test_extension.py
parent82eb5f6eb197fc59d2e9ae21cfda05a1868e462e (diff)
parentb8e5038798b0dece628846acb5ad25d9d4e60395 (diff)
downloadmiasm-cc9c0c70af3a91157226440ae3b64199711ee0db.tar.gz
miasm-cc9c0c70af3a91157226440ae3b64199711ee0db.zip
Merge pull request #763 from guedou/Toshiba_MeP-c4
Toshiba MeP support
Diffstat (limited to 'test/arch/mep/ir/test_extension.py')
-rw-r--r--test/arch/mep/ir/test_extension.py57
1 files changed, 57 insertions, 0 deletions
diff --git a/test/arch/mep/ir/test_extension.py b/test/arch/mep/ir/test_extension.py
new file mode 100644
index 00000000..72423220
--- /dev/null
+++ b/test/arch/mep/ir/test_extension.py
@@ -0,0 +1,57 @@
+# Toshiba MeP-c4 - Byte/Halfword extension instructions unit tests
+# Guillaume Valadon <guillaume@valadon.net>
+
+from ut_helpers_ir import exec_instruction
+
+from miasm2.expression.expression import ExprId, ExprMem, ExprInt
+
+
+class TestExtension:
+
+    def test_extb(self):
+        """Test EXTB execution"""
+
+        # EXTB Rn
+        exec_instruction("EXTB R1",
+                         [(ExprId("R1", 32), ExprInt(0xFE, 32))],
+                         [(ExprId("R1", 32), ExprInt(0xFFFFFFFE, 32))])
+
+        exec_instruction("EXTB R2",
+                         [(ExprId("R2", 32), ExprInt(0x80, 32))],
+                         [(ExprId("R2", 32), ExprInt(0xFFFFFF80, 32))])
+
+    def test_exth(self):
+        """Test EXTH execution"""
+
+        # EXTH Rn
+        exec_instruction("EXTH R1",
+                         [(ExprId("R1", 32), ExprInt(0xFFFE, 32))],
+                         [(ExprId("R1", 32), ExprInt(0xFFFFFFFE, 32))])
+
+        exec_instruction("EXTH R2",
+                         [(ExprId("R2", 32), ExprInt(0x8000, 32))],
+                         [(ExprId("R2", 32), ExprInt(0xFFFF8000, 32))])
+
+    def test_extub(self):
+        """Test EXTUB execution"""
+
+        # EXTUB Rn
+        exec_instruction("EXTUB R1",
+                         [(ExprId("R1", 32), ExprInt(0xFFFFFFFE, 32))],
+                         [(ExprId("R1", 32), ExprInt(0xFE, 32))])
+
+        exec_instruction("EXTUB R2",
+                         [(ExprId("R2", 32), ExprInt(0xFFFFFF80, 32))],
+                         [(ExprId("R2", 32), ExprInt(0x80, 32))])
+
+    def test_extuh(self):
+        """Test EXTUH execution"""
+
+        # EXTUH Rn
+        exec_instruction("EXTUH R1",
+                         [(ExprId("R1", 32), ExprInt(0xFFFFFFFE, 32))],
+                         [(ExprId("R1", 32), ExprInt(0xFFFE, 32))])
+
+        exec_instruction("EXTUH R2",
+                         [(ExprId("R2", 32), ExprInt(0xFFFF8000, 32))],
+                         [(ExprId("R2", 32), ExprInt(0x8000, 32))])