- Timestamp:
- Jul 28, 2023 11:29:26 AM (19 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/CPUM-armv8.cpp
r99956 r100727 139 139 140 140 141 #if 0 /** @todo Will come later. */142 141 /** Saved state field descriptors for CPUMCTX. */ 143 142 static const SSMFIELD g_aCpumCtxFields[] = … … 211 210 SSMFIELD_ENTRY( CPUMCTX, Spsr.u64), 212 211 SSMFIELD_ENTRY( CPUMCTX, Elr.u64), 212 SSMFIELD_ENTRY( CPUMCTX, Sctlr.u64), 213 SSMFIELD_ENTRY( CPUMCTX, Tcr.u64), 214 SSMFIELD_ENTRY( CPUMCTX, Ttbr0.u64), 215 SSMFIELD_ENTRY( CPUMCTX, Ttbr1.u64), 216 SSMFIELD_ENTRY( CPUMCTX, VBar.u64), 217 SSMFIELD_ENTRY( CPUMCTX, aBp[0].Ctrl.u64), 218 SSMFIELD_ENTRY( CPUMCTX, aBp[0].Value.u64), 219 SSMFIELD_ENTRY( CPUMCTX, aBp[1].Ctrl.u64), 220 SSMFIELD_ENTRY( CPUMCTX, aBp[1].Value.u64), 221 SSMFIELD_ENTRY( CPUMCTX, aBp[2].Ctrl.u64), 222 SSMFIELD_ENTRY( CPUMCTX, aBp[2].Value.u64), 223 SSMFIELD_ENTRY( CPUMCTX, aBp[3].Ctrl.u64), 224 SSMFIELD_ENTRY( CPUMCTX, aBp[3].Value.u64), 225 SSMFIELD_ENTRY( CPUMCTX, aBp[4].Ctrl.u64), 226 SSMFIELD_ENTRY( CPUMCTX, aBp[4].Value.u64), 227 SSMFIELD_ENTRY( CPUMCTX, aBp[5].Ctrl.u64), 228 SSMFIELD_ENTRY( CPUMCTX, aBp[5].Value.u64), 229 SSMFIELD_ENTRY( CPUMCTX, aBp[6].Ctrl.u64), 230 SSMFIELD_ENTRY( CPUMCTX, aBp[6].Value.u64), 231 SSMFIELD_ENTRY( CPUMCTX, aBp[7].Ctrl.u64), 232 SSMFIELD_ENTRY( CPUMCTX, aBp[7].Value.u64), 233 SSMFIELD_ENTRY( CPUMCTX, aBp[8].Ctrl.u64), 234 SSMFIELD_ENTRY( CPUMCTX, aBp[8].Value.u64), 235 SSMFIELD_ENTRY( CPUMCTX, aBp[9].Ctrl.u64), 236 SSMFIELD_ENTRY( CPUMCTX, aBp[9].Value.u64), 237 SSMFIELD_ENTRY( CPUMCTX, aBp[10].Ctrl.u64), 238 SSMFIELD_ENTRY( CPUMCTX, aBp[10].Value.u64), 239 SSMFIELD_ENTRY( CPUMCTX, aBp[11].Ctrl.u64), 240 SSMFIELD_ENTRY( CPUMCTX, aBp[11].Value.u64), 241 SSMFIELD_ENTRY( CPUMCTX, aBp[12].Ctrl.u64), 242 SSMFIELD_ENTRY( CPUMCTX, aBp[12].Value.u64), 243 SSMFIELD_ENTRY( CPUMCTX, aBp[13].Ctrl.u64), 244 SSMFIELD_ENTRY( CPUMCTX, aBp[13].Value.u64), 245 SSMFIELD_ENTRY( CPUMCTX, aBp[14].Ctrl.u64), 246 SSMFIELD_ENTRY( CPUMCTX, aBp[14].Value.u64), 247 SSMFIELD_ENTRY( CPUMCTX, aBp[15].Ctrl.u64), 248 SSMFIELD_ENTRY( CPUMCTX, aBp[15].Value.u64), 249 SSMFIELD_ENTRY( CPUMCTX, aWp[0].Ctrl.u64), 250 SSMFIELD_ENTRY( CPUMCTX, aWp[0].Value.u64), 251 SSMFIELD_ENTRY( CPUMCTX, aWp[1].Ctrl.u64), 252 SSMFIELD_ENTRY( CPUMCTX, aWp[1].Value.u64), 253 SSMFIELD_ENTRY( CPUMCTX, aWp[2].Ctrl.u64), 254 SSMFIELD_ENTRY( CPUMCTX, aWp[2].Value.u64), 255 SSMFIELD_ENTRY( CPUMCTX, aWp[3].Ctrl.u64), 256 SSMFIELD_ENTRY( CPUMCTX, aWp[3].Value.u64), 257 SSMFIELD_ENTRY( CPUMCTX, aWp[4].Ctrl.u64), 258 SSMFIELD_ENTRY( CPUMCTX, aWp[4].Value.u64), 259 SSMFIELD_ENTRY( CPUMCTX, aWp[5].Ctrl.u64), 260 SSMFIELD_ENTRY( CPUMCTX, aWp[5].Value.u64), 261 SSMFIELD_ENTRY( CPUMCTX, aWp[6].Ctrl.u64), 262 SSMFIELD_ENTRY( CPUMCTX, aWp[6].Value.u64), 263 SSMFIELD_ENTRY( CPUMCTX, aWp[7].Ctrl.u64), 264 SSMFIELD_ENTRY( CPUMCTX, aWp[7].Value.u64), 265 SSMFIELD_ENTRY( CPUMCTX, aWp[8].Ctrl.u64), 266 SSMFIELD_ENTRY( CPUMCTX, aWp[8].Value.u64), 267 SSMFIELD_ENTRY( CPUMCTX, aWp[9].Ctrl.u64), 268 SSMFIELD_ENTRY( CPUMCTX, aWp[9].Value.u64), 269 SSMFIELD_ENTRY( CPUMCTX, aWp[10].Ctrl.u64), 270 SSMFIELD_ENTRY( CPUMCTX, aWp[10].Value.u64), 271 SSMFIELD_ENTRY( CPUMCTX, aWp[11].Ctrl.u64), 272 SSMFIELD_ENTRY( CPUMCTX, aWp[11].Value.u64), 273 SSMFIELD_ENTRY( CPUMCTX, aWp[12].Ctrl.u64), 274 SSMFIELD_ENTRY( CPUMCTX, aWp[12].Value.u64), 275 SSMFIELD_ENTRY( CPUMCTX, aWp[13].Ctrl.u64), 276 SSMFIELD_ENTRY( CPUMCTX, aWp[13].Value.u64), 277 SSMFIELD_ENTRY( CPUMCTX, aWp[14].Ctrl.u64), 278 SSMFIELD_ENTRY( CPUMCTX, aWp[14].Value.u64), 279 SSMFIELD_ENTRY( CPUMCTX, aWp[15].Ctrl.u64), 280 SSMFIELD_ENTRY( CPUMCTX, aWp[15].Value.u64), 281 SSMFIELD_ENTRY( CPUMCTX, Mdscr.u64), 282 SSMFIELD_ENTRY( CPUMCTX, Apda.Low.u64), 283 SSMFIELD_ENTRY( CPUMCTX, Apda.High.u64), 284 SSMFIELD_ENTRY( CPUMCTX, Apdb.Low.u64), 285 SSMFIELD_ENTRY( CPUMCTX, Apdb.High.u64), 286 SSMFIELD_ENTRY( CPUMCTX, Apga.Low.u64), 287 SSMFIELD_ENTRY( CPUMCTX, Apga.High.u64), 288 SSMFIELD_ENTRY( CPUMCTX, Apia.Low.u64), 289 SSMFIELD_ENTRY( CPUMCTX, Apia.High.u64), 290 SSMFIELD_ENTRY( CPUMCTX, Apib.Low.u64), 291 SSMFIELD_ENTRY( CPUMCTX, Apib.High.u64), 292 SSMFIELD_ENTRY( CPUMCTX, Afsr0.u64), 293 SSMFIELD_ENTRY( CPUMCTX, Afsr1.u64), 294 SSMFIELD_ENTRY( CPUMCTX, Amair.u64), 295 SSMFIELD_ENTRY( CPUMCTX, CntKCtl.u64), 296 SSMFIELD_ENTRY( CPUMCTX, ContextIdr.u64), 297 SSMFIELD_ENTRY( CPUMCTX, Cpacr.u64), 298 SSMFIELD_ENTRY( CPUMCTX, Csselr.u64), 299 SSMFIELD_ENTRY( CPUMCTX, Esr.u64), 300 SSMFIELD_ENTRY( CPUMCTX, Far.u64), 301 SSMFIELD_ENTRY( CPUMCTX, Mair.u64), 302 SSMFIELD_ENTRY( CPUMCTX, Par.u64), 303 SSMFIELD_ENTRY( CPUMCTX, TpIdrRoEl0.u64), 304 SSMFIELD_ENTRY( CPUMCTX, aTpIdr[0].u64), 305 SSMFIELD_ENTRY( CPUMCTX, aTpIdr[1].u64), 306 SSMFIELD_ENTRY( CPUMCTX, MDccInt.u64), 213 307 SSMFIELD_ENTRY( CPUMCTX, fpcr), 214 308 SSMFIELD_ENTRY( CPUMCTX, fpsr), 215 309 SSMFIELD_ENTRY( CPUMCTX, fPState), 216 /** @todo */ 310 SSMFIELD_ENTRY( CPUMCTX, fOsLck), 311 SSMFIELD_ENTRY( CPUMCTX, CntvCtlEl0), 312 SSMFIELD_ENTRY( CPUMCTX, CntvCValEl0), 217 313 SSMFIELD_ENTRY_TERM() 218 314 }; 219 #endif220 315 221 316 … … 411 506 */ 412 507 SSMR3PutU32(pSSM, pVM->cCpus); 413 /** @todo */ 508 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) 509 { 510 PVMCPU const pVCpu = pVM->apCpusR3[idCpu]; 511 PCPUMCTX const pGstCtx = &pVCpu->cpum.s.Guest; 512 513 SSMR3PutStructEx(pSSM, pGstCtx, sizeof(*pGstCtx), 0, g_aCpumCtxFields, NULL); 514 515 SSMR3PutU32(pSSM, pVCpu->cpum.s.fChanged); 516 } 414 517 return VINF_SUCCESS; 415 518 } … … 435 538 * Validate version. 436 539 */ 437 /** @todo */ RT_NOREF(pSSM, uVersion); 540 if (uVersion != CPUM_SAVED_STATE_VERSION) 541 { 542 AssertMsgFailed(("cpumR3LoadExec: Invalid version uVersion=%d!\n", uVersion)); 543 return VERR_SSM_UNSUPPORTED_DATA_UNIT_VERSION; 544 } 438 545 439 546 if (uPass == SSM_PASS_FINAL) 440 547 { 441 /** @todo */ 548 /* 549 * Do the per-CPU restoring. 550 */ 551 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) 552 { 553 PVMCPU pVCpu = pVM->apCpusR3[idCpu]; 554 PCPUMCTX pGstCtx = &pVCpu->cpum.s.Guest; 555 556 /* 557 * Start by restoring the CPUMCTX structure and the X86FXSAVE bits of the extended state. 558 */ 559 int rc = SSMR3GetStructEx(pSSM, pGstCtx, sizeof(*pGstCtx), 0, g_aCpumCtxFields, NULL); 560 AssertRCReturn(rc, rc); 561 562 /* 563 * Restore a couple of flags. 564 */ 565 SSMR3GetU32(pSSM, &pVCpu->cpum.s.fChanged); 566 } 442 567 } 443 568 … … 496 621 } s_aFlags[] = 497 622 { 498 { NULL, NULL, 0 }, /** @todo */ 623 { "SP", "nSP", ARMV8_SPSR_EL2_AARCH64_SP }, 624 { "M4", "nM4", ARMV8_SPSR_EL2_AARCH64_M4 }, 625 { "T", "nT", ARMV8_SPSR_EL2_AARCH64_T }, 626 { "nF", "F", ARMV8_SPSR_EL2_AARCH64_F }, 627 { "nI", "I", ARMV8_SPSR_EL2_AARCH64_I }, 628 { "nA", "A", ARMV8_SPSR_EL2_AARCH64_A }, 629 { "nD", "D", ARMV8_SPSR_EL2_AARCH64_D }, 630 { "V", "nV", ARMV8_SPSR_EL2_AARCH64_V }, 631 { "C", "nC", ARMV8_SPSR_EL2_AARCH64_C }, 632 { "Z", "nZ", ARMV8_SPSR_EL2_AARCH64_Z }, 633 { "N", "nN", ARMV8_SPSR_EL2_AARCH64_N }, 499 634 }; 500 635 char *psz = pszPState; … … 520 655 * @param pHlp Output functions. 521 656 * @param enmType The dump type. 522 * @param pszPrefix Register name prefix. 523 */ 524 static void cpumR3InfoOne(PVM pVM, PCPUMCTX pCtx, PCDBGFINFOHLP pHlp, CPUMDUMPTYPE enmType, const char *pszPrefix) 525 { 526 RT_NOREF(pVM, pHlp, enmType, pszPrefix); 657 */ 658 static void cpumR3InfoOne(PVM pVM, PCPUMCTX pCtx, PCDBGFINFOHLP pHlp, CPUMDUMPTYPE enmType) 659 { 660 RT_NOREF(pVM); 527 661 528 662 /* … … 532 666 cpumR3InfoFormatPState(&szPState[0], pCtx->fPState); 533 667 534 /** @todo */ 668 /* 669 * Format the registers. 670 */ 671 switch (enmType) 672 { 673 case CPUMDUMPTYPE_TERSE: 674 if (CPUMIsGuestIn64BitCodeEx(pCtx)) 675 pHlp->pfnPrintf(pHlp, 676 "x0=%016RX64 x1=%016RX64 x2=%016RX64 x3=%016RX64\n" 677 "x4=%016RX64 x5=%016RX64 x6=%016RX64 x7=%016RX64\n" 678 "x8=%016RX64 x9=%016RX64 x10=%016RX64 x11=%016RX64\n" 679 "x12=%016RX64 x13=%016RX64 x14=%016RX64 x15=%016RX64\n" 680 "x16=%016RX64 x17=%016RX64 x18=%016RX64 x19=%016RX64\n" 681 "x20=%016RX64 x21=%016RX64 x22=%016RX64 x23=%016RX64\n" 682 "x24=%016RX64 x25=%016RX64 x26=%016RX64 x27=%016RX64\n" 683 "x28=%016RX64 x29=%016RX64 x30=%016RX64\n" 684 "pc=%016RX64 pstate=%016RX64 %s\n" 685 "sp_el0=%016RX64 sp_el1=%016RX64\n", 686 pCtx->aGRegs[0], pCtx->aGRegs[1], pCtx->aGRegs[2], pCtx->aGRegs[3], 687 pCtx->aGRegs[4], pCtx->aGRegs[5], pCtx->aGRegs[6], pCtx->aGRegs[7], 688 pCtx->aGRegs[8], pCtx->aGRegs[9], pCtx->aGRegs[10], pCtx->aGRegs[11], 689 pCtx->aGRegs[12], pCtx->aGRegs[13], pCtx->aGRegs[14], pCtx->aGRegs[15], 690 pCtx->aGRegs[16], pCtx->aGRegs[17], pCtx->aGRegs[18], pCtx->aGRegs[19], 691 pCtx->aGRegs[20], pCtx->aGRegs[21], pCtx->aGRegs[22], pCtx->aGRegs[23], 692 pCtx->aGRegs[24], pCtx->aGRegs[25], pCtx->aGRegs[26], pCtx->aGRegs[27], 693 pCtx->aGRegs[28], pCtx->aGRegs[29], pCtx->aGRegs[30], 694 pCtx->Pc.u64, pCtx->fPState, szPState, 695 pCtx->aSpReg[0].u64, pCtx->aSpReg[1].u64); 696 else 697 AssertFailed(); 698 break; 699 700 case CPUMDUMPTYPE_DEFAULT: 701 if (CPUMIsGuestIn64BitCodeEx(pCtx)) 702 pHlp->pfnPrintf(pHlp, 703 "x0=%016RX64 x1=%016RX64 x2=%016RX64 x3=%016RX64\n" 704 "x4=%016RX64 x5=%016RX64 x6=%016RX64 x7=%016RX64\n" 705 "x8=%016RX64 x9=%016RX64 x10=%016RX64 x11=%016RX64\n" 706 "x12=%016RX64 x13=%016RX64 x14=%016RX64 x15=%016RX64\n" 707 "x16=%016RX64 x17=%016RX64 x18=%016RX64 x19=%016RX64\n" 708 "x20=%016RX64 x21=%016RX64 x22=%016RX64 x23=%016RX64\n" 709 "x24=%016RX64 x25=%016RX64 x26=%016RX64 x27=%016RX64\n" 710 "x28=%016RX64 x29=%016RX64 x30=%016RX64\n" 711 "pc=%016RX64 pstate=%016RX64 %s\n" 712 "sp_el0=%016RX64 sp_el1=%016RX64 sctlr_el1=%016RX64\n" 713 "tcr_el1=%016RX64 ttbr0_el1=%016RX64 ttbr1_el1=%016RX64\n" 714 "vbar_el1=%016RX64 elr_el1=%016RX64 esr_el1=%016RX64\n", 715 pCtx->aGRegs[0], pCtx->aGRegs[1], pCtx->aGRegs[2], pCtx->aGRegs[3], 716 pCtx->aGRegs[4], pCtx->aGRegs[5], pCtx->aGRegs[6], pCtx->aGRegs[7], 717 pCtx->aGRegs[8], pCtx->aGRegs[9], pCtx->aGRegs[10], pCtx->aGRegs[11], 718 pCtx->aGRegs[12], pCtx->aGRegs[13], pCtx->aGRegs[14], pCtx->aGRegs[15], 719 pCtx->aGRegs[16], pCtx->aGRegs[17], pCtx->aGRegs[18], pCtx->aGRegs[19], 720 pCtx->aGRegs[20], pCtx->aGRegs[21], pCtx->aGRegs[22], pCtx->aGRegs[23], 721 pCtx->aGRegs[24], pCtx->aGRegs[25], pCtx->aGRegs[26], pCtx->aGRegs[27], 722 pCtx->aGRegs[28], pCtx->aGRegs[29], pCtx->aGRegs[30], 723 pCtx->Pc.u64, pCtx->fPState, szPState, 724 pCtx->aSpReg[0].u64, pCtx->aSpReg[1].u64, pCtx->Sctlr.u64, 725 pCtx->Tcr.u64, pCtx->Ttbr0.u64, pCtx->Ttbr1.u64, 726 pCtx->VBar.u64, pCtx->Elr.u64, pCtx->Esr.u64); 727 else 728 AssertFailed(); 729 break; 730 731 case CPUMDUMPTYPE_VERBOSE: 732 if (CPUMIsGuestIn64BitCodeEx(pCtx)) 733 pHlp->pfnPrintf(pHlp, 734 "x0=%016RX64 x1=%016RX64 x2=%016RX64 x3=%016RX64\n" 735 "x4=%016RX64 x5=%016RX64 x6=%016RX64 x7=%016RX64\n" 736 "x8=%016RX64 x9=%016RX64 x10=%016RX64 x11=%016RX64\n" 737 "x12=%016RX64 x13=%016RX64 x14=%016RX64 x15=%016RX64\n" 738 "x16=%016RX64 x17=%016RX64 x18=%016RX64 x19=%016RX64\n" 739 "x20=%016RX64 x21=%016RX64 x22=%016RX64 x23=%016RX64\n" 740 "x24=%016RX64 x25=%016RX64 x26=%016RX64 x27=%016RX64\n" 741 "x28=%016RX64 x29=%016RX64 x30=%016RX64\n" 742 "pc=%016RX64 pstate=%016RX64 %s\n" 743 "sp_el0=%016RX64 sp_el1=%016RX64 sctlr_el1=%016RX64\n" 744 "tcr_el1=%016RX64 ttbr0_el1=%016RX64 ttbr1_el1=%016RX64\n" 745 "vbar_el1=%016RX64 elr_el1=%016RX64 esr_el1=%016RX64\n" 746 "contextidr_el1=%016RX64 tpidrr0_el0=%016RX64\n" 747 "tpidr_el0=%016RX64 tpidr_el1=%016RX64\n" 748 "far_el1=%016RX64 mair_el1=%016RX64 par_el1=%016RX64\n" 749 "cntv_ctl_el0=%016RX64 cntv_val_el0=%016RX64\n" 750 "afsr0_el1=%016RX64 afsr0_el1=%016RX64 amair_el1=%016RX64\n" 751 "cntkctl_el1=%016RX64 cpacr_el1=%016RX64 csselr_el1=%016RX64\n" 752 "mdccint_el1=%016RX64\n", 753 pCtx->aGRegs[0], pCtx->aGRegs[1], pCtx->aGRegs[2], pCtx->aGRegs[3], 754 pCtx->aGRegs[4], pCtx->aGRegs[5], pCtx->aGRegs[6], pCtx->aGRegs[7], 755 pCtx->aGRegs[8], pCtx->aGRegs[9], pCtx->aGRegs[10], pCtx->aGRegs[11], 756 pCtx->aGRegs[12], pCtx->aGRegs[13], pCtx->aGRegs[14], pCtx->aGRegs[15], 757 pCtx->aGRegs[16], pCtx->aGRegs[17], pCtx->aGRegs[18], pCtx->aGRegs[19], 758 pCtx->aGRegs[20], pCtx->aGRegs[21], pCtx->aGRegs[22], pCtx->aGRegs[23], 759 pCtx->aGRegs[24], pCtx->aGRegs[25], pCtx->aGRegs[26], pCtx->aGRegs[27], 760 pCtx->aGRegs[28], pCtx->aGRegs[29], pCtx->aGRegs[30], 761 pCtx->Pc.u64, pCtx->fPState, szPState, 762 pCtx->aSpReg[0].u64, pCtx->aSpReg[1].u64, pCtx->Sctlr.u64, 763 pCtx->Tcr.u64, pCtx->Ttbr0.u64, pCtx->Ttbr1.u64, 764 pCtx->VBar.u64, pCtx->Elr.u64, pCtx->Esr.u64, 765 pCtx->ContextIdr.u64, pCtx->TpIdrRoEl0.u64, 766 pCtx->aTpIdr[0].u64, pCtx->aTpIdr[1].u64, 767 pCtx->Far.u64, pCtx->Mair.u64, pCtx->Par.u64, 768 pCtx->CntvCtlEl0, pCtx->CntvCValEl0, 769 pCtx->Afsr0.u64, pCtx->Afsr1.u64, pCtx->Amair.u64, 770 pCtx->CntKCtl.u64, pCtx->Cpacr.u64, pCtx->Csselr.u64, 771 pCtx->MDccInt.u64); 772 else 773 AssertFailed(); 774 775 pHlp->pfnPrintf(pHlp, "fpcr=%016RX64 fpsr=%016RX64\n", pCtx->fpcr, pCtx->fpsr); 776 for (unsigned i = 0; i < RT_ELEMENTS(pCtx->aVRegs); i++) 777 pHlp->pfnPrintf(pHlp, 778 i & 1 779 ? "q%u%s=%08RX32'%08RX32'%08RX32'%08RX32\n" 780 : "q%u%s=%08RX32'%08RX32'%08RX32'%08RX32 ", 781 i, i < 10 ? " " : "", 782 pCtx->aVRegs[i].au32[3], 783 pCtx->aVRegs[i].au32[2], 784 pCtx->aVRegs[i].au32[1], 785 pCtx->aVRegs[i].au32[0]); 786 787 pHlp->pfnPrintf(pHlp, "mdscr_el1=%016RX64\n", pCtx->Mdscr.u64); 788 for (unsigned i = 0; i < RT_ELEMENTS(pCtx->aBp); i++) 789 pHlp->pfnPrintf(pHlp, "DbgBp%u%s: Control=%016RX64 Value=%016RX64\n", 790 i, i < 10 ? " " : "", 791 pCtx->aBp[i].Ctrl, pCtx->aBp[i].Value); 792 793 for (unsigned i = 0; i < RT_ELEMENTS(pCtx->aWp); i++) 794 pHlp->pfnPrintf(pHlp, "DbgWp%u%s: Control=%016RX64 Value=%016RX64\n", 795 i, i < 10 ? " " : "", 796 pCtx->aWp[i].Ctrl, pCtx->aWp[i].Value); 797 798 pHlp->pfnPrintf(pHlp, "APDAKey=%016RX64'%016RX64\n", pCtx->Apda.High.u64, pCtx->Apda.Low.u64); 799 pHlp->pfnPrintf(pHlp, "APDBKey=%016RX64'%016RX64\n", pCtx->Apdb.High.u64, pCtx->Apdb.Low.u64); 800 pHlp->pfnPrintf(pHlp, "APGAKey=%016RX64'%016RX64\n", pCtx->Apga.High.u64, pCtx->Apga.Low.u64); 801 pHlp->pfnPrintf(pHlp, "APIAKey=%016RX64'%016RX64\n", pCtx->Apia.High.u64, pCtx->Apia.Low.u64); 802 pHlp->pfnPrintf(pHlp, "APIBKey=%016RX64'%016RX64\n", pCtx->Apib.High.u64, pCtx->Apib.Low.u64); 803 804 break; 805 } 535 806 } 536 807 … … 611 882 612 883 PCPUMCTX pCtx = &pVCpu->cpum.s.Guest; 613 cpumR3InfoOne(pVM, pCtx, pHlp, enmType , "");884 cpumR3InfoOne(pVM, pCtx, pHlp, enmType); 614 885 } 615 886
Note:
See TracChangeset
for help on using the changeset viewer.