Changeset 70697 in vbox
- Timestamp:
- Jan 23, 2018 4:47:29 AM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 120434
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-2-template.c
r70696 r70697 877 877 if (fSupportsFsGsBase) 878 878 { 879 uint64_t uBaseAddr;879 uint64_t const uBaseAddr = ASMRdMsr(idxFsGsBaseMsr); 880 880 881 881 /* CR4.FSGSBASE disabled -> #UD. */ … … 884 884 885 885 /* Read and verify existing base address. */ 886 uBaseAddr = ASMRdMsr(idxFsGsBaseMsr);887 886 Ctx.rbx.u = 0; 888 887 Ctx.cr4.u |= X86_CR4_FSGSBASE; … … 905 904 } 906 905 906 /* Restore original base address. */ 907 ASMWrMsr(idxFsGsBaseMsr, uBaseAddr); 908 907 909 /* Clean used GPRs. */ 908 910 Ctx.rbx.u = 0; … … 920 922 921 923 static void bs3CpuInstr2_wrfsbase_wrgsbase_Common(uint8_t bMode, BS3CI2FSGSBASE const *paFsGsBaseWorkers, 922 unsigned cFsGsBaseWorkers )924 unsigned cFsGsBaseWorkers, uint32_t idxFsGsBaseMsr) 923 925 { 924 926 BS3REGCTX Ctx; … … 949 951 if (fSupportsFsGsBase) 950 952 { 953 uint64_t const uBaseAddr = ASMRdMsr(idxFsGsBaseMsr); 954 951 955 /* CR4.FSGSBASE disabled -> #UD. */ 952 956 Ctx.cr4.u &= ~X86_CR4_FSGSBASE; … … 973 977 } 974 978 979 /* Restore original base address. */ 980 ASMWrMsr(idxFsGsBaseMsr, uBaseAddr); 981 975 982 /* Clean used GPRs. */ 976 983 Ctx.rbx.u = 0; … … 989 996 BS3_DECL_FAR(uint8_t) BS3_CMN_NM(bs3CpuInstr2_wrfsbase)(uint8_t bMode) 990 997 { 991 bs3CpuInstr2_wrfsbase_wrgsbase_Common(bMode, s_aWrFsBaseWorkers, RT_ELEMENTS(s_aWrFsBaseWorkers) );998 bs3CpuInstr2_wrfsbase_wrgsbase_Common(bMode, s_aWrFsBaseWorkers, RT_ELEMENTS(s_aWrFsBaseWorkers), MSR_K8_FS_BASE); 992 999 return 0; 993 1000 } … … 996 1003 BS3_DECL_FAR(uint8_t) BS3_CMN_NM(bs3CpuInstr2_wrgsbase)(uint8_t bMode) 997 1004 { 998 bs3CpuInstr2_wrfsbase_wrgsbase_Common(bMode, s_aWrGsBaseWorkers, RT_ELEMENTS(s_aWrGsBaseWorkers) );1005 bs3CpuInstr2_wrfsbase_wrgsbase_Common(bMode, s_aWrGsBaseWorkers, RT_ELEMENTS(s_aWrGsBaseWorkers), MSR_K8_FS_BASE); 999 1006 return 0; 1000 1007 }
Note:
See TracChangeset
for help on using the changeset viewer.