blob: f20f452ebedb9492813468f356098102585d059e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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 == 0xffffffffffffffff0000000000000000
assert self.myjit.cpu.XMM1 == 0x11223345
# Check 128 get / set
assert self.myjit.cpu.get_gpreg()['XMM0'] == 0xffffffffffffffff0000000000000000
assert self.myjit.cpu.get_gpreg()['XMM1'] == 0x11223345
assert self.myjit.cpu.get_gpreg()['XMM2'] == 0x11112222333344445555666677778888
assert self.myjit.cpu.get_gpreg()['XMM2'] == 0x11112222333344445555666677778888
if __name__ == "__main__":
[test(*sys.argv[1:])() for test in [
Test_get_set_128,
]]
|