about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAjax <commial@gmail.com>2017-06-27 12:28:01 +0200
committerAjax <commial@gmail.com>2017-06-27 12:42:57 +0200
commit04fc16be01be380b4b25d795f271c38e8dabc79f (patch)
tree17d4f1e9112257ca1a3ee38e9471bf100f8061fc
parent5520569d1c6d969fecd968557fd2251e9d1399ee (diff)
downloadmiasm-04fc16be01be380b4b25d795f271c38e8dabc79f.tar.gz
miasm-04fc16be01be380b4b25d795f271c38e8dabc79f.zip
Add a regression test for DIV 128bits
-rw-r--r--test/arch/x86/unit/asm_test.py10
-rw-r--r--test/arch/x86/unit/mn_div.py17
-rwxr-xr-xtest/test_all.py2
3 files changed, 29 insertions, 0 deletions
diff --git a/test/arch/x86/unit/asm_test.py b/test/arch/x86/unit/asm_test.py
index aba47df1..8a6b215c 100644
--- a/test/arch/x86/unit/asm_test.py
+++ b/test/arch/x86/unit/asm_test.py
@@ -90,3 +90,13 @@ class Asm_Test_16(Asm_Test):
         self.myjit.vm.add_memory_page(self.run_addr, PAGE_READ | PAGE_WRITE, self.assembly)
         self.myjit.push_uint16_t(self.ret_addr)
         self.myjit.add_breakpoint(self.ret_addr, lambda x:False)
+
+class Asm_Test_64(Asm_Test):
+    arch_name = "x86_64"
+    arch_attrib = 64
+    ret_addr = 0x1337beef
+
+    def init_machine(self):
+        self.myjit.vm.add_memory_page(self.run_addr, PAGE_READ | PAGE_WRITE, self.assembly)
+        self.myjit.push_uint64_t(self.ret_addr)
+        self.myjit.add_breakpoint(self.ret_addr, lambda x:False)
diff --git a/test/arch/x86/unit/mn_div.py b/test/arch/x86/unit/mn_div.py
new file mode 100644
index 00000000..84569607
--- /dev/null
+++ b/test/arch/x86/unit/mn_div.py
@@ -0,0 +1,17 @@
+import sys
+from asm_test import Asm_Test_64
+
+class Test_DIV(Asm_Test_64):
+    TXT = '''
+main:
+        MOV RAX, 0x8877665544332211
+        MOV RBX, 0x11223344556677
+        DIV RBX
+        RET
+    '''
+    def check(self):
+        assert self.myjit.cpu.RAX == 0x7F7
+        assert self.myjit.cpu.RDX == 0x440
+
+if __name__ == "__main__":
+    [test(*sys.argv[1:])() for test in [Test_DIV]]
diff --git a/test/test_all.py b/test/test_all.py
index b70afa9a..3da2dbb5 100755
--- a/test/test_all.py
+++ b/test/test_all.py
@@ -60,6 +60,7 @@ class ArchUnitTest(RegressionTest):
 # script -> blacklisted jitter
 blacklist = {
     "x86/unit/mn_float.py": ["python", "llvm"],
+    "x86/unit/mn_div.py": ["tcc", "gcc"],
 }
 for script in ["x86/sem.py",
                "x86/unit/mn_strings.py",
@@ -80,6 +81,7 @@ for script in ["x86/sem.py",
                "x86/unit/mn_pushpop.py",
                "x86/unit/mn_seh.py",
                "x86/unit/mn_cpuid.py",
+               "x86/unit/mn_div.py",
                "arm/arch.py",
                "arm/sem.py",
                "aarch64/unit/mn_ubfm.py",