Index: /trunk/src/VBox/VMM/VMMAll/IEMAll.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/IEMAll.cpp	(revision 61898)
+++ /trunk/src/VBox/VMM/VMMAll/IEMAll.cpp	(revision 61899)
@@ -5288,31 +5288,20 @@
     PCPUMCTX pCtx = pIemCpu->CTX_SUFF(pCtx);
 
+    pCtx->eflags.Bits.u1RF = 0;
+
+    AssertCompile(IEMMODE_16BIT == 0 && IEMMODE_32BIT == 1 && IEMMODE_64BIT == 2);
 #if ARCH_BITS >= 64
-    AssertCompile(IEMMODE_16BIT == 0 && IEMMODE_32BIT == 1 && IEMMODE_64BIT == 2);
     static uint64_t const s_aRipMasks[] = { UINT64_C(0xffff), UINT64_C(0xffffffff), UINT64_MAX };
     Assert(pCtx->rip <= s_aRipMasks[(unsigned)pIemCpu->enmCpuMode]);
     pCtx->rip = (pCtx->rip + cbInstr) & s_aRipMasks[(unsigned)pIemCpu->enmCpuMode];
 #else
-    switch (pIemCpu->enmCpuMode)
-    {
-        case IEMMODE_16BIT:
-            Assert(pCtx->rip <= UINT16_MAX);
-            pCtx->ip += cbInstr;
-            break;
-
-        case IEMMODE_32BIT:
-            Assert(pCtx->rip <= UINT32_MAX);
-            pCtx->eip += cbInstr;
-            break;
-
-        case IEMMODE_64BIT:
-            pCtx->rip += cbInstr;
-            break;
-
-        default: AssertFailed();
-    }
-#endif
-
-    pCtx->eflags.Bits.u1RF = 0;
+    if (pIemCpu->enmCpuMode == IEMMODE_64BIT)
+        pCtx->rip += cbInstr;
+    else
+    {
+        static uint32_t const s_aEipMasks[] = { UINT32_C(0xffff), UINT32_MAX };
+        pCtx->eip = (pCtx->eip + cbInstr) & s_aEipMasks[(unsigned)pIemCpu->enmCpuMode];
+    }
+#endif
 }
 
