mirror of
https://github.com/FEX-Emu/FEX.git
synced 2025-03-04 12:39:22 +00:00
Finish REPNE table unit tests for current supported instructions
This commit is contained in:
parent
b10f5d9550
commit
04bdb4a3de
38
unittests/ASM/REPNE/F2_10.asm
Normal file
38
unittests/ASM/REPNE/F2_10.asm
Normal 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
|
32
unittests/ASM/REPNE/F2_11.asm
Normal file
32
unittests/ASM/REPNE/F2_11.asm
Normal 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
|
32
unittests/ASM/REPNE/F2_12.asm
Normal file
32
unittests/ASM/REPNE/F2_12.asm
Normal 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
|
45
unittests/ASM/REPNE/F2_2A.asm
Normal file
45
unittests/ASM/REPNE/F2_2A.asm
Normal 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
|
46
unittests/ASM/REPNE/F2_2C.asm
Normal file
46
unittests/ASM/REPNE/F2_2C.asm
Normal 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
|
65
unittests/ASM/REPNE/F2_51.asm
Normal file
65
unittests/ASM/REPNE/F2_51.asm
Normal 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
|
59
unittests/ASM/REPNE/F2_58.asm
Normal file
59
unittests/ASM/REPNE/F2_58.asm
Normal 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
|
59
unittests/ASM/REPNE/F2_59.asm
Normal file
59
unittests/ASM/REPNE/F2_59.asm
Normal 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
|
59
unittests/ASM/REPNE/F2_5A.asm
Normal file
59
unittests/ASM/REPNE/F2_5A.asm
Normal 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
|
59
unittests/ASM/REPNE/F2_5C.asm
Normal file
59
unittests/ASM/REPNE/F2_5C.asm
Normal 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
|
59
unittests/ASM/REPNE/F2_5D.asm
Normal file
59
unittests/ASM/REPNE/F2_5D.asm
Normal 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
|
59
unittests/ASM/REPNE/F2_5E.asm
Normal file
59
unittests/ASM/REPNE/F2_5E.asm
Normal 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
|
59
unittests/ASM/REPNE/F2_5F.asm
Normal file
59
unittests/ASM/REPNE/F2_5F.asm
Normal 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
|
32
unittests/ASM/REPNE/F2_70.asm
Normal file
32
unittests/ASM/REPNE/F2_70.asm
Normal 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
|
51
unittests/ASM/REPNE/F2_C2.asm
Normal file
51
unittests/ASM/REPNE/F2_C2.asm
Normal 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
|
25
unittests/ASM/REPNE/F2_F0.asm
Normal file
25
unittests/ASM/REPNE/F2_F0.asm
Normal 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
|
Loading…
x
Reference in New Issue
Block a user