Revision 262ffdae target-i386/helper.c
b/target-i386/helper.c | ||
---|---|---|
383 | 383 |
env->idt.limit = 0xffff; |
384 | 384 |
env->gdt.limit = 0xffff; |
385 | 385 |
env->ldt.limit = 0xffff; |
386 |
env->ldt.flags = DESC_P_MASK; |
|
386 |
env->ldt.flags = DESC_P_MASK | (2 << DESC_TYPE_SHIFT);
|
|
387 | 387 |
env->tr.limit = 0xffff; |
388 |
env->tr.flags = DESC_P_MASK; |
|
389 |
|
|
390 |
cpu_x86_load_seg_cache(env, R_CS, 0xf000, 0xffff0000, 0xffff, 0); |
|
391 |
cpu_x86_load_seg_cache(env, R_DS, 0, 0, 0xffff, 0); |
|
392 |
cpu_x86_load_seg_cache(env, R_ES, 0, 0, 0xffff, 0); |
|
393 |
cpu_x86_load_seg_cache(env, R_SS, 0, 0, 0xffff, 0); |
|
394 |
cpu_x86_load_seg_cache(env, R_FS, 0, 0, 0xffff, 0); |
|
395 |
cpu_x86_load_seg_cache(env, R_GS, 0, 0, 0xffff, 0); |
|
388 |
env->tr.flags = DESC_P_MASK | (11 < DESC_TYPE_SHIFT); |
|
389 |
|
|
390 |
cpu_x86_load_seg_cache(env, R_CS, 0xf000, 0xffff0000, 0xffff, |
|
391 |
DESC_P_MASK | DESC_S_MASK | DESC_CS_MASK | DESC_R_MASK); |
|
392 |
cpu_x86_load_seg_cache(env, R_DS, 0, 0, 0xffff, |
|
393 |
DESC_P_MASK | DESC_S_MASK | DESC_W_MASK); |
|
394 |
cpu_x86_load_seg_cache(env, R_ES, 0, 0, 0xffff, |
|
395 |
DESC_P_MASK | DESC_S_MASK | DESC_W_MASK); |
|
396 |
cpu_x86_load_seg_cache(env, R_SS, 0, 0, 0xffff, |
|
397 |
DESC_P_MASK | DESC_S_MASK | DESC_W_MASK); |
|
398 |
cpu_x86_load_seg_cache(env, R_FS, 0, 0, 0xffff, |
|
399 |
DESC_P_MASK | DESC_S_MASK | DESC_W_MASK); |
|
400 |
cpu_x86_load_seg_cache(env, R_GS, 0, 0, 0xffff, |
|
401 |
DESC_P_MASK | DESC_S_MASK | DESC_W_MASK); |
|
396 | 402 |
|
397 | 403 |
env->eip = 0xfff0; |
398 | 404 |
env->regs[R_EDX] = env->cpuid_version; |
Also available in: Unified diff