@ -7612,7 +7612,7 @@ static void gen_mfc0(DisasContext *ctx, TCGv arg, int reg, int sel)
register_name = " PageMask " ;
register_name = " PageMask " ;
break ;
break ;
case CP0_REG05__PAGEGRAIN :
case CP0_REG05__PAGEGRAIN :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_PageGrain ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_PageGrain ) ) ;
register_name = " PageGrain " ;
register_name = " PageGrain " ;
break ;
break ;
@ -7660,27 +7660,27 @@ static void gen_mfc0(DisasContext *ctx, TCGv arg, int reg, int sel)
register_name = " Wired " ;
register_name = " Wired " ;
break ;
break ;
case CP0_REG06__SRSCONF0 :
case CP0_REG06__SRSCONF0 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf0 ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf0 ) ) ;
register_name = " SRSConf0 " ;
register_name = " SRSConf0 " ;
break ;
break ;
case CP0_REG06__SRSCONF1 :
case CP0_REG06__SRSCONF1 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf1 ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf1 ) ) ;
register_name = " SRSConf1 " ;
register_name = " SRSConf1 " ;
break ;
break ;
case CP0_REG06__SRSCONF2 :
case CP0_REG06__SRSCONF2 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf2 ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf2 ) ) ;
register_name = " SRSConf2 " ;
register_name = " SRSConf2 " ;
break ;
break ;
case CP0_REG06__SRSCONF3 :
case CP0_REG06__SRSCONF3 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf3 ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf3 ) ) ;
register_name = " SRSConf3 " ;
register_name = " SRSConf3 " ;
break ;
break ;
case CP0_REG06__SRSCONF4 :
case CP0_REG06__SRSCONF4 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf4 ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf4 ) ) ;
register_name = " SRSConf4 " ;
register_name = " SRSConf4 " ;
break ;
break ;
@ -7696,7 +7696,7 @@ static void gen_mfc0(DisasContext *ctx, TCGv arg, int reg, int sel)
case CP0_REGISTER_07 :
case CP0_REGISTER_07 :
switch ( sel ) {
switch ( sel ) {
case CP0_REG07__HWRENA :
case CP0_REG07__HWRENA :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_HWREna ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_HWREna ) ) ;
register_name = " HWREna " ;
register_name = " HWREna " ;
break ;
break ;
@ -7791,17 +7791,17 @@ static void gen_mfc0(DisasContext *ctx, TCGv arg, int reg, int sel)
register_name = " Status " ;
register_name = " Status " ;
break ;
break ;
case CP0_REG12__INTCTL :
case CP0_REG12__INTCTL :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_IntCtl ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_IntCtl ) ) ;
register_name = " IntCtl " ;
register_name = " IntCtl " ;
break ;
break ;
case CP0_REG12__SRSCTL :
case CP0_REG12__SRSCTL :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSCtl ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSCtl ) ) ;
register_name = " SRSCtl " ;
register_name = " SRSCtl " ;
break ;
break ;
case CP0_REG12__SRSMAP :
case CP0_REG12__SRSMAP :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSMap ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSMap ) ) ;
register_name = " SRSMap " ;
register_name = " SRSMap " ;
break ;
break ;
@ -7837,13 +7837,13 @@ static void gen_mfc0(DisasContext *ctx, TCGv arg, int reg, int sel)
register_name = " PRid " ;
register_name = " PRid " ;
break ;
break ;
case CP0_REG15__EBASE :
case CP0_REG15__EBASE :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
tcg_gen_ld_tl ( arg , cpu_env , offsetof ( CPUMIPSState , CP0_EBase ) ) ;
tcg_gen_ld_tl ( arg , cpu_env , offsetof ( CPUMIPSState , CP0_EBase ) ) ;
tcg_gen_ext32s_tl ( arg , arg ) ;
tcg_gen_ext32s_tl ( arg , arg ) ;
register_name = " EBase " ;
register_name = " EBase " ;
break ;
break ;
case CP0_REG15__CMGCRBASE :
case CP0_REG15__CMGCRBASE :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
CP0_CHECK ( ctx - > cmgcr ) ;
CP0_CHECK ( ctx - > cmgcr ) ;
tcg_gen_ld_tl ( arg , cpu_env , offsetof ( CPUMIPSState , CP0_CMGCRBase ) ) ;
tcg_gen_ld_tl ( arg , cpu_env , offsetof ( CPUMIPSState , CP0_CMGCRBase ) ) ;
tcg_gen_ext32s_tl ( arg , arg ) ;
tcg_gen_ext32s_tl ( arg , arg ) ;
@ -8357,7 +8357,7 @@ static void gen_mtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
register_name = " PageMask " ;
register_name = " PageMask " ;
break ;
break ;
case CP0_REG05__PAGEGRAIN :
case CP0_REG05__PAGEGRAIN :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_pagegrain ( cpu_env , arg ) ;
gen_helper_mtc0_pagegrain ( cpu_env , arg ) ;
register_name = " PageGrain " ;
register_name = " PageGrain " ;
ctx - > base . is_jmp = DISAS_STOP ;
ctx - > base . is_jmp = DISAS_STOP ;
@ -8403,27 +8403,27 @@ static void gen_mtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
register_name = " Wired " ;
register_name = " Wired " ;
break ;
break ;
case CP0_REG06__SRSCONF0 :
case CP0_REG06__SRSCONF0 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_srsconf0 ( cpu_env , arg ) ;
gen_helper_mtc0_srsconf0 ( cpu_env , arg ) ;
register_name = " SRSConf0 " ;
register_name = " SRSConf0 " ;
break ;
break ;
case CP0_REG06__SRSCONF1 :
case CP0_REG06__SRSCONF1 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_srsconf1 ( cpu_env , arg ) ;
gen_helper_mtc0_srsconf1 ( cpu_env , arg ) ;
register_name = " SRSConf1 " ;
register_name = " SRSConf1 " ;
break ;
break ;
case CP0_REG06__SRSCONF2 :
case CP0_REG06__SRSCONF2 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_srsconf2 ( cpu_env , arg ) ;
gen_helper_mtc0_srsconf2 ( cpu_env , arg ) ;
register_name = " SRSConf2 " ;
register_name = " SRSConf2 " ;
break ;
break ;
case CP0_REG06__SRSCONF3 :
case CP0_REG06__SRSCONF3 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_srsconf3 ( cpu_env , arg ) ;
gen_helper_mtc0_srsconf3 ( cpu_env , arg ) ;
register_name = " SRSConf3 " ;
register_name = " SRSConf3 " ;
break ;
break ;
case CP0_REG06__SRSCONF4 :
case CP0_REG06__SRSCONF4 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_srsconf4 ( cpu_env , arg ) ;
gen_helper_mtc0_srsconf4 ( cpu_env , arg ) ;
register_name = " SRSConf4 " ;
register_name = " SRSConf4 " ;
break ;
break ;
@ -8439,7 +8439,7 @@ static void gen_mtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
case CP0_REGISTER_07 :
case CP0_REGISTER_07 :
switch ( sel ) {
switch ( sel ) {
case CP0_REG07__HWRENA :
case CP0_REG07__HWRENA :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_hwrena ( cpu_env , arg ) ;
gen_helper_mtc0_hwrena ( cpu_env , arg ) ;
ctx - > base . is_jmp = DISAS_STOP ;
ctx - > base . is_jmp = DISAS_STOP ;
register_name = " HWREna " ;
register_name = " HWREna " ;
@ -8522,21 +8522,21 @@ static void gen_mtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
register_name = " Status " ;
register_name = " Status " ;
break ;
break ;
case CP0_REG12__INTCTL :
case CP0_REG12__INTCTL :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_intctl ( cpu_env , arg ) ;
gen_helper_mtc0_intctl ( cpu_env , arg ) ;
/* Stop translation as we may have switched the execution mode */
/* Stop translation as we may have switched the execution mode */
ctx - > base . is_jmp = DISAS_STOP ;
ctx - > base . is_jmp = DISAS_STOP ;
register_name = " IntCtl " ;
register_name = " IntCtl " ;
break ;
break ;
case CP0_REG12__SRSCTL :
case CP0_REG12__SRSCTL :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_srsctl ( cpu_env , arg ) ;
gen_helper_mtc0_srsctl ( cpu_env , arg ) ;
/* Stop translation as we may have switched the execution mode */
/* Stop translation as we may have switched the execution mode */
ctx - > base . is_jmp = DISAS_STOP ;
ctx - > base . is_jmp = DISAS_STOP ;
register_name = " SRSCtl " ;
register_name = " SRSCtl " ;
break ;
break ;
case CP0_REG12__SRSMAP :
case CP0_REG12__SRSMAP :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mtc0_store32 ( arg , offsetof ( CPUMIPSState , CP0_SRSMap ) ) ;
gen_mtc0_store32 ( arg , offsetof ( CPUMIPSState , CP0_SRSMap ) ) ;
/* Stop translation as we may have switched the execution mode */
/* Stop translation as we may have switched the execution mode */
ctx - > base . is_jmp = DISAS_STOP ;
ctx - > base . is_jmp = DISAS_STOP ;
@ -8581,7 +8581,7 @@ static void gen_mtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
register_name = " PRid " ;
register_name = " PRid " ;
break ;
break ;
case CP0_REG15__EBASE :
case CP0_REG15__EBASE :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_ebase ( cpu_env , arg ) ;
gen_helper_mtc0_ebase ( cpu_env , arg ) ;
register_name = " EBase " ;
register_name = " EBase " ;
break ;
break ;
@ -9120,7 +9120,7 @@ static void gen_dmfc0(DisasContext *ctx, TCGv arg, int reg, int sel)
register_name = " PageMask " ;
register_name = " PageMask " ;
break ;
break ;
case CP0_REG05__PAGEGRAIN :
case CP0_REG05__PAGEGRAIN :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_PageGrain ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_PageGrain ) ) ;
register_name = " PageGrain " ;
register_name = " PageGrain " ;
break ;
break ;
@ -9165,27 +9165,27 @@ static void gen_dmfc0(DisasContext *ctx, TCGv arg, int reg, int sel)
register_name = " Wired " ;
register_name = " Wired " ;
break ;
break ;
case CP0_REG06__SRSCONF0 :
case CP0_REG06__SRSCONF0 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf0 ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf0 ) ) ;
register_name = " SRSConf0 " ;
register_name = " SRSConf0 " ;
break ;
break ;
case CP0_REG06__SRSCONF1 :
case CP0_REG06__SRSCONF1 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf1 ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf1 ) ) ;
register_name = " SRSConf1 " ;
register_name = " SRSConf1 " ;
break ;
break ;
case CP0_REG06__SRSCONF2 :
case CP0_REG06__SRSCONF2 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf2 ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf2 ) ) ;
register_name = " SRSConf2 " ;
register_name = " SRSConf2 " ;
break ;
break ;
case CP0_REG06__SRSCONF3 :
case CP0_REG06__SRSCONF3 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf3 ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf3 ) ) ;
register_name = " SRSConf3 " ;
register_name = " SRSConf3 " ;
break ;
break ;
case CP0_REG06__SRSCONF4 :
case CP0_REG06__SRSCONF4 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf4 ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSConf4 ) ) ;
register_name = " SRSConf4 " ;
register_name = " SRSConf4 " ;
break ;
break ;
@ -9201,7 +9201,7 @@ static void gen_dmfc0(DisasContext *ctx, TCGv arg, int reg, int sel)
case CP0_REGISTER_07 :
case CP0_REGISTER_07 :
switch ( sel ) {
switch ( sel ) {
case CP0_REG07__HWRENA :
case CP0_REG07__HWRENA :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_HWREna ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_HWREna ) ) ;
register_name = " HWREna " ;
register_name = " HWREna " ;
break ;
break ;
@ -9294,17 +9294,17 @@ static void gen_dmfc0(DisasContext *ctx, TCGv arg, int reg, int sel)
register_name = " Status " ;
register_name = " Status " ;
break ;
break ;
case CP0_REG12__INTCTL :
case CP0_REG12__INTCTL :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_IntCtl ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_IntCtl ) ) ;
register_name = " IntCtl " ;
register_name = " IntCtl " ;
break ;
break ;
case CP0_REG12__SRSCTL :
case CP0_REG12__SRSCTL :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSCtl ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSCtl ) ) ;
register_name = " SRSCtl " ;
register_name = " SRSCtl " ;
break ;
break ;
case CP0_REG12__SRSMAP :
case CP0_REG12__SRSMAP :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSMap ) ) ;
gen_mfc0_load32 ( arg , offsetof ( CPUMIPSState , CP0_SRSMap ) ) ;
register_name = " SRSMap " ;
register_name = " SRSMap " ;
break ;
break ;
@ -9339,12 +9339,12 @@ static void gen_dmfc0(DisasContext *ctx, TCGv arg, int reg, int sel)
register_name = " PRid " ;
register_name = " PRid " ;
break ;
break ;
case CP0_REG15__EBASE :
case CP0_REG15__EBASE :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
tcg_gen_ld_tl ( arg , cpu_env , offsetof ( CPUMIPSState , CP0_EBase ) ) ;
tcg_gen_ld_tl ( arg , cpu_env , offsetof ( CPUMIPSState , CP0_EBase ) ) ;
register_name = " EBase " ;
register_name = " EBase " ;
break ;
break ;
case CP0_REG15__CMGCRBASE :
case CP0_REG15__CMGCRBASE :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
CP0_CHECK ( ctx - > cmgcr ) ;
CP0_CHECK ( ctx - > cmgcr ) ;
tcg_gen_ld_tl ( arg , cpu_env , offsetof ( CPUMIPSState , CP0_CMGCRBase ) ) ;
tcg_gen_ld_tl ( arg , cpu_env , offsetof ( CPUMIPSState , CP0_CMGCRBase ) ) ;
register_name = " CMGCRBase " ;
register_name = " CMGCRBase " ;
@ -9847,7 +9847,7 @@ static void gen_dmtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
register_name = " PageMask " ;
register_name = " PageMask " ;
break ;
break ;
case CP0_REG05__PAGEGRAIN :
case CP0_REG05__PAGEGRAIN :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_pagegrain ( cpu_env , arg ) ;
gen_helper_mtc0_pagegrain ( cpu_env , arg ) ;
register_name = " PageGrain " ;
register_name = " PageGrain " ;
break ;
break ;
@ -9892,27 +9892,27 @@ static void gen_dmtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
register_name = " Wired " ;
register_name = " Wired " ;
break ;
break ;
case CP0_REG06__SRSCONF0 :
case CP0_REG06__SRSCONF0 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_srsconf0 ( cpu_env , arg ) ;
gen_helper_mtc0_srsconf0 ( cpu_env , arg ) ;
register_name = " SRSConf0 " ;
register_name = " SRSConf0 " ;
break ;
break ;
case CP0_REG06__SRSCONF1 :
case CP0_REG06__SRSCONF1 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_srsconf1 ( cpu_env , arg ) ;
gen_helper_mtc0_srsconf1 ( cpu_env , arg ) ;
register_name = " SRSConf1 " ;
register_name = " SRSConf1 " ;
break ;
break ;
case CP0_REG06__SRSCONF2 :
case CP0_REG06__SRSCONF2 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_srsconf2 ( cpu_env , arg ) ;
gen_helper_mtc0_srsconf2 ( cpu_env , arg ) ;
register_name = " SRSConf2 " ;
register_name = " SRSConf2 " ;
break ;
break ;
case CP0_REG06__SRSCONF3 :
case CP0_REG06__SRSCONF3 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_srsconf3 ( cpu_env , arg ) ;
gen_helper_mtc0_srsconf3 ( cpu_env , arg ) ;
register_name = " SRSConf3 " ;
register_name = " SRSConf3 " ;
break ;
break ;
case CP0_REG06__SRSCONF4 :
case CP0_REG06__SRSCONF4 :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_srsconf4 ( cpu_env , arg ) ;
gen_helper_mtc0_srsconf4 ( cpu_env , arg ) ;
register_name = " SRSConf4 " ;
register_name = " SRSConf4 " ;
break ;
break ;
@ -9928,7 +9928,7 @@ static void gen_dmtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
case CP0_REGISTER_07 :
case CP0_REGISTER_07 :
switch ( sel ) {
switch ( sel ) {
case CP0_REG07__HWRENA :
case CP0_REG07__HWRENA :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_hwrena ( cpu_env , arg ) ;
gen_helper_mtc0_hwrena ( cpu_env , arg ) ;
ctx - > base . is_jmp = DISAS_STOP ;
ctx - > base . is_jmp = DISAS_STOP ;
register_name = " HWREna " ;
register_name = " HWREna " ;
@ -10015,21 +10015,21 @@ static void gen_dmtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
register_name = " Status " ;
register_name = " Status " ;
break ;
break ;
case CP0_REG12__INTCTL :
case CP0_REG12__INTCTL :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_intctl ( cpu_env , arg ) ;
gen_helper_mtc0_intctl ( cpu_env , arg ) ;
/* Stop translation as we may have switched the execution mode */
/* Stop translation as we may have switched the execution mode */
ctx - > base . is_jmp = DISAS_STOP ;
ctx - > base . is_jmp = DISAS_STOP ;
register_name = " IntCtl " ;
register_name = " IntCtl " ;
break ;
break ;
case CP0_REG12__SRSCTL :
case CP0_REG12__SRSCTL :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_srsctl ( cpu_env , arg ) ;
gen_helper_mtc0_srsctl ( cpu_env , arg ) ;
/* Stop translation as we may have switched the execution mode */
/* Stop translation as we may have switched the execution mode */
ctx - > base . is_jmp = DISAS_STOP ;
ctx - > base . is_jmp = DISAS_STOP ;
register_name = " SRSCtl " ;
register_name = " SRSCtl " ;
break ;
break ;
case CP0_REG12__SRSMAP :
case CP0_REG12__SRSMAP :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_mtc0_store32 ( arg , offsetof ( CPUMIPSState , CP0_SRSMap ) ) ;
gen_mtc0_store32 ( arg , offsetof ( CPUMIPSState , CP0_SRSMap ) ) ;
/* Stop translation as we may have switched the execution mode */
/* Stop translation as we may have switched the execution mode */
ctx - > base . is_jmp = DISAS_STOP ;
ctx - > base . is_jmp = DISAS_STOP ;
@ -10074,7 +10074,7 @@ static void gen_dmtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
register_name = " PRid " ;
register_name = " PRid " ;
break ;
break ;
case CP0_REG15__EBASE :
case CP0_REG15__EBASE :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_helper_mtc0_ebase ( cpu_env , arg ) ;
gen_helper_mtc0_ebase ( cpu_env , arg ) ;
register_name = " EBase " ;
register_name = " EBase " ;
break ;
break ;
@ -13453,7 +13453,7 @@ static void gen_rdhwr(DisasContext *ctx, int rt, int rd, int sel)
* The Linux kernel will emulate rdhwr if it ' s not supported natively .
* The Linux kernel will emulate rdhwr if it ' s not supported natively .
* Therefore only check the ISA in system mode .
* Therefore only check the ISA in system mode .
*/
*/
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
# endif
# endif
t0 = tcg_temp_new ( ) ;
t0 = tcg_temp_new ( ) ;
@ -16269,12 +16269,12 @@ static void gen_pool32axf(CPUMIPSState *env, DisasContext *ctx, int rt, int rs)
switch ( minor ) {
switch ( minor ) {
case RDPGPR :
case RDPGPR :
check_cp0_enabled ( ctx ) ;
check_cp0_enabled ( ctx ) ;
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_load_srsgpr ( rs , rt ) ;
gen_load_srsgpr ( rs , rt ) ;
break ;
break ;
case WRPGPR :
case WRPGPR :
check_cp0_enabled ( ctx ) ;
check_cp0_enabled ( ctx ) ;
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_store_srsgpr ( rs , rt ) ;
gen_store_srsgpr ( rs , rt ) ;
break ;
break ;
default :
default :
@ -24984,7 +24984,7 @@ static void decode_opc_special(CPUMIPSState *env, DisasContext *ctx)
switch ( ( ctx - > opcode > > 21 ) & 0x1f ) {
switch ( ( ctx - > opcode > > 21 ) & 0x1f ) {
case 1 :
case 1 :
/* rotr is decoded as srl on non-R2 CPUs */
/* rotr is decoded as srl on non-R2 CPUs */
if ( ctx - > insn_flags & ISA_MIPS32 R2 ) {
if ( ctx - > insn_flags & ISA_MIPS_ R2 ) {
op1 = OPC_ROTR ;
op1 = OPC_ROTR ;
}
}
/* Fallthrough */
/* Fallthrough */
@ -25010,7 +25010,7 @@ static void decode_opc_special(CPUMIPSState *env, DisasContext *ctx)
switch ( ( ctx - > opcode > > 6 ) & 0x1f ) {
switch ( ( ctx - > opcode > > 6 ) & 0x1f ) {
case 1 :
case 1 :
/* rotrv is decoded as srlv on non-R2 CPUs */
/* rotrv is decoded as srlv on non-R2 CPUs */
if ( ctx - > insn_flags & ISA_MIPS32 R2 ) {
if ( ctx - > insn_flags & ISA_MIPS_ R2 ) {
op1 = OPC_ROTRV ;
op1 = OPC_ROTRV ;
}
}
/* Fallthrough */
/* Fallthrough */
@ -25083,7 +25083,7 @@ static void decode_opc_special(CPUMIPSState *env, DisasContext *ctx)
switch ( ( ctx - > opcode > > 21 ) & 0x1f ) {
switch ( ( ctx - > opcode > > 21 ) & 0x1f ) {
case 1 :
case 1 :
/* drotr is decoded as dsrl on non-R2 CPUs */
/* drotr is decoded as dsrl on non-R2 CPUs */
if ( ctx - > insn_flags & ISA_MIPS32 R2 ) {
if ( ctx - > insn_flags & ISA_MIPS_ R2 ) {
op1 = OPC_DROTR ;
op1 = OPC_DROTR ;
}
}
/* Fallthrough */
/* Fallthrough */
@ -25101,7 +25101,7 @@ static void decode_opc_special(CPUMIPSState *env, DisasContext *ctx)
switch ( ( ctx - > opcode > > 21 ) & 0x1f ) {
switch ( ( ctx - > opcode > > 21 ) & 0x1f ) {
case 1 :
case 1 :
/* drotr32 is decoded as dsrl32 on non-R2 CPUs */
/* drotr32 is decoded as dsrl32 on non-R2 CPUs */
if ( ctx - > insn_flags & ISA_MIPS32 R2 ) {
if ( ctx - > insn_flags & ISA_MIPS_ R2 ) {
op1 = OPC_DROTR32 ;
op1 = OPC_DROTR32 ;
}
}
/* Fallthrough */
/* Fallthrough */
@ -25133,7 +25133,7 @@ static void decode_opc_special(CPUMIPSState *env, DisasContext *ctx)
switch ( ( ctx - > opcode > > 6 ) & 0x1f ) {
switch ( ( ctx - > opcode > > 6 ) & 0x1f ) {
case 1 :
case 1 :
/* drotrv is decoded as dsrlv on non-R2 CPUs */
/* drotrv is decoded as dsrlv on non-R2 CPUs */
if ( ctx - > insn_flags & ISA_MIPS32 R2 ) {
if ( ctx - > insn_flags & ISA_MIPS_ R2 ) {
op1 = OPC_DROTRV ;
op1 = OPC_DROTRV ;
}
}
/* Fallthrough */
/* Fallthrough */
@ -28594,7 +28594,7 @@ static void decode_opc_special3(CPUMIPSState *env, DisasContext *ctx)
switch ( op1 ) {
switch ( op1 ) {
case OPC_EXT :
case OPC_EXT :
case OPC_INS :
case OPC_INS :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_bitops ( ctx , op1 , rt , rs , sa , rd ) ;
gen_bitops ( ctx , op1 , rt , rs , sa , rd ) ;
break ;
break ;
case OPC_BSHFL :
case OPC_BSHFL :
@ -28609,7 +28609,7 @@ static void decode_opc_special3(CPUMIPSState *env, DisasContext *ctx)
decode_opc_special3_r6 ( env , ctx ) ;
decode_opc_special3_r6 ( env , ctx ) ;
break ;
break ;
default :
default :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_bshfl ( ctx , op2 , rt , rd ) ;
gen_bshfl ( ctx , op2 , rt , rd ) ;
break ;
break ;
}
}
@ -28621,7 +28621,7 @@ static void decode_opc_special3(CPUMIPSState *env, DisasContext *ctx)
case OPC_DINSM :
case OPC_DINSM :
case OPC_DINSU :
case OPC_DINSU :
case OPC_DINS :
case OPC_DINS :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
check_mips_64 ( ctx ) ;
check_mips_64 ( ctx ) ;
gen_bitops ( ctx , op1 , rt , rs , sa , rd ) ;
gen_bitops ( ctx , op1 , rt , rs , sa , rd ) ;
break ;
break ;
@ -28641,7 +28641,7 @@ static void decode_opc_special3(CPUMIPSState *env, DisasContext *ctx)
decode_opc_special3_r6 ( env , ctx ) ;
decode_opc_special3_r6 ( env , ctx ) ;
break ;
break ;
default :
default :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
check_mips_64 ( ctx ) ;
check_mips_64 ( ctx ) ;
op2 = MASK_DBSHFL ( ctx - > opcode ) ;
op2 = MASK_DBSHFL ( ctx - > opcode ) ;
gen_bshfl ( ctx , op2 , rt , rd ) ;
gen_bshfl ( ctx , op2 , rt , rd ) ;
@ -30741,7 +30741,7 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
generate_exception_end ( ctx , EXCP_RI ) ;
generate_exception_end ( ctx , EXCP_RI ) ;
break ;
break ;
case OPC_SYNCI :
case OPC_SYNCI :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
/*
/*
* Break the TB to be able to sync copied instructions
* Break the TB to be able to sync copied instructions
* immediately .
* immediately .
@ -30858,7 +30858,7 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
}
}
break ;
break ;
case OPC_DI :
case OPC_DI :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
save_cpu_state ( ctx , 1 ) ;
save_cpu_state ( ctx , 1 ) ;
gen_helper_di ( t0 , cpu_env ) ;
gen_helper_di ( t0 , cpu_env ) ;
gen_store_gpr ( t0 , rt ) ;
gen_store_gpr ( t0 , rt ) ;
@ -30869,7 +30869,7 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
ctx - > base . is_jmp = DISAS_STOP ;
ctx - > base . is_jmp = DISAS_STOP ;
break ;
break ;
case OPC_EI :
case OPC_EI :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
save_cpu_state ( ctx , 1 ) ;
save_cpu_state ( ctx , 1 ) ;
gen_helper_ei ( t0 , cpu_env ) ;
gen_helper_ei ( t0 , cpu_env ) ;
gen_store_gpr ( t0 , rt ) ;
gen_store_gpr ( t0 , rt ) ;
@ -30890,11 +30890,11 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
# endif /* !CONFIG_USER_ONLY */
# endif /* !CONFIG_USER_ONLY */
break ;
break ;
case OPC_RDPGPR :
case OPC_RDPGPR :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_load_srsgpr ( rt , rd ) ;
gen_load_srsgpr ( rt , rd ) ;
break ;
break ;
case OPC_WRPGPR :
case OPC_WRPGPR :
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
gen_store_srsgpr ( rt , rd ) ;
gen_store_srsgpr ( rt , rd ) ;
break ;
break ;
default :
default :
@ -31056,7 +31056,7 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
case OPC_MFHC1 :
case OPC_MFHC1 :
case OPC_MTHC1 :
case OPC_MTHC1 :
check_cp1_enabled ( ctx ) ;
check_cp1_enabled ( ctx ) ;
check_insn ( ctx , ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS_ R2 ) ;
/* fall through */
/* fall through */
case OPC_MFC1 :
case OPC_MFC1 :
case OPC_CFC1 :
case OPC_CFC1 :
@ -31250,21 +31250,21 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
switch ( op1 ) {
switch ( op1 ) {
case OPC_LUXC1 :
case OPC_LUXC1 :
case OPC_SUXC1 :
case OPC_SUXC1 :
check_insn ( ctx , ISA_MIPS5 | ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS5 | ISA_MIPS_ R2 ) ;
/* Fallthrough */
/* Fallthrough */
case OPC_LWXC1 :
case OPC_LWXC1 :
case OPC_LDXC1 :
case OPC_LDXC1 :
case OPC_SWXC1 :
case OPC_SWXC1 :
case OPC_SDXC1 :
case OPC_SDXC1 :
check_insn ( ctx , ISA_MIPS4 | ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS4 | ISA_MIPS_ R2 ) ;
gen_flt3_ldst ( ctx , op1 , sa , rd , rs , rt ) ;
gen_flt3_ldst ( ctx , op1 , sa , rd , rs , rt ) ;
break ;
break ;
case OPC_PREFX :
case OPC_PREFX :
check_insn ( ctx , ISA_MIPS4 | ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS4 | ISA_MIPS_ R2 ) ;
/* Treat as NOP. */
/* Treat as NOP. */
break ;
break ;
case OPC_ALNV_PS :
case OPC_ALNV_PS :
check_insn ( ctx , ISA_MIPS5 | ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS5 | ISA_MIPS_ R2 ) ;
/* Fallthrough */
/* Fallthrough */
case OPC_MADD_S :
case OPC_MADD_S :
case OPC_MADD_D :
case OPC_MADD_D :
@ -31278,7 +31278,7 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
case OPC_NMSUB_S :
case OPC_NMSUB_S :
case OPC_NMSUB_D :
case OPC_NMSUB_D :
case OPC_NMSUB_PS :
case OPC_NMSUB_PS :
check_insn ( ctx , ISA_MIPS4 | ISA_MIPS32 R2 ) ;
check_insn ( ctx , ISA_MIPS4 | ISA_MIPS_ R2 ) ;
gen_flt3_arith ( ctx , op1 , sa , rs , rd , rt ) ;
gen_flt3_arith ( ctx , op1 , sa , rs , rd , rt ) ;
break ;
break ;
default :
default :