Revision aaed909a target-m68k/translate.c
b/target-m68k/translate.c | ||
---|---|---|
3279 | 3279 |
return gen_intermediate_code_internal(env, tb, 1); |
3280 | 3280 |
} |
3281 | 3281 |
|
3282 |
void cpu_reset(CPUM68KState *env) |
|
3283 |
{ |
|
3284 |
memset(env, 0, offsetof(CPUM68KState, breakpoints)); |
|
3285 |
#if !defined (CONFIG_USER_ONLY) |
|
3286 |
env->sr = 0x2700; |
|
3287 |
#endif |
|
3288 |
m68k_switch_sp(env); |
|
3289 |
/* ??? FP regs should be initialized to NaN. */ |
|
3290 |
env->cc_op = CC_OP_FLAGS; |
|
3291 |
/* TODO: We should set PC from the interrupt vector. */ |
|
3292 |
env->pc = 0; |
|
3293 |
tlb_flush(env, 1); |
|
3294 |
} |
|
3295 |
|
|
3296 |
CPUM68KState *cpu_m68k_init(void) |
|
3297 |
{ |
|
3298 |
CPUM68KState *env; |
|
3299 |
|
|
3300 |
env = malloc(sizeof(CPUM68KState)); |
|
3301 |
if (!env) |
|
3302 |
return NULL; |
|
3303 |
cpu_exec_init(env); |
|
3304 |
|
|
3305 |
cpu_reset(env); |
|
3306 |
return env; |
|
3307 |
} |
|
3308 |
|
|
3309 |
void cpu_m68k_close(CPUM68KState *env) |
|
3310 |
{ |
|
3311 |
free(env); |
|
3312 |
} |
|
3313 |
|
|
3314 | 3282 |
void cpu_dump_state(CPUState *env, FILE *f, |
3315 | 3283 |
int (*cpu_fprintf)(FILE *f, const char *fmt, ...), |
3316 | 3284 |
int flags) |
Also available in: Unified diff