target/ppc: Replace POWERPC_EXCP_SYNC with DISAS_EXIT

Remove the synthetic "exception" after no more uses.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br>
Message-Id: <20210512185441.3619828-9-matheus.ferst@eldorado.org.br>
Reviewed-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
Richard Henderson 2021-05-12 15:54:18 -03:00 committed by David Gibson
parent a9b5b3d06c
commit 59bf23faf5
2 changed files with 9 additions and 19 deletions

View File

@ -135,7 +135,6 @@ enum {
POWERPC_EXCP_STOP = 0x200, /* stop translation */ POWERPC_EXCP_STOP = 0x200, /* stop translation */
POWERPC_EXCP_BRANCH = 0x201, /* branch instruction */ POWERPC_EXCP_BRANCH = 0x201, /* branch instruction */
/* QEMU exceptions: special cases we want to stop translation */ /* QEMU exceptions: special cases we want to stop translation */
POWERPC_EXCP_SYNC = 0x202, /* context synchronizing instruction */
POWERPC_EXCP_SYSCALL_USER = 0x203, /* System call in user mode only */ POWERPC_EXCP_SYSCALL_USER = 0x203, /* System call in user mode only */
}; };

View File

@ -362,14 +362,6 @@ static inline void gen_stop_exception(DisasContext *ctx)
ctx->exception = POWERPC_EXCP_STOP; ctx->exception = POWERPC_EXCP_STOP;
} }
#ifndef CONFIG_USER_ONLY
/* No need to update nip here, as execution flow will change */
static inline void gen_sync_exception(DisasContext *ctx)
{
ctx->exception = POWERPC_EXCP_SYNC;
}
#endif
/*****************************************************************************/ /*****************************************************************************/
/* SPR READ/WRITE CALLBACKS */ /* SPR READ/WRITE CALLBACKS */
@ -5032,7 +5024,7 @@ static void gen_rfi(DisasContext *ctx)
} }
gen_update_cfar(ctx, ctx->cia); gen_update_cfar(ctx, ctx->cia);
gen_helper_rfi(cpu_env); gen_helper_rfi(cpu_env);
gen_sync_exception(ctx); ctx->base.is_jmp = DISAS_EXIT;
#endif #endif
} }
@ -5049,7 +5041,7 @@ static void gen_rfid(DisasContext *ctx)
} }
gen_update_cfar(ctx, ctx->cia); gen_update_cfar(ctx, ctx->cia);
gen_helper_rfid(cpu_env); gen_helper_rfid(cpu_env);
gen_sync_exception(ctx); ctx->base.is_jmp = DISAS_EXIT;
#endif #endif
} }
@ -5066,7 +5058,7 @@ static void gen_rfscv(DisasContext *ctx)
} }
gen_update_cfar(ctx, ctx->cia); gen_update_cfar(ctx, ctx->cia);
gen_helper_rfscv(cpu_env); gen_helper_rfscv(cpu_env);
gen_sync_exception(ctx); ctx->base.is_jmp = DISAS_EXIT;
#endif #endif
} }
#endif #endif
@ -5079,7 +5071,7 @@ static void gen_hrfid(DisasContext *ctx)
/* Restore CPU state */ /* Restore CPU state */
CHK_HV; CHK_HV;
gen_helper_hrfid(cpu_env); gen_helper_hrfid(cpu_env);
gen_sync_exception(ctx); ctx->base.is_jmp = DISAS_EXIT;
#endif #endif
} }
#endif #endif
@ -6920,7 +6912,7 @@ static void gen_rfsvc(DisasContext *ctx)
CHK_SV; CHK_SV;
gen_helper_rfsvc(cpu_env); gen_helper_rfsvc(cpu_env);
gen_sync_exception(ctx); ctx->base.is_jmp = DISAS_EXIT;
#endif /* defined(CONFIG_USER_ONLY) */ #endif /* defined(CONFIG_USER_ONLY) */
} }
@ -7300,7 +7292,7 @@ static void gen_rfci_40x(DisasContext *ctx)
CHK_SV; CHK_SV;
/* Restore CPU state */ /* Restore CPU state */
gen_helper_40x_rfci(cpu_env); gen_helper_40x_rfci(cpu_env);
gen_sync_exception(ctx); ctx->base.is_jmp = DISAS_EXIT;
#endif /* defined(CONFIG_USER_ONLY) */ #endif /* defined(CONFIG_USER_ONLY) */
} }
@ -7312,7 +7304,7 @@ static void gen_rfci(DisasContext *ctx)
CHK_SV; CHK_SV;
/* Restore CPU state */ /* Restore CPU state */
gen_helper_rfci(cpu_env); gen_helper_rfci(cpu_env);
gen_sync_exception(ctx); ctx->base.is_jmp = DISAS_EXIT;
#endif /* defined(CONFIG_USER_ONLY) */ #endif /* defined(CONFIG_USER_ONLY) */
} }
@ -7327,7 +7319,7 @@ static void gen_rfdi(DisasContext *ctx)
CHK_SV; CHK_SV;
/* Restore CPU state */ /* Restore CPU state */
gen_helper_rfdi(cpu_env); gen_helper_rfdi(cpu_env);
gen_sync_exception(ctx); ctx->base.is_jmp = DISAS_EXIT;
#endif /* defined(CONFIG_USER_ONLY) */ #endif /* defined(CONFIG_USER_ONLY) */
} }
@ -7340,7 +7332,7 @@ static void gen_rfmci(DisasContext *ctx)
CHK_SV; CHK_SV;
/* Restore CPU state */ /* Restore CPU state */
gen_helper_rfmci(cpu_env); gen_helper_rfmci(cpu_env);
gen_sync_exception(ctx); ctx->base.is_jmp = DISAS_EXIT;
#endif /* defined(CONFIG_USER_ONLY) */ #endif /* defined(CONFIG_USER_ONLY) */
} }
@ -9238,7 +9230,6 @@ static void ppc_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
case POWERPC_EXCP_BRANCH: case POWERPC_EXCP_BRANCH:
ctx->base.is_jmp = DISAS_NORETURN; ctx->base.is_jmp = DISAS_NORETURN;
break; break;
case POWERPC_EXCP_SYNC:
case POWERPC_EXCP_STOP: case POWERPC_EXCP_STOP:
ctx->base.is_jmp = DISAS_EXIT; ctx->base.is_jmp = DISAS_EXIT;
break; break;