Changeset 12600 in vbox for trunk/src/VBox/VMM/PATM
- Timestamp:
- Sep 19, 2008 1:07:44 PM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 36853
- Location:
- trunk/src/VBox/VMM/PATM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PATM/PATMPatch.cpp
r12285 r12600 1190 1190 pPB[1] = MAKE_MODRM(mod, reg, rm); 1191 1191 1192 /// @todo: make this an array in the context structure 1193 switch (dbgreg) 1194 { 1195 case USE_REG_DR0: 1196 offset = RT_OFFSETOF(CPUMCTX, dr0); 1197 break; 1198 case USE_REG_DR1: 1199 offset = RT_OFFSETOF(CPUMCTX, dr1); 1200 break; 1201 case USE_REG_DR2: 1202 offset = RT_OFFSETOF(CPUMCTX, dr2); 1203 break; 1204 case USE_REG_DR3: 1205 offset = RT_OFFSETOF(CPUMCTX, dr3); 1206 break; 1207 case USE_REG_DR4: 1208 offset = RT_OFFSETOF(CPUMCTX, dr4); 1209 break; 1210 case USE_REG_DR5: 1211 offset = RT_OFFSETOF(CPUMCTX, dr5); 1212 break; 1213 case USE_REG_DR6: 1214 offset = RT_OFFSETOF(CPUMCTX, dr6); 1215 break; 1216 case USE_REG_DR7: 1217 offset = RT_OFFSETOF(CPUMCTX, dr7); 1218 break; 1219 default: /* Shut up compiler warning. */ 1220 AssertFailed(); 1221 offset = 0; 1222 break; 1223 } 1192 AssertReturn(dbgreg <= USE_REG_DR7, VERR_INVALID_PARAMETER); 1193 offset = RT_OFFSETOF(CPUMCTX, dr[dbgreg]); 1194 1224 1195 *(RTRCPTR *)&pPB[2] = pVM->patm.s.pCPUMCtxGC + offset; 1225 1196 patmPatchAddReloc32(pVM, pPatch, &pPB[2], FIXUP_ABSOLUTE); -
trunk/src/VBox/VMM/PATM/PATMSSM.cpp
r11985 r12600 753 753 if (uCPUMOffset == (unsigned)RT_OFFSETOF(CPUMCTX_VER1_6, dr0)) 754 754 { 755 LogFlow(("Changing dr 0 offset from %x to %x\n", uCPUMOffset, RT_OFFSETOF(CPUMCTX, dr0)));756 *pFixup = pVM->patm.s.pCPUMCtxGC + RT_OFFSETOF(CPUMCTX, dr 0);755 LogFlow(("Changing dr[0] offset from %x to %x\n", uCPUMOffset, RT_OFFSETOF(CPUMCTX, dr[0]))); 756 *pFixup = pVM->patm.s.pCPUMCtxGC + RT_OFFSETOF(CPUMCTX, dr[0]); 757 757 } 758 758 else if (uCPUMOffset == (unsigned)RT_OFFSETOF(CPUMCTX_VER1_6, dr1)) 759 759 { 760 LogFlow(("Changing dr 1 offset from %x to %x\n", uCPUMOffset, RT_OFFSETOF(CPUMCTX, dr1)));761 *pFixup = pVM->patm.s.pCPUMCtxGC + RT_OFFSETOF(CPUMCTX, dr 1);760 LogFlow(("Changing dr[1] offset from %x to %x\n", uCPUMOffset, RT_OFFSETOF(CPUMCTX, dr[1]))); 761 *pFixup = pVM->patm.s.pCPUMCtxGC + RT_OFFSETOF(CPUMCTX, dr[1]); 762 762 } 763 763 else if (uCPUMOffset == (unsigned)RT_OFFSETOF(CPUMCTX_VER1_6, dr2)) 764 764 { 765 LogFlow(("Changing dr 2 offset from %x to %x\n", uCPUMOffset, RT_OFFSETOF(CPUMCTX, dr2)));766 *pFixup = pVM->patm.s.pCPUMCtxGC + RT_OFFSETOF(CPUMCTX, dr 2);765 LogFlow(("Changing dr[2] offset from %x to %x\n", uCPUMOffset, RT_OFFSETOF(CPUMCTX, dr[2]))); 766 *pFixup = pVM->patm.s.pCPUMCtxGC + RT_OFFSETOF(CPUMCTX, dr[2]); 767 767 } 768 768 else if (uCPUMOffset == (unsigned)RT_OFFSETOF(CPUMCTX_VER1_6, dr3)) 769 769 { 770 LogFlow(("Changing dr 3 offset from %x to %x\n", uCPUMOffset, RT_OFFSETOF(CPUMCTX, dr3)));771 *pFixup = pVM->patm.s.pCPUMCtxGC + RT_OFFSETOF(CPUMCTX, dr 3);770 LogFlow(("Changing dr[3] offset from %x to %x\n", uCPUMOffset, RT_OFFSETOF(CPUMCTX, dr[3]))); 771 *pFixup = pVM->patm.s.pCPUMCtxGC + RT_OFFSETOF(CPUMCTX, dr[3]); 772 772 } 773 773 else if (uCPUMOffset == (unsigned)RT_OFFSETOF(CPUMCTX_VER1_6, dr4)) 774 774 { 775 LogFlow(("Changing dr 4 offset from %x to %x\n", uCPUMOffset, RT_OFFSETOF(CPUMCTX, dr4)));776 *pFixup = pVM->patm.s.pCPUMCtxGC + RT_OFFSETOF(CPUMCTX, dr 4);775 LogFlow(("Changing dr[4] offset from %x to %x\n", uCPUMOffset, RT_OFFSETOF(CPUMCTX, dr[4]))); 776 *pFixup = pVM->patm.s.pCPUMCtxGC + RT_OFFSETOF(CPUMCTX, dr[4]); 777 777 } 778 778 else if (uCPUMOffset == (unsigned)RT_OFFSETOF(CPUMCTX_VER1_6, dr5)) 779 779 { 780 LogFlow(("Changing dr 5 offset from %x to %x\n", uCPUMOffset, RT_OFFSETOF(CPUMCTX, dr5)));781 *pFixup = pVM->patm.s.pCPUMCtxGC + RT_OFFSETOF(CPUMCTX, dr 5);780 LogFlow(("Changing dr[5] offset from %x to %x\n", uCPUMOffset, RT_OFFSETOF(CPUMCTX, dr[5]))); 781 *pFixup = pVM->patm.s.pCPUMCtxGC + RT_OFFSETOF(CPUMCTX, dr[5]); 782 782 } 783 783 else if (uCPUMOffset == (unsigned)RT_OFFSETOF(CPUMCTX_VER1_6, dr6)) 784 784 { 785 LogFlow(("Changing dr 6 offset from %x to %x\n", uCPUMOffset, RT_OFFSETOF(CPUMCTX, dr6)));786 *pFixup = pVM->patm.s.pCPUMCtxGC + RT_OFFSETOF(CPUMCTX, dr 6);785 LogFlow(("Changing dr[6] offset from %x to %x\n", uCPUMOffset, RT_OFFSETOF(CPUMCTX, dr[6]))); 786 *pFixup = pVM->patm.s.pCPUMCtxGC + RT_OFFSETOF(CPUMCTX, dr[6]); 787 787 } 788 788 else if (uCPUMOffset == (unsigned)RT_OFFSETOF(CPUMCTX_VER1_6, dr7)) 789 789 { 790 LogFlow(("Changing dr 7 offset from %x to %x\n", uCPUMOffset, RT_OFFSETOF(CPUMCTX, dr7)));791 *pFixup = pVM->patm.s.pCPUMCtxGC + RT_OFFSETOF(CPUMCTX, dr 7);790 LogFlow(("Changing dr[7] offset from %x to %x\n", uCPUMOffset, RT_OFFSETOF(CPUMCTX, dr[7]))); 791 *pFixup = pVM->patm.s.pCPUMCtxGC + RT_OFFSETOF(CPUMCTX, dr[7]); 792 792 } 793 793 else if (uCPUMOffset == (unsigned)RT_OFFSETOF(CPUMCTX_VER1_6, cr0))
Note:
See TracChangeset
for help on using the changeset viewer.