Commit 3acace1333d6b75628fe6e6786ad3cd2db766f0e

Authored by bellard
1 parent 0221cfcd

removed unnecessary VME support - fixed selector GPF exception


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@140 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 10 additions and 5 deletions
op-i386.c
... ... @@ -654,8 +654,8 @@ void OPPROTO op_sti(void)
654 654 env->eflags |= IF_MASK;
655 655 }
656 656  
  657 +#if 0
657 658 /* vm86plus instructions */
658   -
659 659 void OPPROTO op_cli_vm(void)
660 660 {
661 661 env->eflags &= ~VIF_MASK;
... ... @@ -670,6 +670,7 @@ void OPPROTO op_sti_vm(void)
670 670 }
671 671 FORCE_RET();
672 672 }
  673 +#endif
673 674  
674 675 void OPPROTO op_boundw(void)
675 676 {
... ... @@ -939,7 +940,7 @@ void helper_cpuid(void)
939 940 EAX = 0x52b;
940 941 EBX = 0;
941 942 ECX = 0;
942   - EDX = CPUID_FP87 | CPUID_VME | CPUID_DE | CPUID_PSE |
  943 + EDX = CPUID_FP87 | CPUID_DE | CPUID_PSE |
943 944 CPUID_TSC | CPUID_MSR | CPUID_MCE |
944 945 CPUID_CX8;
945 946 }
... ... @@ -1091,7 +1092,6 @@ void load_seg(int seg_reg, int selector)
1091 1092 uint32_t e1, e2;
1092 1093 uint8_t *ptr;
1093 1094  
1094   - env->segs[seg_reg] = selector;
1095 1095 sc = &env->seg_cache[seg_reg];
1096 1096 if (env->eflags & VM_MASK) {
1097 1097 sc->base = (void *)(selector << 4);
... ... @@ -1118,6 +1118,7 @@ void load_seg(int seg_reg, int selector)
1118 1118 selector, (unsigned long)sc->base, sc->limit, sc->seg_32bit);
1119 1119 #endif
1120 1120 }
  1121 + env->segs[seg_reg] = selector;
1121 1122 }
1122 1123  
1123 1124 void OPPROTO op_movl_seg_T0(void)
... ... @@ -1317,7 +1318,8 @@ void OPPROTO op_movw_eflags_T0(void)
1317 1318 env->eflags = (env->eflags & ~FL_UPDATE_MASK16) | (eflags & FL_UPDATE_MASK16);
1318 1319 }
1319 1320  
1320   -/* vm86 version */
  1321 +#if 0
  1322 +/* vm86plus version */
1321 1323 void OPPROTO op_movw_eflags_T0_vm(void)
1322 1324 {
1323 1325 int eflags;
... ... @@ -1355,6 +1357,7 @@ void OPPROTO op_movl_eflags_T0_vm(void)
1355 1357 }
1356 1358 FORCE_RET();
1357 1359 }
  1360 +#endif
1358 1361  
1359 1362 /* XXX: compute only O flag */
1360 1363 void OPPROTO op_movb_eflags_T0(void)
... ... @@ -1373,7 +1376,8 @@ void OPPROTO op_movl_T0_eflags(void)
1373 1376 T0 = eflags;
1374 1377 }
1375 1378  
1376   -/* vm86 version */
  1379 +/* vm86plus version */
  1380 +#if 0
1377 1381 void OPPROTO op_movl_T0_eflags_vm(void)
1378 1382 {
1379 1383 int eflags;
... ... @@ -1384,6 +1388,7 @@ void OPPROTO op_movl_T0_eflags_vm(void)
1384 1388 eflags |= IF_MASK;
1385 1389 T0 = eflags;
1386 1390 }
  1391 +#endif
1387 1392  
1388 1393 void OPPROTO op_cld(void)
1389 1394 {
... ...