diff options
| author | serpilliere <serpilliere@users.noreply.github.com> | 2018-07-13 10:20:21 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-07-13 10:20:21 +0200 |
| commit | cc9c0c70af3a91157226440ae3b64199711ee0db (patch) | |
| tree | 932dd2676afcf0c4ba6bf0c57d3b574954461ad2 /test/arch/mep/ir/test_extension.py | |
| parent | 82eb5f6eb197fc59d2e9ae21cfda05a1868e462e (diff) | |
| parent | b8e5038798b0dece628846acb5ad25d9d4e60395 (diff) | |
| download | miasm-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.py | 57 |
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))]) |