Revision b6d78bfa cpu-exec.c

b/cpu-exec.c
244 244
                           (unsigned long)env->segs[R_ES].base |
245 245
                           (unsigned long)env->segs[R_SS].base) != 0) << 
246 246
                    GEN_FLAG_ADDSEG_SHIFT;
247
                if (env->cr[0] & CR0_PE_MASK) {
248
                    if (!(env->eflags & VM_MASK))
249
                        flags |= (env->segs[R_CS].selector & 3) << 
250
                            GEN_FLAG_CPL_SHIFT;
251
                    else
252
                        flags |= (1 << GEN_FLAG_VM_SHIFT);
253
                }
247
                flags |= env->cpl << GEN_FLAG_CPL_SHIFT;
248
                flags |= (env->eflags & VM_MASK) >> (17 - GEN_FLAG_VM_SHIFT);
254 249
                flags |= (env->eflags & (IOPL_MASK | TF_MASK));
255 250
                cs_base = env->segs[R_CS].base;
256 251
                pc = cs_base + env->eip;

Also available in: Unified diff