Changeset 107101 in vbox
- Timestamp:
- Nov 22, 2024 7:56:43 AM (3 months ago)
- svn:sync-xref-src-repo-rev:
- 166067
- Location:
- trunk/src/VBox/ValidationKit/bootsectors
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-2-gen-asm.asm
r104002 r107101 44 44 BEGINCODE 45 45 46 %ifdef ASM_CALL64_MSC 47 %define EFLAGS_PARAM_REG r8d 48 %else 49 %define EFLAGS_PARAM_REG edx 46 preface_0: 47 %ifdef ASM_CALL64_GCC 48 mov r9, rcx 49 mov r8, rdx 50 mov rdx, rsi 51 mov rcx, rdi 50 52 %endif 51 53 ret 54 55 preface_1: 56 %ifdef ASM_CALL64_GCC 57 mov r9, rcx 58 mov r8, rdx 59 mov rdx, rsi 60 mov rcx, rdi 61 %endif 62 lahf 63 and ah, 0xfe 64 shl r8d, 8 65 or eax, r8d 66 sahf 67 ret 68 69 preface_2: 70 %ifdef ASM_CALL64_GCC 71 mov r9, rcx 72 mov r8, rdx 73 mov rdx, rsi 74 mov rcx, rdi 75 %endif 76 pushf 77 and dword [rsp], ~X86_EFL_STATUS_BITS 78 or dword [rsp], r8d 79 popf 80 ret 81 82 ;; 83 ; @param 1 which preface to use: 84 ; 0 = no flags meddling 85 ; 1 = takes carry flag in 86 ; 2 = takes entire flags register in 87 %macro DO_PREFACE 1 88 call preface_ %+ %1 89 %endmacro 52 90 53 91 ;; … … 59 97 %if %3 != 0 60 98 BEGINPROC GenU8_ %+ %1 61 %ifdef ASM_CALL64_GCC 62 mov r9, rcx 63 mov r8, rdx 64 mov rdx, rsi 65 mov rcx, rdi 66 %endif 67 %if %2 != 0 68 lahf 69 and ah, 0xfe 70 shl r8d, 8 71 or eax, r8d 72 sahf 73 %endif 99 DO_PREFACE %2 74 100 %1 cl, dl 75 101 mov [r9], cl … … 81 107 82 108 BEGINPROC GenU16_ %+ %1 83 %ifdef ASM_CALL64_GCC 84 mov r9, rcx 85 mov r8, rdx 86 mov rdx, rsi 87 mov rcx, rdi 88 %endif 89 %if %2 != 0 90 lahf 91 and ah, 0xfe 92 shl r8d, 8 93 or eax, r8d 94 sahf 95 %endif 109 DO_PREFACE %2 96 110 %1 cx, dx 97 111 mov [r9], cx … … 102 116 103 117 BEGINPROC GenU32_ %+ %1 104 %ifdef ASM_CALL64_GCC 105 mov r9, rcx 106 mov r8, rdx 107 mov rdx, rsi 108 mov rcx, rdi 109 %endif 110 %if %2 != 0 111 lahf 112 and ah, 0xfe 113 shl r8d, 8 114 or eax, r8d 115 sahf 116 %endif 118 DO_PREFACE %2 117 119 %1 ecx, edx 118 120 mov [r9], ecx … … 123 125 124 126 BEGINPROC GenU64_ %+ %1 125 %ifdef ASM_CALL64_GCC 126 mov r9, rcx 127 mov r8, rdx 128 mov rdx, rsi 129 mov rcx, rdi 130 %endif 131 %if %2 != 0 132 lahf 133 and ah, 0xfe 134 shl r8d, 8 135 or eax, r8d 136 sahf 137 %endif 127 DO_PREFACE %2 138 128 %1 rcx, rdx 139 129 mov [r9], rcx … … 168 158 169 159 BEGINPROC GenU8_ %+ %1 170 %ifdef ASM_CALL64_GCC 171 mov r9, rcx 172 mov r8, rdx 173 mov rdx, rsi 174 mov rcx, rdi 175 %endif 176 pushf 177 and dword [rsp], ~X86_EFL_STATUS_BITS 178 or dword [rsp], r8d 179 popf 160 DO_PREFACE 2 180 161 xchg rcx, rdx 181 162 %1 dl, cl … … 187 168 188 169 BEGINPROC GenU16_ %+ %1 189 %ifdef ASM_CALL64_GCC 190 mov r9, rcx 191 mov r8, rdx 192 mov rdx, rsi 193 mov rcx, rdi 194 %endif 195 pushf 196 and dword [rsp], ~X86_EFL_STATUS_BITS 197 or dword [rsp], r8d 198 popf 170 DO_PREFACE 2 199 171 xchg cx, dx 200 172 %1 dx, cl … … 206 178 207 179 BEGINPROC GenU32_ %+ %1 208 %ifdef ASM_CALL64_GCC 209 mov r9, rcx 210 mov r8, rdx 211 mov rdx, rsi 212 mov rcx, rdi 213 %endif 214 pushf 215 and dword [rsp], ~X86_EFL_STATUS_BITS 216 or dword [rsp], r8d 217 popf 180 DO_PREFACE 2 218 181 xchg rcx, rdx 219 182 %1 edx, cl … … 225 188 226 189 BEGINPROC GenU64_ %+ %1 227 %ifdef ASM_CALL64_GCC 228 mov r9, rcx 229 mov r8, rdx 230 mov rdx, rsi 231 mov rcx, rdi 232 %endif 233 pushf 234 and dword [rsp], ~X86_EFL_STATUS_BITS 235 or dword [rsp], r8d 236 popf 190 DO_PREFACE 2 237 191 xchg rcx, rdx 238 192 %1 rdx, cl … … 245 199 246 200 BEGINPROC GenU8_ %+ %1 %+ _Ib 247 %ifdef ASM_CALL64_GCC 248 mov r9, rcx 249 mov r8, rdx 250 mov rdx, rsi 251 mov rcx, rdi 252 %endif 253 pushf 254 and dword [rsp], ~X86_EFL_STATUS_BITS 255 or dword [rsp], r8d 256 popf 257 201 DO_PREFACE 2 258 202 movzx r11d, dl 259 203 mov al, cl … … 283 227 284 228 BEGINPROC GenU16_ %+ %1 %+ _Ib 285 %ifdef ASM_CALL64_GCC 286 mov r9, rcx 287 mov r8, rdx 288 mov rdx, rsi 289 mov rcx, rdi 290 %endif 291 pushf 292 and dword [rsp], ~X86_EFL_STATUS_BITS 293 or dword [rsp], r8d 294 popf 295 229 DO_PREFACE 2 296 230 movzx r11d, dl 297 231 mov ax, cx … … 322 256 323 257 BEGINPROC GenU32_ %+ %1 %+ _Ib 324 %ifdef ASM_CALL64_GCC 325 mov r9, rcx 326 mov r8, rdx 327 mov rdx, rsi 328 mov rcx, rdi 329 %endif 330 pushf 331 and dword [rsp], ~X86_EFL_STATUS_BITS 332 or dword [rsp], r8d 333 popf 334 258 DO_PREFACE 2 335 259 movzx r11d, dl 336 260 mov eax, ecx … … 360 284 361 285 BEGINPROC GenU64_ %+ %1 %+ _Ib 362 %ifdef ASM_CALL64_GCC 363 mov r9, rcx 364 mov r8, rdx 365 mov rdx, rsi 366 mov rcx, rdi 367 %endif 368 pushf 369 and dword [rsp], ~X86_EFL_STATUS_BITS 370 or dword [rsp], r8d 371 popf 372 286 DO_PREFACE 2 373 287 movzx r11d, dl 374 288 mov rax, rcx -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-2-template.c
r106061 r107101 1764 1764 Bs3TestFailedF("Expected bXcpt = %#x, got %#x", X86_XCPT_UD, TrapFrame.bXcpt); 1765 1765 if (TrapFrame.Ctx.rip.u != uExpectRip) 1766 Bs3TestFailedF("Expected RIP = %#06RX64, got %#06RX64", uExpectRip, TrapFrame.Ctx.rip.u);1766 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RIP", uExpectRip, TrapFrame.Ctx.rip.u); 1767 1767 if (TrapFrame.Ctx.rax.u != uExpectRax) 1768 Bs3TestFailedF("Expected RAX = %#06RX64, got %#06RX64", uExpectRax, TrapFrame.Ctx.rax.u);1768 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RAX", uExpectRax, TrapFrame.Ctx.rax.u); 1769 1769 if (TrapFrame.Ctx.rcx.u != Ctx.rcx.u) 1770 Bs3TestFailedF("Expected RCX = %#06RX64, got %#06RX64", Ctx.rcx.u, TrapFrame.Ctx.rcx.u);1770 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RCX", Ctx.rcx.u, TrapFrame.Ctx.rcx.u); 1771 1771 if (TrapFrame.Ctx.rbx.u != Ctx.rbx.u) 1772 1772 Bs3TestFailedF("Expected RBX = %#06RX64, got %#06RX64 (dst)", Ctx.rbx.u, TrapFrame.Ctx.rbx.u); … … 1780 1780 Bs3TestFailedF("Expected RDX = %#06RX64, got %#06RX64 (src)", Ctx.rdx.u, TrapFrame.Ctx.rdx.u); 1781 1781 if (TrapFrame.Ctx.rsp.u != Ctx.rsp.u) 1782 Bs3TestFailedF("Expected RSP = %#06RX64, got %#06RX64", Ctx.rsp.u, TrapFrame.Ctx.rsp.u);1782 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RSP", Ctx.rsp.u, TrapFrame.Ctx.rsp.u); 1783 1783 if (TrapFrame.Ctx.rbp.u != Ctx.rbp.u) 1784 Bs3TestFailedF("Expected RBP = %#06RX64, got %#06RX64", Ctx.rbp.u, TrapFrame.Ctx.rbp.u);1784 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RBP", Ctx.rbp.u, TrapFrame.Ctx.rbp.u); 1785 1785 if (TrapFrame.Ctx.rsi.u != Ctx.rsi.u) 1786 Bs3TestFailedF("Expected RSI = %#06RX64, got %#06RX64", Ctx.rsi.u, TrapFrame.Ctx.rsi.u);1786 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RSI", Ctx.rsi.u, TrapFrame.Ctx.rsi.u); 1787 1787 if (TrapFrame.Ctx.rdi.u != Ctx.rdi.u) 1788 Bs3TestFailedF("Expected RDI = %#06RX64, got %#06RX64", Ctx.rdi.u, TrapFrame.Ctx.rdi.u);1788 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RDI", Ctx.rdi.u, TrapFrame.Ctx.rdi.u); 1789 1789 if (uMemSrc != uMemSrcExpect) 1790 Bs3TestFailedF("Expected uMemSrc = %#06RX64, got %#06RX64", (uint64_t)uMemSrcExpect, (uint64_t)uMemSrc);1790 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "uMemSrc", (uint64_t)uMemSrcExpect, (uint64_t)uMemSrc); 1791 1791 } 1792 1792 } … … 2269 2269 Bs3TestFailedF("Expected bXcpt = %#x, got %#x", bExpectXcpt, TrapFrame.bXcpt); 2270 2270 if (TrapFrame.Ctx.rip.u != uExpectRip) 2271 Bs3TestFailedF("Expected RIP = %#06RX64, got %#06RX64", uExpectRip, TrapFrame.Ctx.rip.u);2271 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RIP", uExpectRip, TrapFrame.Ctx.rip.u); 2272 2272 if (TrapFrame.Ctx.rdx.u != Ctx.rdx.u) 2273 2273 Bs3TestFailedF("Expected RDX = %#06RX64, got %#06RX64 (src)", Ctx.rdx.u, TrapFrame.Ctx.rdx.u); … … 2276 2276 2277 2277 if ((TrapFrame.Ctx.rflags.u16 & X86_EFL_STATUS_BITS) != (Ctx.rflags.u16 & X86_EFL_STATUS_BITS)) 2278 Bs3TestFailedF("Expected EFLAGS = %#06RX64, got %#06RX64",2278 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "EFLAGS", 2279 2279 Ctx.rflags.u16 & X86_EFL_STATUS_BITS, TrapFrame.Ctx.rflags.u16 & X86_EFL_STATUS_BITS); 2280 2280 if (TrapFrame.Ctx.rax.u != Ctx.rax.u) 2281 Bs3TestFailedF("Expected RAX = %#06RX64, got %#06RX64", Ctx.rax.u, TrapFrame.Ctx.rax.u);2281 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RAX", Ctx.rax.u, TrapFrame.Ctx.rax.u); 2282 2282 if (TrapFrame.Ctx.rcx.u != Ctx.rcx.u) 2283 Bs3TestFailedF("Expected RCX = %#06RX64, got %#06RX64", Ctx.rcx.u, TrapFrame.Ctx.rcx.u);2283 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RCX", Ctx.rcx.u, TrapFrame.Ctx.rcx.u); 2284 2284 if (TrapFrame.Ctx.rsp.u != Ctx.rsp.u) 2285 Bs3TestFailedF("Expected RSP = %#06RX64, got %#06RX64", Ctx.rsp.u, TrapFrame.Ctx.rsp.u);2285 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RSP", Ctx.rsp.u, TrapFrame.Ctx.rsp.u); 2286 2286 if (TrapFrame.Ctx.rbp.u != Ctx.rbp.u) 2287 Bs3TestFailedF("Expected RBP = %#06RX64, got %#06RX64", Ctx.rbp.u, TrapFrame.Ctx.rbp.u);2287 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RBP", Ctx.rbp.u, TrapFrame.Ctx.rbp.u); 2288 2288 if (TrapFrame.Ctx.rsi.u != Ctx.rsi.u) 2289 Bs3TestFailedF("Expected RSI = %#06RX64, got %#06RX64", Ctx.rsi.u, TrapFrame.Ctx.rsi.u);2289 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RSI", Ctx.rsi.u, TrapFrame.Ctx.rsi.u); 2290 2290 if (TrapFrame.Ctx.rdi.u != Ctx.rdi.u) 2291 Bs3TestFailedF("Expected RDI = %#06RX64, got %#06RX64", Ctx.rdi.u, TrapFrame.Ctx.rdi.u);2291 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RDI", Ctx.rdi.u, TrapFrame.Ctx.rdi.u); 2292 2292 if (uMemSrc != uMemSrcExpect) 2293 Bs3TestFailedF("Expected uMemSrc = %#06RX64, got %#06RX64", (uint64_t)uMemSrcExpect, (uint64_t)uMemSrc);2293 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "uMemSrc", (uint64_t)uMemSrcExpect, (uint64_t)uMemSrc); 2294 2294 } 2295 2295 } … … 2410 2410 Bs3TestFailedF("Expected bXcpt = %#x, got %#x", bExpectXcpt, TrapFrame.bXcpt); 2411 2411 if (TrapFrame.Ctx.rip.u != uExpectRip) 2412 Bs3TestFailedF("Expected RIP = %#06RX64, got %#06RX64", uExpectRip, TrapFrame.Ctx.rip.u);2412 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RIP", uExpectRip, TrapFrame.Ctx.rip.u); 2413 2413 if (TrapFrame.Ctx.rax.u != uExpectRax) 2414 Bs3TestFailedF("Expected RAX = %#06RX64, got %#06RX64", uExpectRax, TrapFrame.Ctx.rax.u);2414 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RAX", uExpectRax, TrapFrame.Ctx.rax.u); 2415 2415 if (TrapFrame.Ctx.rcx.u != Ctx.rcx.u) 2416 Bs3TestFailedF("Expected RCX = %#06RX64, got %#06RX64", Ctx.rcx.u, TrapFrame.Ctx.rcx.u);2416 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RCX", Ctx.rcx.u, TrapFrame.Ctx.rcx.u); 2417 2417 if (TrapFrame.Ctx.rbx.u != Ctx.rbx.u) 2418 2418 Bs3TestFailedF("Expected RBX = %#06RX64, got %#06RX64 (dst)", Ctx.rbx.u, TrapFrame.Ctx.rbx.u); … … 2430 2430 Bs3TestFailedF("Expected RDX = %#06RX64, got %#06RX64 (src)", Ctx.rdx.u, TrapFrame.Ctx.rdx.u); 2431 2431 if (TrapFrame.Ctx.rsp.u != Ctx.rsp.u) 2432 Bs3TestFailedF("Expected RSP = %#06RX64, got %#06RX64", Ctx.rsp.u, TrapFrame.Ctx.rsp.u);2432 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RSP", Ctx.rsp.u, TrapFrame.Ctx.rsp.u); 2433 2433 if (TrapFrame.Ctx.rbp.u != Ctx.rbp.u) 2434 Bs3TestFailedF("Expected RBP = %#06RX64, got %#06RX64", Ctx.rbp.u, TrapFrame.Ctx.rbp.u);2434 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RBP", Ctx.rbp.u, TrapFrame.Ctx.rbp.u); 2435 2435 if (TrapFrame.Ctx.rsi.u != Ctx.rsi.u) 2436 Bs3TestFailedF("Expected RSI = %#06RX64, got %#06RX64", Ctx.rsi.u, TrapFrame.Ctx.rsi.u);2436 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RSI", Ctx.rsi.u, TrapFrame.Ctx.rsi.u); 2437 2437 if (TrapFrame.Ctx.rdi.u != Ctx.rdi.u) 2438 Bs3TestFailedF("Expected RDI = %#06RX64, got %#06RX64", Ctx.rdi.u, TrapFrame.Ctx.rdi.u);2438 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RDI", Ctx.rdi.u, TrapFrame.Ctx.rdi.u); 2439 2439 if (uMemSrc2 != uMemSrc2Expect) 2440 Bs3TestFailedF("Expected uMemSrc2 = %#06RX64, got %#06RX64", (uint64_t)uMemSrc2Expect, (uint64_t)uMemSrc2);2440 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "uMemSrc2", (uint64_t)uMemSrc2Expect, (uint64_t)uMemSrc2); 2441 2441 } 2442 2442 } … … 2547 2547 Bs3TestFailedF("Expected bXcpt = %#x, got %#x", bExpectXcpt, TrapFrame.bXcpt); 2548 2548 if (TrapFrame.Ctx.rip.u != uExpectRip) 2549 Bs3TestFailedF("Expected RIP = %#06RX64, got %#06RX64", uExpectRip, TrapFrame.Ctx.rip.u);2549 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RIP", uExpectRip, TrapFrame.Ctx.rip.u); 2550 2550 if (TrapFrame.Ctx.rax.u != uExpectRax) 2551 Bs3TestFailedF("Expected RAX = %#06RX64, got %#06RX64", uExpectRax, TrapFrame.Ctx.rax.u);2551 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RAX", uExpectRax, TrapFrame.Ctx.rax.u); 2552 2552 if (TrapFrame.Ctx.rcx.u != Ctx.rcx.u) 2553 Bs3TestFailedF("Expected RCX = %#06RX64, got %#06RX64", Ctx.rcx.u, TrapFrame.Ctx.rcx.u);2553 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RCX", Ctx.rcx.u, TrapFrame.Ctx.rcx.u); 2554 2554 if (TrapFrame.Ctx.rbx.u != Ctx.rbx.u) 2555 Bs3TestFailedF("Expected RBX = %#06RX64, got %#06RX64", Ctx.rbx.u, TrapFrame.Ctx.rbx.u);2555 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RBX", Ctx.rbx.u, TrapFrame.Ctx.rbx.u); 2556 2556 if ( (TrapFrame.Ctx.rflags.u16 & fEflCheck) 2557 2557 != ((fOkay ? paTests[i].paSubTests[k].fEflOut : Ctx.rflags.u16) & fEflCheck)) … … 2566 2566 2567 2567 if (TrapFrame.Ctx.rdx.u != Ctx.rdx.u) 2568 Bs3TestFailedF("Expected RDX = %#06RX64, got %#06RX64", Ctx.rdx.u, TrapFrame.Ctx.rdx.u);2568 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RDX", Ctx.rdx.u, TrapFrame.Ctx.rdx.u); 2569 2569 if (TrapFrame.Ctx.rsp.u != Ctx.rsp.u) 2570 Bs3TestFailedF("Expected RSP = %#06RX64, got %#06RX64", Ctx.rsp.u, TrapFrame.Ctx.rsp.u);2570 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RSP", Ctx.rsp.u, TrapFrame.Ctx.rsp.u); 2571 2571 if (TrapFrame.Ctx.rbp.u != Ctx.rbp.u) 2572 Bs3TestFailedF("Expected RBP = %#06RX64, got %#06RX64", Ctx.rbp.u, TrapFrame.Ctx.rbp.u);2572 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RBP", Ctx.rbp.u, TrapFrame.Ctx.rbp.u); 2573 2573 if (TrapFrame.Ctx.rsi.u != Ctx.rsi.u) 2574 Bs3TestFailedF("Expected RSI = %#06RX64, got %#06RX64", Ctx.rsi.u, TrapFrame.Ctx.rsi.u);2574 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RSI", Ctx.rsi.u, TrapFrame.Ctx.rsi.u); 2575 2575 if (TrapFrame.Ctx.rdi.u != Ctx.rdi.u) 2576 Bs3TestFailedF("Expected RDI = %#06RX64, got %#06RX64", Ctx.rdi.u, TrapFrame.Ctx.rdi.u);2576 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RDI", Ctx.rdi.u, TrapFrame.Ctx.rdi.u); 2577 2577 if (uMemSrc1 != uMemSrc1Expect) 2578 Bs3TestFailedF("Expected uMemSrc1 = %#06RX64, got %#06RX64", (uint64_t)uMemSrc1Expect, (uint64_t)uMemSrc1);2578 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "uMemSrc1", (uint64_t)uMemSrc1Expect, (uint64_t)uMemSrc1); 2579 2579 } 2580 2580 } … … 2948 2948 Bs3TestFailedF("Expected bXcpt = %#x, got %#x", bExpectXcpt, TrapFrame.bXcpt); 2949 2949 if (TrapFrame.Ctx.rip.u != uExpectRip) 2950 Bs3TestFailedF("Expected RIP = %#06RX64, got %#06RX64", uExpectRip, TrapFrame.Ctx.rip.u);2950 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RIP", uExpectRip, TrapFrame.Ctx.rip.u); 2951 2951 if (TrapFrame.Ctx.rax.u != uExpectRax) 2952 Bs3TestFailedF("Expected RAX = %#06RX64, got %#06RX64", uExpectRax, TrapFrame.Ctx.rax.u);2952 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RAX", uExpectRax, TrapFrame.Ctx.rax.u); 2953 2953 if (TrapFrame.Ctx.rbx.u != Ctx.rbx.u) 2954 2954 Bs3TestFailedF("Expected RBX = %#06RX64, got %#06RX64 (dst)", Ctx.rbx.u, TrapFrame.Ctx.rbx.u); … … 2965 2965 2966 2966 if (TrapFrame.Ctx.rcx.u != Ctx.rcx.u) 2967 Bs3TestFailedF("Expected RCX = %#06RX64, got %#06RX64", Ctx.rcx.u, TrapFrame.Ctx.rcx.u);2967 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RCX", Ctx.rcx.u, TrapFrame.Ctx.rcx.u); 2968 2968 if (TrapFrame.Ctx.rdx.u != Ctx.rdx.u) 2969 Bs3TestFailedF("Expected RDX = %#06RX64, got %#06RX64", Ctx.rdx.u, TrapFrame.Ctx.rdx.u);2969 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RDX", Ctx.rdx.u, TrapFrame.Ctx.rdx.u); 2970 2970 if (TrapFrame.Ctx.rsp.u != Ctx.rsp.u) 2971 Bs3TestFailedF("Expected RSP = %#06RX64, got %#06RX64", Ctx.rsp.u, TrapFrame.Ctx.rsp.u);2971 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RSP", Ctx.rsp.u, TrapFrame.Ctx.rsp.u); 2972 2972 if (TrapFrame.Ctx.rbp.u != Ctx.rbp.u) 2973 Bs3TestFailedF("Expected RBP = %#06RX64, got %#06RX64", Ctx.rbp.u, TrapFrame.Ctx.rbp.u);2973 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RBP", Ctx.rbp.u, TrapFrame.Ctx.rbp.u); 2974 2974 if (TrapFrame.Ctx.rsi.u != Ctx.rsi.u) 2975 Bs3TestFailedF("Expected RSI = %#06RX64, got %#06RX64", Ctx.rsi.u, TrapFrame.Ctx.rsi.u);2975 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RSI", Ctx.rsi.u, TrapFrame.Ctx.rsi.u); 2976 2976 if (TrapFrame.Ctx.rdi.u != Ctx.rdi.u) 2977 Bs3TestFailedF("Expected RDI = %#06RX64, got %#06RX64", Ctx.rdi.u, TrapFrame.Ctx.rdi.u);2977 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RDI", Ctx.rdi.u, TrapFrame.Ctx.rdi.u); 2978 2978 if (uMemSrc != uMemSrcExpect) 2979 Bs3TestFailedF("Expected uMemSrc = %#06RX64, got %#06RX64", (uint64_t)uMemSrcExpect, (uint64_t)uMemSrc);2979 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "uMemSrc", (uint64_t)uMemSrcExpect, (uint64_t)uMemSrc); 2980 2980 } 2981 2981 } … … 3218 3218 Bs3TestFailedF("Expected bXcpt = %#x, got %#x", bExpectXcpt, TrapFrame.bXcpt); 3219 3219 if (TrapFrame.Ctx.rip.u != uExpectRip) 3220 Bs3TestFailedF("Expected RIP = %#06RX64, got %#06RX64", uExpectRip, TrapFrame.Ctx.rip.u);3220 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RIP", uExpectRip, TrapFrame.Ctx.rip.u); 3221 3221 if (TrapFrame.Ctx.rax.u != uExpectRax) 3222 Bs3TestFailedF("Expected RAX = %#06RX64, got %#06RX64", uExpectRax, TrapFrame.Ctx.rax.u);3222 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RAX", uExpectRax, TrapFrame.Ctx.rax.u); 3223 3223 if (TrapFrame.Ctx.rcx.u != uExpectRcx) 3224 Bs3TestFailedF("Expected RCX = %#06RX64, got %#06RX64", uExpectRcx, TrapFrame.Ctx.rcx.u);3224 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RCX", uExpectRcx, TrapFrame.Ctx.rcx.u); 3225 3225 if (TrapFrame.Ctx.rbx.u != Ctx.rbx.u) 3226 3226 Bs3TestFailedF("Expected RBX = %#06RX64, got %#06RX64 (dst)", Ctx.rbx.u, TrapFrame.Ctx.rbx.u); … … 3232 3232 Ctx.rflags.u16 & X86_EFL_STATUS_BITS, TrapFrame.Ctx.rflags.u16 & X86_EFL_STATUS_BITS); 3233 3233 if (TrapFrame.Ctx.rsp.u != Ctx.rsp.u) 3234 Bs3TestFailedF("Expected RSP = %#06RX64, got %#06RX64", Ctx.rsp.u, TrapFrame.Ctx.rsp.u);3234 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RSP", Ctx.rsp.u, TrapFrame.Ctx.rsp.u); 3235 3235 if (TrapFrame.Ctx.rbp.u != Ctx.rbp.u) 3236 Bs3TestFailedF("Expected RBP = %#06RX64, got %#06RX64", Ctx.rbp.u, TrapFrame.Ctx.rbp.u);3236 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RBP", Ctx.rbp.u, TrapFrame.Ctx.rbp.u); 3237 3237 if (TrapFrame.Ctx.rsi.u != Ctx.rsi.u) 3238 Bs3TestFailedF("Expected RSI = %#06RX64, got %#06RX64", Ctx.rsi.u, TrapFrame.Ctx.rsi.u);3238 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RSI", Ctx.rsi.u, TrapFrame.Ctx.rsi.u); 3239 3239 if (TrapFrame.Ctx.rdi.u != Ctx.rdi.u) 3240 Bs3TestFailedF("Expected RDI = %#06RX64, got %#06RX64", Ctx.rdi.u, TrapFrame.Ctx.rdi.u);3240 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RDI", Ctx.rdi.u, TrapFrame.Ctx.rdi.u); 3241 3241 if (uMemSrc1 != uMemSrc1Expect) 3242 Bs3TestFailedF("Expected uMemSrc1 = %#06RX64, got %#06RX64", (uint64_t)uMemSrc1Expect, (uint64_t)uMemSrc1);3242 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "uMemSrc1", (uint64_t)uMemSrc1Expect, (uint64_t)uMemSrc1); 3243 3243 } 3244 3244 } … … 3376 3376 Bs3TestFailedF("Expected bXcpt = %#x, got %#x", bExpectXcpt, TrapFrame.bXcpt); 3377 3377 if (TrapFrame.Ctx.rip.u != uExpectRip) 3378 Bs3TestFailedF("Expected RIP = %#06RX64, got %#06RX64", uExpectRip, TrapFrame.Ctx.rip.u);3378 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RIP", uExpectRip, TrapFrame.Ctx.rip.u); 3379 3379 if (TrapFrame.Ctx.rax.u != uExpectRax) 3380 Bs3TestFailedF("Expected RAX = %#06RX64, got %#06RX64", uExpectRax, TrapFrame.Ctx.rax.u);3380 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RAX", uExpectRax, TrapFrame.Ctx.rax.u); 3381 3381 if (TrapFrame.Ctx.rbx.u != Ctx.rbx.u) 3382 3382 Bs3TestFailedF("Expected RBX = %#06RX64, got %#06RX64 (dst)", Ctx.rbx.u, TrapFrame.Ctx.rbx.u); … … 3386 3386 3387 3387 if (TrapFrame.Ctx.rcx.u != Ctx.rcx.u) 3388 Bs3TestFailedF("Expected RCX = %#06RX64, got %#06RX64", Ctx.rcx.u, TrapFrame.Ctx.rcx.u);3388 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RCX", Ctx.rcx.u, TrapFrame.Ctx.rcx.u); 3389 3389 if (TrapFrame.Ctx.rdx.u != Ctx.rdx.u) 3390 3390 Bs3TestFailedF("Expected RDX = %#06RX64, got %#06RX64 (src)", Ctx.rdx.u, TrapFrame.Ctx.rdx.u); 3391 3391 if (TrapFrame.Ctx.rsp.u != Ctx.rsp.u) 3392 Bs3TestFailedF("Expected RSP = %#06RX64, got %#06RX64", Ctx.rsp.u, TrapFrame.Ctx.rsp.u);3392 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RSP", Ctx.rsp.u, TrapFrame.Ctx.rsp.u); 3393 3393 if (TrapFrame.Ctx.rbp.u != Ctx.rbp.u) 3394 Bs3TestFailedF("Expected RBP = %#06RX64, got %#06RX64", Ctx.rbp.u, TrapFrame.Ctx.rbp.u);3394 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RBP", Ctx.rbp.u, TrapFrame.Ctx.rbp.u); 3395 3395 if (TrapFrame.Ctx.rsi.u != Ctx.rsi.u) 3396 Bs3TestFailedF("Expected RSI = %#06RX64, got %#06RX64", Ctx.rsi.u, TrapFrame.Ctx.rsi.u);3396 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RSI", Ctx.rsi.u, TrapFrame.Ctx.rsi.u); 3397 3397 if (TrapFrame.Ctx.rdi.u != Ctx.rdi.u) 3398 Bs3TestFailedF("Expected RDI = %#06RX64, got %#06RX64", Ctx.rdi.u, TrapFrame.Ctx.rdi.u);3398 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RDI", Ctx.rdi.u, TrapFrame.Ctx.rdi.u); 3399 3399 if (uMemSrc != uMemSrcExpect) 3400 Bs3TestFailedF("Expected uMemSrc = %#06RX64, got %#06RX64", (uint64_t)uMemSrcExpect, (uint64_t)uMemSrc);3400 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "uMemSrc", (uint64_t)uMemSrcExpect, (uint64_t)uMemSrc); 3401 3401 } 3402 3402 } … … 3584 3584 Bs3TestFailedF("Expected bXcpt = %#x, got %#x", bExpectXcpt, TrapFrame.bXcpt); 3585 3585 if (TrapFrame.Ctx.rip.u != uExpectRip) 3586 Bs3TestFailedF("Expected RIP = %#06RX64, got %#06RX64", uExpectRip, TrapFrame.Ctx.rip.u);3586 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RIP", uExpectRip, TrapFrame.Ctx.rip.u); 3587 3587 if (TrapFrame.Ctx.rax.u != uExpectRax) 3588 3588 Bs3TestFailedF("Expected RAX = %#010RX64, got %#010RX64", uExpectRax, TrapFrame.Ctx.rax.u); … … 3593 3593 Bs3TestFailedF("Expected EFLAGS = %#06RX32, got %#06RX32", Ctx.rflags.u16, TrapFrame.Ctx.rflags.u16); 3594 3594 if (TrapFrame.Ctx.rcx.u != Ctx.rcx.u) 3595 Bs3TestFailedF("Expected RCX = %#06RX64, got %#06RX64", Ctx.rcx.u, TrapFrame.Ctx.rcx.u);3595 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RCX", Ctx.rcx.u, TrapFrame.Ctx.rcx.u); 3596 3596 if (TrapFrame.Ctx.rdx.u != Ctx.rdx.u) 3597 3597 Bs3TestFailedF("Expected RDX = %#06RX64, got %#06RX64 (src)", Ctx.rdx.u, TrapFrame.Ctx.rdx.u); 3598 3598 if (TrapFrame.Ctx.rsp.u != Ctx.rsp.u) 3599 Bs3TestFailedF("Expected RSP = %#06RX64, got %#06RX64", Ctx.rsp.u, TrapFrame.Ctx.rsp.u);3599 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RSP", Ctx.rsp.u, TrapFrame.Ctx.rsp.u); 3600 3600 if (TrapFrame.Ctx.rbp.u != Ctx.rbp.u) 3601 Bs3TestFailedF("Expected RBP = %#06RX64, got %#06RX64", Ctx.rbp.u, TrapFrame.Ctx.rbp.u);3601 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RBP", Ctx.rbp.u, TrapFrame.Ctx.rbp.u); 3602 3602 if (TrapFrame.Ctx.rsi.u != Ctx.rsi.u) 3603 Bs3TestFailedF("Expected RSI = %#06RX64, got %#06RX64", Ctx.rsi.u, TrapFrame.Ctx.rsi.u);3603 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RSI", Ctx.rsi.u, TrapFrame.Ctx.rsi.u); 3604 3604 if (TrapFrame.Ctx.rdi.u != Ctx.rdi.u) 3605 Bs3TestFailedF("Expected RDI = %#06RX64, got %#06RX64", Ctx.rdi.u, TrapFrame.Ctx.rdi.u);3605 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RDI", Ctx.rdi.u, TrapFrame.Ctx.rdi.u); 3606 3606 if (uMemSrc != uMemSrcExpect) 3607 Bs3TestFailedF("Expected uMemSrc = %#06RX64, got %#06RX64", (uint64_t)uMemSrcExpect, (uint64_t)uMemSrc);3607 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "uMemSrc", (uint64_t)uMemSrcExpect, (uint64_t)uMemSrc); 3608 3608 } 3609 3609 } … … 3835 3835 Bs3TestFailedF("Expected bXcpt = %#x, got %#x", bExpectXcpt, TrapFrame.bXcpt); 3836 3836 if (TrapFrame.Ctx.rip.u != uExpectRip) 3837 Bs3TestFailedF("Expected RIP = %#06RX64, got %#06RX64", uExpectRip, TrapFrame.Ctx.rip.u);3837 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RIP", uExpectRip, TrapFrame.Ctx.rip.u); 3838 3838 if (TrapFrame.Ctx.rax.u != uExpectRax) 3839 3839 Bs3TestFailedF("Expected RAX = %#010RX64, got %#010RX64", uExpectRax, TrapFrame.Ctx.rax.u); … … 3844 3844 Bs3TestFailedF("Expected EFLAGS = %#06RX16, got %#06RX16", Ctx.rflags.u16, TrapFrame.Ctx.rflags.u16); 3845 3845 if (TrapFrame.Ctx.rcx.u != Ctx.rcx.u) 3846 Bs3TestFailedF("Expected RCX = %#06RX64, got %#06RX64", Ctx.rcx.u, TrapFrame.Ctx.rcx.u);3846 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RCX", Ctx.rcx.u, TrapFrame.Ctx.rcx.u); 3847 3847 if (TrapFrame.Ctx.rdx.u != Ctx.rdx.u) 3848 3848 Bs3TestFailedF("Expected RDX = %#06RX64, got %#06RX64 (src)", Ctx.rdx.u, TrapFrame.Ctx.rdx.u); 3849 3849 if (TrapFrame.Ctx.rsp.u != Ctx.rsp.u) 3850 Bs3TestFailedF("Expected RSP = %#06RX64, got %#06RX64", Ctx.rsp.u, TrapFrame.Ctx.rsp.u);3850 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RSP", Ctx.rsp.u, TrapFrame.Ctx.rsp.u); 3851 3851 if (TrapFrame.Ctx.rbp.u != Ctx.rbp.u) 3852 Bs3TestFailedF("Expected RBP = %#06RX64, got %#06RX64", Ctx.rbp.u, TrapFrame.Ctx.rbp.u);3852 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RBP", Ctx.rbp.u, TrapFrame.Ctx.rbp.u); 3853 3853 if (TrapFrame.Ctx.rsi.u != Ctx.rsi.u) 3854 Bs3TestFailedF("Expected RSI = %#06RX64, got %#06RX64", Ctx.rsi.u, TrapFrame.Ctx.rsi.u);3854 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RSI", Ctx.rsi.u, TrapFrame.Ctx.rsi.u); 3855 3855 if (TrapFrame.Ctx.rdi.u != Ctx.rdi.u) 3856 Bs3TestFailedF("Expected RDI = %#06RX64, got %#06RX64", Ctx.rdi.u, TrapFrame.Ctx.rdi.u);3856 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "RDI", Ctx.rdi.u, TrapFrame.Ctx.rdi.u); 3857 3857 if (uMemSrc != uMemSrcExpect) 3858 Bs3TestFailedF("Expected uMemSrc = %#06RX64, got %#06RX64", (uint64_t)uMemSrcExpect, (uint64_t)uMemSrc);3858 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "uMemSrc", (uint64_t)uMemSrcExpect, (uint64_t)uMemSrc); 3859 3859 } 3860 3860 } … … 4003 4003 Bs3TestFailedF("Expected bXcpt=#%x, got %#x (%#x)", bExpectXcpt, TrapFrame.bXcpt, TrapFrame.uErrCd); 4004 4004 if (uMem != uMemExpect) 4005 Bs3TestFailedF("Expected uMem = %#06RX64, got %#06RX64", (uint64_t)uMemExpect, (uint64_t)uMem);4005 Bs3TestFailedF("Expected %s = %#06RX64, got %#06RX64", "uMem", (uint64_t)uMemExpect, (uint64_t)uMem); 4006 4006 Bs3TestFailedF("^^^ iCfg=%u iWorker=%d iValue=%d\n", 4007 4007 j, i, iValue); -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-TestCheckRegCtxEx.c
r106061 r107101 52 52 do { \ 53 53 if ((a_Actual) == (a_Expected)) { /* likely */ } \ 54 else Bs3TestFailedF("%u - %s: " a_szName "=" a_szFmt " expected " a_szFmt, idTestStep, pszMode, (a_Actual), (a_Expected)); \54 else Bs3TestFailedF("%u - %s: %s=" a_szFmt " expected " a_szFmt, idTestStep, pszMode, a_szName, (a_Actual), (a_Expected)); \ 55 55 } while (0) 56 56
Note:
See TracChangeset
for help on using the changeset viewer.