diff options
Diffstat (limited to 'test/arch/x86/unit/mn_getset128.py')
| -rw-r--r-- | test/arch/x86/unit/mn_getset128.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/test/arch/x86/unit/mn_getset128.py b/test/arch/x86/unit/mn_getset128.py new file mode 100644 index 00000000..a084d663 --- /dev/null +++ b/test/arch/x86/unit/mn_getset128.py @@ -0,0 +1,52 @@ +#! /usr/bin/env python2 + +import sys + +from asm_test import Asm_Test_32 + + +class Test_get_set_128(Asm_Test_32): + TXT = ''' + main: + MOVD XMM0, ESI + MOVD XMM1, EDI + PCMPEQQ XMM0, XMM1 + JZ ret + MOV EAX, 1 + + PUSH 0x11112222 + PUSH 0x33334444 + PUSH 0x55556666 + PUSH 0x77778888 + MOVAPS XMM2, XMMWORD PTR [ESP] + ADD ESP, 0x10 + ret: + RET + ''' + + def prepare(self): + val = 1 + self.myjit.cpu.ESI = 0x11223344 + self.myjit.cpu.EDI = 0x11223345 + self.myjit.cpu.XMM0 = val + + # Check 128 get / set + assert self.myjit.cpu.XMM0 == val + assert self.myjit.cpu.get_gpreg()['XMM0'] == val + + def check(self): + assert self.myjit.cpu.XMM0 == 0xffffffffffffffff0000000000000000L + assert self.myjit.cpu.XMM1 == 0x11223345 + + # Check 128 get / set + assert self.myjit.cpu.get_gpreg()['XMM0'] == 0xffffffffffffffff0000000000000000L + assert self.myjit.cpu.get_gpreg()['XMM1'] == 0x11223345 + + assert self.myjit.cpu.get_gpreg()['XMM2'] == 0x11112222333344445555666677778888L + assert self.myjit.cpu.get_gpreg()['XMM2'] == 0x11112222333344445555666677778888L + + +if __name__ == "__main__": + [test(*sys.argv[1:])() for test in [ + Test_get_set_128, + ]] |