181 |
void cpu_loop(CPUX86State *env) |
void cpu_loop(CPUX86State *env) |
182 |
{ |
{ |
183 |
int trapnr; |
int trapnr; |
184 |
uint8_t *pc; |
target_ulong pc; |
185 |
target_siginfo_t info; |
target_siginfo_t info; |
186 |
|
|
187 |
for(;;) { |
for(;;) { |
440 |
env->wim = new_wim; |
env->wim = new_wim; |
441 |
} |
} |
442 |
|
|
443 |
|
#if 0 |
444 |
static void flush_windows(CPUSPARCState *env) |
static void flush_windows(CPUSPARCState *env) |
445 |
{ |
{ |
446 |
int offset, cwp1; |
int offset, cwp1; |
460 |
offset++; |
offset++; |
461 |
} |
} |
462 |
} |
} |
463 |
|
#endif |
464 |
|
|
465 |
void cpu_loop (CPUSPARCState *env) |
void cpu_loop (CPUSPARCState *env) |
466 |
{ |
{ |
1069 |
env->eip = regs->eip; |
env->eip = regs->eip; |
1070 |
|
|
1071 |
/* linux interrupt setup */ |
/* linux interrupt setup */ |
1072 |
env->idt.base = (void *)idt_table; |
env->idt.base = (long)idt_table; |
1073 |
env->idt.limit = sizeof(idt_table) - 1; |
env->idt.limit = sizeof(idt_table) - 1; |
1074 |
set_idt(0, 0); |
set_idt(0, 0); |
1075 |
set_idt(1, 0); |
set_idt(1, 0); |
1094 |
set_idt(0x80, 3); |
set_idt(0x80, 3); |
1095 |
|
|
1096 |
/* linux segment setup */ |
/* linux segment setup */ |
1097 |
env->gdt.base = (void *)gdt_table; |
env->gdt.base = (long)gdt_table; |
1098 |
env->gdt.limit = sizeof(gdt_table) - 1; |
env->gdt.limit = sizeof(gdt_table) - 1; |
1099 |
write_dt(&gdt_table[__USER_CS >> 3], 0, 0xfffff, |
write_dt(&gdt_table[__USER_CS >> 3], 0, 0xfffff, |
1100 |
DESC_G_MASK | DESC_B_MASK | DESC_P_MASK | DESC_S_MASK | |
DESC_G_MASK | DESC_B_MASK | DESC_P_MASK | DESC_S_MASK | |