Index: trunk/src/VBox/VMM/HWACCMInternal.h
===================================================================
--- trunk/src/VBox/VMM/HWACCMInternal.h	(revision 22428)
+++ trunk/src/VBox/VMM/HWACCMInternal.h	(revision 22429)
@@ -847,8 +847,8 @@
 #ifdef VBOX_STRICT
 VMMR0DECL(void) HWACCMDumpRegs(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx);
-VMMR0DECL(void) HWACCMR0DumpDescriptor(PX86DESCHC  Desc, RTSEL Sel, const char *pszMsg);
+VMMR0DECL(void) HWACCMR0DumpDescriptor(PCX86DESCHC pDesc, RTSEL Sel, const char *pszMsg);
 #else
-#define HWACCMDumpRegs(a, b ,c)             do { } while (0)
-#define HWACCMR0DumpDescriptor(a, b, c)     do { } while (0)
+# define HWACCMDumpRegs(a, b ,c)            do { } while (0)
+# define HWACCMR0DumpDescriptor(a, b, c)    do { } while (0)
 #endif
 
Index: trunk/src/VBox/VMM/VMMR0/HWACCMR0.cpp
===================================================================
--- trunk/src/VBox/VMM/VMMR0/HWACCMR0.cpp	(revision 22428)
+++ trunk/src/VBox/VMM/VMMR0/HWACCMR0.cpp	(revision 22429)
@@ -1336,5 +1336,4 @@
 
 #ifdef VBOX_STRICT
-# include <iprt/string.h>
 /**
  * Dumps a descriptor.
@@ -1344,5 +1343,5 @@
  * @param   pszMsg  Message to prepend the log entry with.
  */
-VMMR0DECL(void) HWACCMR0DumpDescriptor(PX86DESCHC pDesc, RTSEL Sel, const char *pszMsg)
+VMMR0DECL(void) HWACCMR0DumpDescriptor(PCX86DESCHC pDesc, RTSEL Sel, const char *pszMsg)
 {
     /*
@@ -1353,5 +1352,5 @@
         unsigned    cch;
         const char *psz;
-    } const aTypes[32] =
+    } const s_aTypes[32] =
     {
 # define STRENTRY(str) { sizeof(str) - 1, str }
@@ -1416,6 +1415,6 @@
     char       *psz = &szMsg[0];
     unsigned    i = pDesc->Gen.u1DescType << 4 | pDesc->Gen.u4Type;
-    memcpy(psz, aTypes[i].psz, aTypes[i].cch);
-    psz += aTypes[i].cch;
+    memcpy(psz, s_aTypes[i].psz, s_aTypes[i].cch);
+    psz += s_aTypes[i].cch;
 
     if (pDesc->Gen.u1Present)
Index: trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp
===================================================================
--- trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp	(revision 22428)
+++ trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp	(revision 22429)
@@ -715,5 +715,5 @@
     else
         ASMBitSet(pMSRBitmap, ulBit);
-    
+
     if (fWrite)
         ASMBitClear(pMSRBitmap + 0x800, ulBit);
@@ -1008,5 +1008,5 @@
         RTGDTR      gdtr;
         RTSEL       SelTR;
-        PX86DESCHC  pDesc;
+        PCX86DESCHC pDesc;
         uintptr_t   trBase;
         RTSEL       cs;
@@ -1109,8 +1109,8 @@
         }
 
+        pDesc = (PCX86DESCHC)(gdtr.pGdt + (SelTR & X86_SEL_MASK));
 #ifdef VBOX_WITH_HYBRID_32BIT_KERNEL
         if (VMX_IS_64BIT_HOST_MODE())
         {
-            pDesc  = &((PX86DESCHC)gdtr.pGdt)[SelTR >> X86_SEL_SHIFT_HC]; /// ????
             uint64_t trBase64 = X86DESC64_BASE(*(PX86DESC64)pDesc);
             rc = VMXWriteVMCS64(VMX_VMCS_HOST_TR_BASE, trBase64);
@@ -1121,5 +1121,4 @@
 #endif
         {
-            pDesc  = &((PX86DESCHC)gdtr.pGdt)[SelTR >> X86_SEL_SHIFT_HC];
 #if HC_ARCH_BITS == 64
             trBase = X86DESC64_BASE(*pDesc);
@@ -4233,5 +4232,5 @@
 #ifdef VBOX_STRICT
             RTGDTR      gdtr;
-            PX86DESCHC  pDesc;
+            PCX86DESCHC pDesc;
             RTCCUINTREG val;
 
@@ -4266,5 +4265,5 @@
             if (val < gdtr.cbGdt)
             {
-                pDesc  = &((PX86DESCHC)gdtr.pGdt)[val >> X86_SEL_SHIFT_HC];
+                pDesc  = (PCX86DESCHC)(gdtr.pGdt + (val & X86_SEL_MASK));
                 HWACCMR0DumpDescriptor(pDesc, val, "CS: ");
             }
@@ -4274,5 +4273,5 @@
             if (val < gdtr.cbGdt)
             {
-                pDesc  = &((PX86DESCHC)gdtr.pGdt)[val >> X86_SEL_SHIFT_HC];
+                pDesc  = (PCX86DESCHC)(gdtr.pGdt + (val & X86_SEL_MASK));
                 HWACCMR0DumpDescriptor(pDesc, val, "DS: ");
             }
@@ -4282,5 +4281,5 @@
             if (val < gdtr.cbGdt)
             {
-                pDesc  = &((PX86DESCHC)gdtr.pGdt)[val >> X86_SEL_SHIFT_HC];
+                pDesc  = (PCX86DESCHC)(gdtr.pGdt + (val & X86_SEL_MASK));
                 HWACCMR0DumpDescriptor(pDesc, val, "ES: ");
             }
@@ -4290,5 +4289,5 @@
             if (val < gdtr.cbGdt)
             {
-                pDesc  = &((PX86DESCHC)gdtr.pGdt)[val >> X86_SEL_SHIFT_HC];
+                pDesc  = (PCX86DESCHC)(gdtr.pGdt + (val & X86_SEL_MASK));
                 HWACCMR0DumpDescriptor(pDesc, val, "FS: ");
             }
@@ -4298,5 +4297,5 @@
             if (val < gdtr.cbGdt)
             {
-                pDesc  = &((PX86DESCHC)gdtr.pGdt)[val >> X86_SEL_SHIFT_HC];
+                pDesc  = (PCX86DESCHC)(gdtr.pGdt + (val & X86_SEL_MASK));
                 HWACCMR0DumpDescriptor(pDesc, val, "GS: ");
             }
@@ -4306,5 +4305,5 @@
             if (val < gdtr.cbGdt)
             {
-                pDesc  = &((PX86DESCHC)gdtr.pGdt)[val >> X86_SEL_SHIFT_HC];
+                pDesc  = (PCX86DESCHC)(gdtr.pGdt + (val & X86_SEL_MASK));
                 HWACCMR0DumpDescriptor(pDesc, val, "SS: ");
             }
@@ -4314,5 +4313,5 @@
             if (val < gdtr.cbGdt)
             {
-                pDesc  = &((PX86DESCHC)gdtr.pGdt)[val >> X86_SEL_SHIFT_HC];
+                pDesc  = (PCX86DESCHC)(gdtr.pGdt + (val & X86_SEL_MASK));
                 HWACCMR0DumpDescriptor(pDesc, val, "TR: ");
             }
