Revision 51cc2e78 target-mips/translate_init.c
b/target-mips/translate_init.c | ||
---|---|---|
481 | 481 |
default: |
482 | 482 |
cpu_abort(env, "MMU type not supported\n"); |
483 | 483 |
} |
484 |
env->CP0_Random = env->tlb->nb_tlb - 1; |
|
485 |
env->tlb->tlb_in_use = env->tlb->nb_tlb; |
|
486 | 484 |
} |
487 | 485 |
#endif /* CONFIG_USER_ONLY */ |
488 | 486 |
|
... | ... | |
530 | 528 |
(0x0 << CP0MVPC1_PCX) | (0x0 << CP0MVPC1_PCP2) | |
531 | 529 |
(0x1 << CP0MVPC1_PCP1); |
532 | 530 |
} |
533 |
|
|
534 |
static int cpu_mips_register (CPUMIPSState *env, const mips_def_t *def) |
|
535 |
{ |
|
536 |
env->CP0_PRid = def->CP0_PRid; |
|
537 |
env->CP0_Config0 = def->CP0_Config0; |
|
538 |
#ifdef TARGET_WORDS_BIGENDIAN |
|
539 |
env->CP0_Config0 |= (1 << CP0C0_BE); |
|
540 |
#endif |
|
541 |
env->CP0_Config1 = def->CP0_Config1; |
|
542 |
env->CP0_Config2 = def->CP0_Config2; |
|
543 |
env->CP0_Config3 = def->CP0_Config3; |
|
544 |
env->CP0_Config6 = def->CP0_Config6; |
|
545 |
env->CP0_Config7 = def->CP0_Config7; |
|
546 |
env->SYNCI_Step = def->SYNCI_Step; |
|
547 |
env->CCRes = def->CCRes; |
|
548 |
env->CP0_Status_rw_bitmask = def->CP0_Status_rw_bitmask; |
|
549 |
env->CP0_TCStatus_rw_bitmask = def->CP0_TCStatus_rw_bitmask; |
|
550 |
env->CP0_SRSCtl = def->CP0_SRSCtl; |
|
551 |
env->current_tc = 0; |
|
552 |
env->SEGBITS = def->SEGBITS; |
|
553 |
env->SEGMask = (target_ulong)((1ULL << def->SEGBITS) - 1); |
|
554 |
#if defined(TARGET_MIPS64) |
|
555 |
if (def->insn_flags & ISA_MIPS3) { |
|
556 |
env->hflags |= MIPS_HFLAG_64; |
|
557 |
env->SEGMask |= 3ULL << 62; |
|
558 |
} |
|
559 |
#endif |
|
560 |
env->PABITS = def->PABITS; |
|
561 |
env->PAMask = (target_ulong)((1ULL << def->PABITS) - 1); |
|
562 |
env->CP0_SRSConf0_rw_bitmask = def->CP0_SRSConf0_rw_bitmask; |
|
563 |
env->CP0_SRSConf0 = def->CP0_SRSConf0; |
|
564 |
env->CP0_SRSConf1_rw_bitmask = def->CP0_SRSConf1_rw_bitmask; |
|
565 |
env->CP0_SRSConf1 = def->CP0_SRSConf1; |
|
566 |
env->CP0_SRSConf2_rw_bitmask = def->CP0_SRSConf2_rw_bitmask; |
|
567 |
env->CP0_SRSConf2 = def->CP0_SRSConf2; |
|
568 |
env->CP0_SRSConf3_rw_bitmask = def->CP0_SRSConf3_rw_bitmask; |
|
569 |
env->CP0_SRSConf3 = def->CP0_SRSConf3; |
|
570 |
env->CP0_SRSConf4_rw_bitmask = def->CP0_SRSConf4_rw_bitmask; |
|
571 |
env->CP0_SRSConf4 = def->CP0_SRSConf4; |
|
572 |
env->insn_flags = def->insn_flags; |
|
573 |
|
|
574 |
#ifndef CONFIG_USER_ONLY |
|
575 |
mmu_init(env, def); |
|
576 |
#endif |
|
577 |
fpu_init(env, def); |
|
578 |
mvp_init(env, def); |
|
579 |
return 0; |
|
580 |
} |
Also available in: Unified diff