Extends PEXTRW and PINSRW unit tests

Ensures that an index past the max element is correctly masked
This commit is contained in:
Ryan Houdek 2020-09-27 18:50:25 -07:00
parent cef2f693a5
commit ae7aa51b0c
4 changed files with 224 additions and 0 deletions

View File

@ -0,0 +1,73 @@
%ifdef CONFIG
{
"RegData": {
"XMM0": ["0x4142434445467778", "0x5152535455565758"],
"XMM1": ["0x4142434477784748", "0x5152535455565758"],
"XMM2": ["0x4142777845464748", "0x5152535455565758"],
"XMM3": ["0x7778434445464748", "0x5152535455565758"],
"XMM4": ["0x4142434445464748", "0x5152535455567778"],
"XMM5": ["0x4142434445464748", "0x5152535477785758"],
"XMM6": ["0x4142434445464748", "0x5152777855565758"],
"XMM7": ["0x4142434445464748", "0x7778535455565758"],
"XMM8": ["0x4142434445467778", "0x5152535455565758"],
"XMM9": ["0x4142434477784748", "0x5152535455565758"],
"XMM10": ["0x4142777845464748", "0x5152535455565758"],
"XMM11": ["0x7778434445464748", "0x5152535455565758"],
"XMM12": ["0x4142434445464748", "0x5152535455567778"],
"XMM13": ["0x4142434445464748", "0x5152535477785758"],
"XMM14": ["0x4142434445464748", "0x5152777855565758"],
"XMM15": ["0x4142434445464748", "0x7778535455565758"]
},
"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, 0x7172737475767778
mov [rdx + 8 * 2], 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 * 0]
movapd xmm9, [rdx + 8 * 0]
movapd xmm10, [rdx + 8 * 0]
movapd xmm11, [rdx + 8 * 0]
movapd xmm12, [rdx + 8 * 0]
movapd xmm13, [rdx + 8 * 0]
movapd xmm14, [rdx + 8 * 0]
movapd xmm15, [rdx + 8 * 0]
pinsrw xmm0, rax, 0
pinsrw xmm1, rax, 1
pinsrw xmm2, rax, 2
pinsrw xmm3, rax, 3
pinsrw xmm4, rax, 4
pinsrw xmm5, rax, 5
pinsrw xmm6, rax, 6
pinsrw xmm7, rax, 7
pinsrw xmm8, rax, 8
pinsrw xmm9, rax, 9
pinsrw xmm10, rax, 10
pinsrw xmm11, rax, 11
pinsrw xmm12, rax, 12
pinsrw xmm13, rax, 13
pinsrw xmm14, rax, 14
pinsrw xmm15, rax, 15
hlt

View File

@ -0,0 +1,62 @@
%ifdef CONFIG
{
"RegData": {
"RAX": "0x4748",
"RBX": "0x4546",
"RCX": "0x4344",
"RDX": "0x4142",
"RBP": "0x5758",
"RSI": "0x5556",
"RDI": "0x5354",
"RSP": "0x5152",
"R8": "0x4748",
"R9": "0x4546",
"R10": "0x4344",
"R11": "0x4142",
"R12": "0x5758",
"R13": "0x5556",
"R14": "0x5354",
"R15": "0x5152"
},
"MemoryRegions": {
"0x100000000": "4096"
}
}
%endif
mov rdx, 0xe0000000
mov rax, 0x4142434445464748
mov [rdx + 8 * 0], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 1], rax
movapd xmm0, [rdx + 8 * 0]
mov rax, -1
mov rbx, -1
mov rcx, -1
mov rdx, -1
mov rbp, -1
mov rsi, -1
mov rdi, -1
mov rsp, -1
pextrw rax, xmm0, 0
pextrw rbx, xmm0, 1
pextrw rcx, xmm0, 2
pextrw rdx, xmm0, 3
pextrw rbp, xmm0, 4
pextrw rsi, xmm0, 5
pextrw rdi, xmm0, 6
pextrw rsp, xmm0, 7
pextrw r8, xmm0, 8
pextrw r9, xmm0, 9
pextrw r10, xmm0, 10
pextrw r11, xmm0, 11
pextrw r12, xmm0, 12
pextrw r13, xmm0, 13
pextrw r14, xmm0, 14
pextrw r15, xmm0, 15
hlt

View File

@ -0,0 +1,46 @@
%ifdef CONFIG
{
"RegData": {
"MM0": "0x4142434445467778",
"MM1": "0x4142434477784748",
"MM2": "0x4142777845464748",
"MM3": "0x7778434445464748",
"MM4": "0x4142434445467778",
"MM5": "0x4142434477784748",
"MM6": "0x4142777845464748",
"MM7": "0x7778434445464748"
},
"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, 0x7172737475767778
movq mm0, [rdx + 8 * 0]
movq mm1, [rdx + 8 * 0]
movq mm2, [rdx + 8 * 0]
movq mm3, [rdx + 8 * 0]
movq mm4, [rdx + 8 * 0]
movq mm5, [rdx + 8 * 0]
movq mm6, [rdx + 8 * 0]
movq mm7, [rdx + 8 * 0]
pinsrw mm0, eax, 0
pinsrw mm1, eax, 1
pinsrw mm2, eax, 2
pinsrw mm3, eax, 3
pinsrw mm4, eax, 4
pinsrw mm5, eax, 5
pinsrw mm6, eax, 6
pinsrw mm7, eax, 7
hlt

View File

@ -0,0 +1,43 @@
%ifdef CONFIG
{
"RegData": {
"RAX": "0x4748",
"RBX": "0x4546",
"RCX": "0x4344",
"RDX": "0x4142",
"RSI": "0x4748",
"RDI": "0x4546",
"RBP": "0x4344",
"RSP": "0x4142"
},
"MemoryRegions": {
"0x100000000": "4096"
}
}
%endif
mov rdx, 0xe0000000
mov rax, 0x4142434445464748
mov [rdx + 8 * 0], rax
mov rax, 0x5152535455565758
mov [rdx + 8 * 1], rax
movq mm0, [rdx + 8 * 0]
mov rax, -1
mov rbx, -1
mov rcx, -1
mov rdx, -1
pextrw eax, mm0, 0
pextrw ebx, mm0, 1
pextrw ecx, mm0, 2
pextrw edx, mm0, 3
pextrw esi, mm0, 4
pextrw edi, mm0, 5
pextrw ebp, mm0, 6
pextrw esp, mm0, 7
hlt