Finish REPNE table unit tests for current supported instructions

This commit is contained in:
Ryan Houdek 2020-03-05 01:12:10 -08:00 committed by Stefanos Kornilios Mitsis Poiitidis
parent b10f5d9550
commit 04bdb4a3de
16 changed files with 779 additions and 0 deletions

View File

@ -0,0 +1,38 @@
%ifdef CONFIG
{
"RegData": {
"XMM0": ["0x6162636465666768", "0x5152535455565758"],
"XMM1": ["0x6162636465666768", "0x0"]
},
"MemoryRegions": {
"0x100000000": "4096"
}
}
%endif
mov rdx, 0xe0000000
mov rax, 0x4142434445464748
mov [rdx + 8 * 0], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 1], rax
mov rax, 0x6162636465666768
mov [rdx + 8 * 2], rax
mov rax, 0x7172737475767778
mov [rdx + 8 * 3], rax
movapd xmm0, [rdx + 8 * 0]
movapd xmm1, [rdx + 8 * 0]
movapd xmm2, [rdx + 8 * 2]
; Moves 64bits to lower bits
; Doesn't effect upper 64bits
movsd xmm0, xmm2
; Moves 64bits to the lower bits
; Zeroes the upper 64bits
movsd xmm1, [rdx + 8 * 2]
hlt

View File

@ -0,0 +1,32 @@
%ifdef CONFIG
{
"RegData": {
"XMM0": ["0x4142434445464748", "0x0"]
},
"MemoryRegions": {
"0x100000000": "4096"
}
}
%endif
mov rdx, 0xe0000000
mov rax, 0x4142434445464748
mov [rdx + 8 * 0], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 1], rax
mov rax, 0x0
mov [rdx + 8 * 2], rax
mov rax, 0x0
mov [rdx + 8 * 3], rax
movapd xmm0, [rdx + 8 * 0]
; Moves lower 64bits to memory
movsd [rdx + 8 * 2], xmm0
; Ensure 128bits weren't written
movapd xmm0, [rdx + 8 * 2]
hlt

View File

@ -0,0 +1,32 @@
%ifdef CONFIG
{
"RegData": {
"XMM0": ["0x6162636465666768", "0x6162636465666768"],
"XMM1": ["0x6162636465666768", "0x6162636465666768"]
},
"MemoryRegions": {
"0x100000000": "4096"
}
}
%endif
mov rdx, 0xe0000000
mov rax, 0x4142434445464748
mov [rdx + 8 * 0], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 1], rax
mov rax, 0x6162636465666768
mov [rdx + 8 * 2], rax
mov rax, 0x7172737475767778
mov [rdx + 8 * 3], rax
movapd xmm0, [rdx + 8 * 0]
movapd xmm1, [rdx + 8 * 0]
movapd xmm2, [rdx + 8 * 2]
movddup xmm0, xmm2
movddup xmm1, [rdx + 8 * 2]
hlt

View File

@ -0,0 +1,45 @@
%ifdef CONFIG
{
"RegData": {
"XMM0": ["0x3ff0000000000000", "0x5152535455565758"],
"XMM1": ["0x4000000000000000", "0x5152535455565758"],
"XMM2": ["0x4008000000000000", "0x5152535455565758"],
"XMM3": ["0x4010000000000000", "0x5152535455565758"]
},
"MemoryRegions": {
"0x100000000": "4096"
}
}
%endif
mov rdx, 0xe0000000
mov rax, 0x4142434445464748
mov [rdx + 8 * 0], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 1], rax
mov rax, 0x1
mov [rdx + 8 * 2], rax
mov rax, 0x2
mov [rdx + 8 * 3], rax
mov rax, 0x3
mov [rdx + 8 * 4], rax
mov rax, 0x4
mov [rdx + 8 * 5], rax
movapd xmm0, [rdx + 8 * 0]
movapd xmm1, [rdx + 8 * 0]
movapd xmm2, [rdx + 8 * 0]
movapd xmm3, [rdx + 8 * 0]
mov rax, [rdx + 8 * 2]
mov rbx, [rdx + 8 * 3]
cvtsi2sd xmm0, rax
cvtsi2sd xmm1, ebx
cvtsi2sd xmm2, dword [rdx + 8 * 4]
cvtsi2sd xmm3, qword [rdx + 8 * 5]
hlt

View File

@ -0,0 +1,46 @@
%ifdef CONFIG
{
"RegData": {
"RAX": "0x1",
"RBX": "0x2",
"RCX": "0x3",
"RDX": "0x4"
},
"MemoryRegions": {
"0x100000000": "4096"
}
}
%endif
mov rdx, 0xe0000000
mov rax, 0x3FF0000000000000
mov [rdx + 8 * 0], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 1], rax
mov rax, 0x4000000000000000
mov [rdx + 8 * 2], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 3], rax
mov rax, 0x4008000000000000
mov [rdx + 8 * 4], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 5], rax
mov rax, 0x4010000000000000
mov [rdx + 8 * 6], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 7], rax
movapd xmm0, [rdx + 8 * 0]
movapd xmm1, [rdx + 8 * 2]
cvttsd2si eax, xmm0
cvttsd2si rbx, xmm1
cvttsd2si ecx, [rdx + 8 * 4]
cvttsd2si rdx, [rdx + 8 * 6]
hlt

View File

@ -0,0 +1,65 @@
%ifdef CONFIG
{
"RegData": {
"XMM0": ["0x3ff0000000000000", "0x5152535455565758"],
"XMM1": ["0x4000000000000000", "0x5152535455565758"],
"XMM2": ["0x4008000000000000", "0x5152535455565758"],
"XMM3": ["0x4010000000000000", "0x5152535455565758"],
"XMM4": ["0x3ff0000000000000", "0x5152535455565758"],
"XMM5": ["0x4000000000000000", "0x5152535455565758"],
"XMM6": ["0x4008000000000000", "0x5152535455565758"],
"XMM7": ["0x4010000000000000", "0x5152535455565758"]
},
"MemoryRegions": {
"0x100000000": "4096"
}
}
%endif
mov rdx, 0xe0000000
mov rax, 0x3FF0000000000000 ; 1.0
mov [rdx + 8 * 0], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 1], rax
mov rax, 0x4010000000000000 ; 4.0
mov [rdx + 8 * 2], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 3], rax
mov rax, 0x4022000000000000 ; 9.0
mov [rdx + 8 * 4], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 5], rax
mov rax, 0x4030000000000000 ; 16.0
mov [rdx + 8 * 6], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 7], rax
mov rax, 0x4039000000000000 ; 25.0
mov [rdx + 8 * 8], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 9], rax
movapd xmm0, [rdx + 8 * 0]
movapd xmm1, [rdx + 8 * 2]
movapd xmm2, [rdx + 8 * 4]
movapd xmm3, [rdx + 8 * 6]
movapd xmm4, [rdx + 8 * 8]
movapd xmm5, [rdx + 8 * 8]
movapd xmm6, [rdx + 8 * 8]
movapd xmm7, [rdx + 8 * 8]
sqrtsd xmm0, xmm0
sqrtsd xmm1, xmm1
sqrtsd xmm2, xmm2
sqrtsd xmm3, xmm3
sqrtsd xmm4, [rdx + 8 * 0]
sqrtsd xmm5, [rdx + 8 * 2]
sqrtsd xmm6, [rdx + 8 * 4]
sqrtsd xmm7, [rdx + 8 * 6]
hlt

View File

@ -0,0 +1,59 @@
%ifdef CONFIG
{
"RegData": {
"XMM0": ["0x4014000000000000", "0x5152535455565758"],
"XMM1": ["0x4010000000000000", "0x5152535455565758"],
"XMM2": ["0x4039000000000000", "0x5152535455565758"],
"XMM3": ["0x4030000000000000", "0x5152535455565758"],
"XMM4": ["0x403a000000000000", "0x5152535455565758"],
"XMM5": ["0x403d000000000000", "0x5152535455565758"]
},
"MemoryRegions": {
"0x100000000": "4096"
}
}
%endif
mov rdx, 0xe0000000
mov rax, 0x3FF0000000000000 ; 1.0
mov [rdx + 8 * 0], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 1], rax
mov rax, 0x4010000000000000 ; 4.0
mov [rdx + 8 * 2], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 3], rax
mov rax, 0x4022000000000000 ; 9.0
mov [rdx + 8 * 4], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 5], rax
mov rax, 0x4030000000000000 ; 16.0
mov [rdx + 8 * 6], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 7], rax
mov rax, 0x4039000000000000 ; 25.0
mov [rdx + 8 * 8], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 9], rax
movapd xmm0, [rdx + 8 * 0]
movapd xmm1, [rdx + 8 * 2]
movapd xmm2, [rdx + 8 * 4]
movapd xmm3, [rdx + 8 * 6]
movapd xmm4, [rdx + 8 * 8]
movapd xmm5, [rdx + 8 * 8]
movapd xmm6, [rdx + 8 * 8]
movapd xmm7, [rdx + 8 * 8]
addsd xmm0, xmm1
addsd xmm2, xmm3
addsd xmm4, [rdx + 8 * 0]
addsd xmm5, [rdx + 8 * 2]
hlt

View File

@ -0,0 +1,59 @@
%ifdef CONFIG
{
"RegData": {
"XMM0": ["0x4010000000000000", "0x5152535455565758"],
"XMM1": ["0x4010000000000000", "0x5152535455565758"],
"XMM2": ["0x4062000000000000", "0x5152535455565758"],
"XMM3": ["0x4030000000000000", "0x5152535455565758"],
"XMM4": ["0x4039000000000000", "0x5152535455565758"],
"XMM5": ["0x4059000000000000", "0x5152535455565758"]
},
"MemoryRegions": {
"0x100000000": "4096"
}
}
%endif
mov rdx, 0xe0000000
mov rax, 0x3FF0000000000000 ; 1.0
mov [rdx + 8 * 0], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 1], rax
mov rax, 0x4010000000000000 ; 4.0
mov [rdx + 8 * 2], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 3], rax
mov rax, 0x4022000000000000 ; 9.0
mov [rdx + 8 * 4], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 5], rax
mov rax, 0x4030000000000000 ; 16.0
mov [rdx + 8 * 6], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 7], rax
mov rax, 0x4039000000000000 ; 25.0
mov [rdx + 8 * 8], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 9], rax
movapd xmm0, [rdx + 8 * 0]
movapd xmm1, [rdx + 8 * 2]
movapd xmm2, [rdx + 8 * 4]
movapd xmm3, [rdx + 8 * 6]
movapd xmm4, [rdx + 8 * 8]
movapd xmm5, [rdx + 8 * 8]
movapd xmm6, [rdx + 8 * 8]
movapd xmm7, [rdx + 8 * 8]
mulsd xmm0, xmm1 ; 1.0 <op> 4.0
mulsd xmm2, xmm3 ; 9.0 <op> 16.0
mulsd xmm4, [rdx + 8 * 0] ; 25.0 <op> 1.0
mulsd xmm5, [rdx + 8 * 2] ; 25.0 <op> 4.0
hlt

View File

@ -0,0 +1,59 @@
%ifdef CONFIG
{
"RegData": {
"XMM0": ["0x3FF0000040800000", "0x5152535455565758"],
"XMM1": ["0x4010000000000000", "0x5152535455565758"],
"XMM2": ["0x4022000041800000", "0x5152535455565758"],
"XMM3": ["0x4030000000000000", "0x5152535455565758"],
"XMM4": ["0x403900003f800000", "0x5152535455565758"],
"XMM5": ["0x4039000040800000", "0x5152535455565758"]
},
"MemoryRegions": {
"0x100000000": "4096"
}
}
%endif
mov rdx, 0xe0000000
mov rax, 0x3FF0000000000000 ; 1.0
mov [rdx + 8 * 0], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 1], rax
mov rax, 0x4010000000000000 ; 4.0
mov [rdx + 8 * 2], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 3], rax
mov rax, 0x4022000000000000 ; 9.0
mov [rdx + 8 * 4], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 5], rax
mov rax, 0x4030000000000000 ; 16.0
mov [rdx + 8 * 6], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 7], rax
mov rax, 0x4039000000000000 ; 25.0
mov [rdx + 8 * 8], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 9], rax
movapd xmm0, [rdx + 8 * 0]
movapd xmm1, [rdx + 8 * 2]
movapd xmm2, [rdx + 8 * 4]
movapd xmm3, [rdx + 8 * 6]
movapd xmm4, [rdx + 8 * 8]
movapd xmm5, [rdx + 8 * 8]
movapd xmm6, [rdx + 8 * 8]
movapd xmm7, [rdx + 8 * 8]
cvtsd2ss xmm0, xmm1 ; 1.0 <op> 4.0
cvtsd2ss xmm2, xmm3 ; 9.0 <op> 16.0
cvtsd2ss xmm4, [rdx + 8 * 0] ; 25.0 <op> 1.0
cvtsd2ss xmm5, [rdx + 8 * 2] ; 25.0 <op> 4.0
hlt

View File

@ -0,0 +1,59 @@
%ifdef CONFIG
{
"RegData": {
"XMM0": ["0xc008000000000000", "0x5152535455565758"],
"XMM1": ["0x4010000000000000", "0x5152535455565758"],
"XMM2": ["0xc01c000000000000", "0x5152535455565758"],
"XMM3": ["0x4030000000000000", "0x5152535455565758"],
"XMM4": ["0x4038000000000000", "0x5152535455565758"],
"XMM5": ["0x4035000000000000", "0x5152535455565758"]
},
"MemoryRegions": {
"0x100000000": "4096"
}
}
%endif
mov rdx, 0xe0000000
mov rax, 0x3FF0000000000000 ; 1.0
mov [rdx + 8 * 0], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 1], rax
mov rax, 0x4010000000000000 ; 4.0
mov [rdx + 8 * 2], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 3], rax
mov rax, 0x4022000000000000 ; 9.0
mov [rdx + 8 * 4], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 5], rax
mov rax, 0x4030000000000000 ; 16.0
mov [rdx + 8 * 6], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 7], rax
mov rax, 0x4039000000000000 ; 25.0
mov [rdx + 8 * 8], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 9], rax
movapd xmm0, [rdx + 8 * 0]
movapd xmm1, [rdx + 8 * 2]
movapd xmm2, [rdx + 8 * 4]
movapd xmm3, [rdx + 8 * 6]
movapd xmm4, [rdx + 8 * 8]
movapd xmm5, [rdx + 8 * 8]
movapd xmm6, [rdx + 8 * 8]
movapd xmm7, [rdx + 8 * 8]
subsd xmm0, xmm1 ; 1.0 <op> 4.0
subsd xmm2, xmm3 ; 9.0 <op> 16.0
subsd xmm4, [rdx + 8 * 0] ; 25.0 <op> 1.0
subsd xmm5, [rdx + 8 * 2] ; 25.0 <op> 4.0
hlt

View File

@ -0,0 +1,59 @@
%ifdef CONFIG
{
"RegData": {
"XMM0": ["0x3FF0000000000000", "0x5152535455565758"],
"XMM1": ["0x4010000000000000", "0x5152535455565758"],
"XMM2": ["0x4022000000000000", "0x5152535455565758"],
"XMM3": ["0x4030000000000000", "0x5152535455565758"],
"XMM4": ["0x3FF0000000000000", "0x5152535455565758"],
"XMM5": ["0x4010000000000000", "0x5152535455565758"]
},
"MemoryRegions": {
"0x100000000": "4096"
}
}
%endif
mov rdx, 0xe0000000
mov rax, 0x3FF0000000000000 ; 1.0
mov [rdx + 8 * 0], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 1], rax
mov rax, 0x4010000000000000 ; 4.0
mov [rdx + 8 * 2], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 3], rax
mov rax, 0x4022000000000000 ; 9.0
mov [rdx + 8 * 4], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 5], rax
mov rax, 0x4030000000000000 ; 16.0
mov [rdx + 8 * 6], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 7], rax
mov rax, 0x4039000000000000 ; 25.0
mov [rdx + 8 * 8], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 9], rax
movapd xmm0, [rdx + 8 * 0]
movapd xmm1, [rdx + 8 * 2]
movapd xmm2, [rdx + 8 * 4]
movapd xmm3, [rdx + 8 * 6]
movapd xmm4, [rdx + 8 * 8]
movapd xmm5, [rdx + 8 * 8]
movapd xmm6, [rdx + 8 * 8]
movapd xmm7, [rdx + 8 * 8]
minsd xmm0, xmm1 ; 1.0 <op> 4.0
minsd xmm2, xmm3 ; 9.0 <op> 16.0
minsd xmm4, [rdx + 8 * 0] ; 25.0 <op> 1.0
minsd xmm5, [rdx + 8 * 2] ; 25.0 <op> 4.0
hlt

View File

@ -0,0 +1,59 @@
%ifdef CONFIG
{
"RegData": {
"XMM0": ["0x3fd0000000000000", "0x5152535455565758"],
"XMM1": ["0x4010000000000000", "0x5152535455565758"],
"XMM2": ["0x3fe2000000000000", "0x5152535455565758"],
"XMM3": ["0x4030000000000000", "0x5152535455565758"],
"XMM4": ["0x4039000000000000", "0x5152535455565758"],
"XMM5": ["0x4019000000000000", "0x5152535455565758"]
},
"MemoryRegions": {
"0x100000000": "4096"
}
}
%endif
mov rdx, 0xe0000000
mov rax, 0x3FF0000000000000 ; 1.0
mov [rdx + 8 * 0], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 1], rax
mov rax, 0x4010000000000000 ; 4.0
mov [rdx + 8 * 2], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 3], rax
mov rax, 0x4022000000000000 ; 9.0
mov [rdx + 8 * 4], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 5], rax
mov rax, 0x4030000000000000 ; 16.0
mov [rdx + 8 * 6], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 7], rax
mov rax, 0x4039000000000000 ; 25.0
mov [rdx + 8 * 8], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 9], rax
movapd xmm0, [rdx + 8 * 0]
movapd xmm1, [rdx + 8 * 2]
movapd xmm2, [rdx + 8 * 4]
movapd xmm3, [rdx + 8 * 6]
movapd xmm4, [rdx + 8 * 8]
movapd xmm5, [rdx + 8 * 8]
movapd xmm6, [rdx + 8 * 8]
movapd xmm7, [rdx + 8 * 8]
divsd xmm0, xmm1 ; 1.0 <op> 4.0
divsd xmm2, xmm3 ; 9.0 <op> 16.0
divsd xmm4, [rdx + 8 * 0] ; 25.0 <op> 1.0
divsd xmm5, [rdx + 8 * 2] ; 25.0 <op> 4.0
hlt

View File

@ -0,0 +1,59 @@
%ifdef CONFIG
{
"RegData": {
"XMM0": ["0x4010000000000000", "0x5152535455565758"],
"XMM1": ["0x4010000000000000", "0x5152535455565758"],
"XMM2": ["0x4030000000000000", "0x5152535455565758"],
"XMM3": ["0x4030000000000000", "0x5152535455565758"],
"XMM4": ["0x4039000000000000", "0x5152535455565758"],
"XMM5": ["0x4039000000000000", "0x5152535455565758"]
},
"MemoryRegions": {
"0x100000000": "4096"
}
}
%endif
mov rdx, 0xe0000000
mov rax, 0x3FF0000000000000 ; 1.0
mov [rdx + 8 * 0], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 1], rax
mov rax, 0x4010000000000000 ; 4.0
mov [rdx + 8 * 2], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 3], rax
mov rax, 0x4022000000000000 ; 9.0
mov [rdx + 8 * 4], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 5], rax
mov rax, 0x4030000000000000 ; 16.0
mov [rdx + 8 * 6], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 7], rax
mov rax, 0x4039000000000000 ; 25.0
mov [rdx + 8 * 8], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 9], rax
movapd xmm0, [rdx + 8 * 0]
movapd xmm1, [rdx + 8 * 2]
movapd xmm2, [rdx + 8 * 4]
movapd xmm3, [rdx + 8 * 6]
movapd xmm4, [rdx + 8 * 8]
movapd xmm5, [rdx + 8 * 8]
movapd xmm6, [rdx + 8 * 8]
movapd xmm7, [rdx + 8 * 8]
maxsd xmm0, xmm1 ; 1.0 <op> 4.0
maxsd xmm2, xmm3 ; 9.0 <op> 16.0
maxsd xmm4, [rdx + 8 * 0] ; 25.0 <op> 1.0
maxsd xmm5, [rdx + 8 * 2] ; 25.0 <op> 4.0
hlt

View File

@ -0,0 +1,32 @@
%ifdef CONFIG
{
"RegData": {
"XMM0": ["0x4142434445464748", "0x5152535455565758"],
"XMM1": ["0x6162636465666768", "0x7172737475767778"],
"XMM2": ["0x4748474847484748", "0x5152535455565758"],
"XMM3": ["0x6162616261626162", "0x7172737475767778"]
},
"MemoryRegions": {
"0x100000000": "4096"
}
}
%endif
mov rdx, 0xe0000000
mov rax, 0x4142434445464748
mov [rdx + 8 * 0], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 1], rax
mov rax, 0x6162636465666768
mov [rdx + 8 * 2], rax
mov rax, 0x7172737475767778
mov [rdx + 8 * 3], rax
movapd xmm0, [rdx]
movapd xmm1, [rdx + 8 * 2]
pshuflw xmm2, xmm0, 0x0
pshuflw xmm3, xmm1, 0xFF
hlt

View File

@ -0,0 +1,51 @@
%ifdef CONFIG
{
"RegData": {
"XMM0": ["0xFFFFFFFFFFFFFFFF", "0x4000000000000000"],
"XMM1": ["0x0", "0x4000000000000000"],
"XMM2": ["0xFFFFFFFFFFFFFFFF", "0x4000000000000000"],
"XMM3": ["0x3ff0000000000000", "0x4000000000000000"],
"XMM4": ["0x0", "0x4000000000000000"],
"XMM5": ["0xFFFFFFFFFFFFFFFF", "0x4000000000000000"],
"XMM6": ["0x0", "0x4000000000000000"],
"XMM7": ["0x3ff0000000000000", "0x4000000000000000"],
"XMM8": ["0x3ff0000000000000", "0x4008000000000000"]
},
"MemoryRegions": {
"0x100000000": "4096"
}
}
%endif
mov rdx, 0xe0000000
mov rax, 0x3ff0000000000000
mov [rdx + 8 * 0], rax
mov rax, 0x4000000000000000
mov [rdx + 8 * 1], rax
mov rax, 0x3ff0000000000000
mov [rdx + 8 * 2], rax
mov rax, 0x4008000000000000
mov [rdx + 8 * 3], rax
movapd xmm0, [rdx + 8 * 0]
movapd xmm1, [rdx + 8 * 0]
movapd xmm2, [rdx + 8 * 0]
movapd xmm3, [rdx + 8 * 0]
movapd xmm4, [rdx + 8 * 0]
movapd xmm5, [rdx + 8 * 0]
movapd xmm6, [rdx + 8 * 0]
movapd xmm7, [rdx + 8 * 0]
movapd xmm8, [rdx + 8 * 2]
cmpsd xmm0, xmm8, 0x00 ; EQ
cmpsd xmm1, xmm8, 0x01 ; LT
cmpsd xmm2, xmm8, 0x02 ; LTE
;cmpsd xmm3, xmm8, 0x03 ; Unordered
cmpsd xmm4, xmm8, 0x04 ; NEQ
cmpsd xmm5, xmm8, 0x05 ; NLT
cmpsd xmm6, xmm8, 0x06 ; NLTE
;cmpsd xmm7, xmm8, 0x07 ; Ordered
hlt

View File

@ -0,0 +1,25 @@
%ifdef CONFIG
{
"RegData": {
"XMM0": ["0x4142434445464748", "0x5152535455565758"],
"XMM1": ["0x5152535455565758", "0x6162636465666768"]
},
"MemoryRegions": {
"0x100000000": "4096"
}
}
%endif
mov rdx, 0xe0000000
mov rax, 0x4142434445464748
mov [rdx + 8 * 0], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 1], rax
mov rax, 0x6162636465666768
mov [rdx + 8 * 2], rax
lddqu xmm0, [rdx + 8 * 0]
lddqu xmm1, [rdx + 8 * 1]
hlt