/[qemu]/qemu/op-i386.c
ViewVC logotype

Diff of /qemu/op-i386.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.25 by bellard, Thu May 8 15:39:48 2003 UTC revision 1.26 by bellard, Sat May 10 12:39:11 2003 UTC
# Line 654  void OPPROTO op_sti(void) Line 654  void OPPROTO op_sti(void)
654      env->eflags |= IF_MASK;      env->eflags |= IF_MASK;
655  }  }
656    
657    #if 0
658  /* vm86plus instructions */  /* vm86plus instructions */
   
659  void OPPROTO op_cli_vm(void)  void OPPROTO op_cli_vm(void)
660  {  {
661      env->eflags &= ~VIF_MASK;      env->eflags &= ~VIF_MASK;
# Line 670  void OPPROTO op_sti_vm(void) Line 670  void OPPROTO op_sti_vm(void)
670      }      }
671      FORCE_RET();      FORCE_RET();
672  }  }
673    #endif
674    
675  void OPPROTO op_boundw(void)  void OPPROTO op_boundw(void)
676  {  {
# Line 939  void helper_cpuid(void) Line 940  void helper_cpuid(void)
940          EAX = 0x52b;          EAX = 0x52b;
941          EBX = 0;          EBX = 0;
942          ECX = 0;          ECX = 0;
943          EDX = CPUID_FP87 | CPUID_VME | CPUID_DE | CPUID_PSE |          EDX = CPUID_FP87 | CPUID_DE | CPUID_PSE |
944              CPUID_TSC | CPUID_MSR | CPUID_MCE |              CPUID_TSC | CPUID_MSR | CPUID_MCE |
945              CPUID_CX8;              CPUID_CX8;
946      }      }
# Line 1091  void load_seg(int seg_reg, int selector) Line 1092  void load_seg(int seg_reg, int selector)
1092      uint32_t e1, e2;      uint32_t e1, e2;
1093      uint8_t *ptr;      uint8_t *ptr;
1094    
     env->segs[seg_reg] = selector;  
1095      sc = &env->seg_cache[seg_reg];      sc = &env->seg_cache[seg_reg];
1096      if (env->eflags & VM_MASK) {      if (env->eflags & VM_MASK) {
1097          sc->base = (void *)(selector << 4);          sc->base = (void *)(selector << 4);
# Line 1118  void load_seg(int seg_reg, int selector) Line 1118  void load_seg(int seg_reg, int selector)
1118                  selector, (unsigned long)sc->base, sc->limit, sc->seg_32bit);                  selector, (unsigned long)sc->base, sc->limit, sc->seg_32bit);
1119  #endif  #endif
1120      }      }
1121        env->segs[seg_reg] = selector;
1122  }  }
1123    
1124  void OPPROTO op_movl_seg_T0(void)  void OPPROTO op_movl_seg_T0(void)
# Line 1317  void OPPROTO op_movw_eflags_T0(void) Line 1318  void OPPROTO op_movw_eflags_T0(void)
1318      env->eflags = (env->eflags & ~FL_UPDATE_MASK16) | (eflags & FL_UPDATE_MASK16);      env->eflags = (env->eflags & ~FL_UPDATE_MASK16) | (eflags & FL_UPDATE_MASK16);
1319  }  }
1320    
1321  /* vm86 version */  #if 0
1322    /* vm86plus version */
1323  void OPPROTO op_movw_eflags_T0_vm(void)  void OPPROTO op_movw_eflags_T0_vm(void)
1324  {  {
1325      int eflags;      int eflags;
# Line 1355  void OPPROTO op_movl_eflags_T0_vm(void) Line 1357  void OPPROTO op_movl_eflags_T0_vm(void)
1357      }      }
1358      FORCE_RET();      FORCE_RET();
1359  }  }
1360    #endif
1361    
1362  /* XXX: compute only O flag */  /* XXX: compute only O flag */
1363  void OPPROTO op_movb_eflags_T0(void)  void OPPROTO op_movb_eflags_T0(void)
# Line 1373  void OPPROTO op_movl_T0_eflags(void) Line 1376  void OPPROTO op_movl_T0_eflags(void)
1376      T0 = eflags;      T0 = eflags;
1377  }  }
1378    
1379  /* vm86 version */  /* vm86plus version */
1380    #if 0
1381  void OPPROTO op_movl_T0_eflags_vm(void)  void OPPROTO op_movl_T0_eflags_vm(void)
1382  {  {
1383      int eflags;      int eflags;
# Line 1384  void OPPROTO op_movl_T0_eflags_vm(void) Line 1388  void OPPROTO op_movl_T0_eflags_vm(void)
1388          eflags |= IF_MASK;          eflags |= IF_MASK;
1389      T0 = eflags;      T0 = eflags;
1390  }  }
1391    #endif
1392    
1393  void OPPROTO op_cld(void)  void OPPROTO op_cld(void)
1394  {  {

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.26

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26