From 59a4481e5b750030dbf0dd0837ac9152c4560488 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Sat, 10 Jul 2021 23:40:18 -0700 Subject: [PATCH] unittests: Adds explicit 16bit, 32bit, 64bit unaligned unit tests --- unittests/ASM/TwoByte/0F_8B_16.asm | 65 ++++++++++++++++++++++++++++++ unittests/ASM/TwoByte/0F_8B_32.asm | 50 +++++++++++++++++++++++ unittests/ASM/TwoByte/0F_8B_64.asm | 65 ++++++++++++++++++++++++++++++ 3 files changed, 180 insertions(+) create mode 100644 unittests/ASM/TwoByte/0F_8B_16.asm create mode 100644 unittests/ASM/TwoByte/0F_8B_32.asm create mode 100644 unittests/ASM/TwoByte/0F_8B_64.asm diff --git a/unittests/ASM/TwoByte/0F_8B_16.asm b/unittests/ASM/TwoByte/0F_8B_16.asm new file mode 100644 index 000000000..201ed56b8 --- /dev/null +++ b/unittests/ASM/TwoByte/0F_8B_16.asm @@ -0,0 +1,65 @@ +%ifdef CONFIG +{ + "RegData": { + "RAX": "0x000000000000fbcc", + "RBX": "0x00000000000089fb", + "RCX": "0x0000000000000089", + "RDX": "0x0000000000001800", + "RSI": "0x000000000000b018", + "RDI": "0x000000000000cbb0", + "RBP": "0x00000000000054cb", + "RSP": "0x0000000000002a54", + "R8": "0x000000000000b018", + "R9": "0x000000000000fb54", + "R10": "0x0000000000003bfb", + "R11": "0x000000000000753b", + "R12": "0x0000000000008075", + "R13": "0x0000000000000780", + "R14": "0x0000000000005b07", + "R15": "0x000000000001ab5b" + } +} +%endif + +lea r15, [rel .data] + +mov eax, 0 +mov ebx, 0 +mov ecx, 0 +mov edx, 0 +mov esi, 0 +mov edi, 0 +mov ebp, 0 +mov esp, 0 +mov r8d, 0 +mov r9d, 0 +mov r10d, 0 +mov r11d, 0 +mov r12d, 0 +mov r13d, 0 +mov r14d, 0 + +; We only care about results here +mov ax, word [r15 + 0] +mov bx, word [r15 + 1] +mov cx, word [r15 + 2] +mov dx, word [r15 + 3] +mov si, word [r15 + 4] +mov di, word [r15 + 5] +mov bp, word [r15 + 6] +mov sp, word [r15 + 7] +mov r8w, word [r15 + 4] +mov r9w, word [r15 + 9] +mov r10w, word [r15 + 10] +mov r11w, word [r15 + 11] +mov r12w, word [r15 + 12] +mov r13w, word [r15 + 13] +mov r14w, word [r15 + 14] +mov r15w, word [r15 + 15] + +hlt + +; 256bytes of random data +align 16 +.data: +dd 9042892,1422635032,1006326826,1527218293,582798507,2089999689,1417097080,1928248003,1074272523,1060557251,216792327,1674803041,279616115,441777196,715038375,407518795,2094733428,1884598841,447734476,947524986,1895254698,1672830628,673098253,1045402773,864978567,960531374,339530893,196139005,59435495,1870279404,383715765,1032584027,104924620,597456593,1212863084,1007986729,1224991550,344476351,1986036506,1085590199,634942853,956487659,142947491,462458211,1658827823,1125737874,344797902,1512619469,492430419,1669559173,534412544,145721129,420223845,1524873383,1920822367,709486397,1075005959,1656124734,1364988886,1391946848,151501156,1480187379,1752943752,112425311 diff --git a/unittests/ASM/TwoByte/0F_8B_32.asm b/unittests/ASM/TwoByte/0F_8B_32.asm new file mode 100644 index 000000000..04992a7cf --- /dev/null +++ b/unittests/ASM/TwoByte/0F_8B_32.asm @@ -0,0 +1,50 @@ +%ifdef CONFIG +{ + "RegData": { + "RAX": "0x000000000089fbcc", + "RBX": "0x00000000180089fb", + "RCX": "0x00000000b0180089", + "RDX": "0x00000000cbb01800", + "RSI": "0x0000000054cbb018", + "RDI": "0x000000002a54cbb0", + "RBP": "0x00000000542a54cb", + "RSP": "0x00000000fb542a54", + "R8": "0x0000000054cbb018", + "R9": "0x00000000753bfb54", + "R10": "0x0000000080753bfb", + "R11": "0x000000000780753b", + "R12": "0x000000005b078075", + "R13": "0x00000000ab5b0780", + "R14": "0x00000000ccab5b07", + "R15": "0x00000000bcccab5b" + } +} +%endif + +lea r15, [rel .data] + +; We only care about results here +mov eax, dword [r15 + 0] +mov ebx, dword [r15 + 1] +mov ecx, dword [r15 + 2] +mov edx, dword [r15 + 3] +mov esi, dword [r15 + 4] +mov edi, dword [r15 + 5] +mov ebp, dword [r15 + 6] +mov esp, dword [r15 + 7] +mov r8d, dword [r15 + 4] +mov r9d, dword [r15 + 9] +mov r10d, dword [r15 + 10] +mov r11d, dword [r15 + 11] +mov r12d, dword [r15 + 12] +mov r13d, dword [r15 + 13] +mov r14d, dword [r15 + 14] +mov r15d, dword [r15 + 15] + +hlt + + +; 256bytes of random data +align 16 +.data: +dd 9042892,1422635032,1006326826,1527218293,582798507,2089999689,1417097080,1928248003,1074272523,1060557251,216792327,1674803041,279616115,441777196,715038375,407518795,2094733428,1884598841,447734476,947524986,1895254698,1672830628,673098253,1045402773,864978567,960531374,339530893,196139005,59435495,1870279404,383715765,1032584027,104924620,597456593,1212863084,1007986729,1224991550,344476351,1986036506,1085590199,634942853,956487659,142947491,462458211,1658827823,1125737874,344797902,1512619469,492430419,1669559173,534412544,145721129,420223845,1524873383,1920822367,709486397,1075005959,1656124734,1364988886,1391946848,151501156,1480187379,1752943752,112425311 diff --git a/unittests/ASM/TwoByte/0F_8B_64.asm b/unittests/ASM/TwoByte/0F_8B_64.asm new file mode 100644 index 000000000..de363c476 --- /dev/null +++ b/unittests/ASM/TwoByte/0F_8B_64.asm @@ -0,0 +1,65 @@ +%ifdef CONFIG +{ + "RegData": { + "RAX": "0x54cbb0180089fbcc", + "RBX": "0x2a54cbb0180089fb", + "RCX": "0x542a54cbb0180089", + "RDX": "0xfb542a54cbb01800", + "RSI": "0x3bfb542a54cbb018", + "RDI": "0x753bfb542a54cbb0", + "RBP": "0x80753bfb542a54cb", + "RSP": "0x0780753bfb542a54", + "R8": "0x3bfb542a54cbb018", + "R9": "0xab5b0780753bfb54", + "R10": "0xccab5b0780753bfb", + "R11": "0xbcccab5b0780753b", + "R12": "0x22bcccab5b078075", + "R13": "0x4922bcccab5b0780", + "R14": "0xdd4922bcccab5b07", + "R15": "0x92dd4922bcccab5b" + } +} +%endif + +lea r15, [rel .data] + +mov eax, 0 +mov ebx, 0 +mov ecx, 0 +mov edx, 0 +mov esi, 0 +mov edi, 0 +mov ebp, 0 +mov esp, 0 +mov r8d, 0 +mov r9d, 0 +mov r10d, 0 +mov r11d, 0 +mov r12d, 0 +mov r13d, 0 +mov r14d, 0 + +; We only care about results here +mov rax, qword [r15 + 0] +mov rbx, qword [r15 + 1] +mov rcx, qword [r15 + 2] +mov rdx, qword [r15 + 3] +mov rsi, qword [r15 + 4] +mov rdi, qword [r15 + 5] +mov rbp, qword [r15 + 6] +mov rsp, qword [r15 + 7] +mov r8, qword [r15 + 4] +mov r9, qword [r15 + 9] +mov r10, qword [r15 + 10] +mov r11, qword [r15 + 11] +mov r12, qword [r15 + 12] +mov r13, qword [r15 + 13] +mov r14, qword [r15 + 14] +mov r15, qword [r15 + 15] + +hlt + +; 256bytes of random data +align 16 +.data: +dd 9042892,1422635032,1006326826,1527218293,582798507,2089999689,1417097080,1928248003,1074272523,1060557251,216792327,1674803041,279616115,441777196,715038375,407518795,2094733428,1884598841,447734476,947524986,1895254698,1672830628,673098253,1045402773,864978567,960531374,339530893,196139005,59435495,1870279404,383715765,1032584027,104924620,597456593,1212863084,1007986729,1224991550,344476351,1986036506,1085590199,634942853,956487659,142947491,462458211,1658827823,1125737874,344797902,1512619469,492430419,1669559173,534412544,145721129,420223845,1524873383,1920822367,709486397,1075005959,1656124734,1364988886,1391946848,151501156,1480187379,1752943752,112425311