diff --git a/target-mips/translate_init.c b/target-mips/translate_init.c index b87d8f3b58a273fad334d6f5354dcc5b131ba7ca..6aacfb7e0ed66c6a763301aa41a5fed8ea7f8ef9 100644 --- a/target-mips/translate_init.c +++ b/target-mips/translate_init.c @@ -65,6 +65,8 @@ struct mips_def_t { int32_t CP0_Config1; int32_t CP0_Config2; int32_t CP0_Config3; + int32_t CP0_Config6; + int32_t CP0_Config7; int32_t CP1_fcr0; }; @@ -83,8 +85,26 @@ static mips_def_t mips_defs[] = .CP1_fcr0 = MIPS_FCR0, }, { - .name = "4KEc", + .name = "4KEcR1", .CP0_PRid = 0x00018400, + .CP0_Config0 = MIPS_CONFIG0, + .CP0_Config1 = MIPS_CONFIG1, + .CP0_Config2 = MIPS_CONFIG2, + .CP0_Config3 = MIPS_CONFIG3, + .CP1_fcr0 = MIPS_FCR0, + }, + { + .name = "4KEc", + .CP0_PRid = 0x00019000, + .CP0_Config0 = MIPS_CONFIG0 | (0x1 << CP0C0_AR), + .CP0_Config1 = MIPS_CONFIG1, + .CP0_Config2 = MIPS_CONFIG2, + .CP0_Config3 = MIPS_CONFIG3, + .CP1_fcr0 = MIPS_FCR0, + }, + { + .name = "24Kc", + .CP0_PRid = 0x00019300, .CP0_Config0 = MIPS_CONFIG0 | (0x1 << CP0C0_AR), .CP0_Config1 = MIPS_CONFIG1, .CP0_Config2 = MIPS_CONFIG2, @@ -153,6 +173,8 @@ int cpu_mips_register (CPUMIPSState *env, mips_def_t *def) env->CP0_Config1 = def->CP0_Config1; env->CP0_Config2 = def->CP0_Config2; env->CP0_Config3 = def->CP0_Config3; + env->CP0_Config6 = def->CP0_Config6; + env->CP0_Config7 = def->CP0_Config7; env->fcr0 = def->CP1_fcr0; return 0; }