target: e2k: Remove cond from ct helpers.

This commit is contained in:
Denis Drakhnia 2020-11-19 22:59:16 +02:00 committed by Denis Drakhnia
parent 61ab4472e6
commit ccb76dde93
3 changed files with 6 additions and 14 deletions

View File

@ -215,16 +215,12 @@ static inline void do_syscall(CPUE2KState *env, int call_wbs)
reset_ctprs(env);
}
target_ulong helper_jump(CPUE2KState *env, target_ulong cond, uint64_t ctpr)
target_ulong helper_jump(CPUE2KState *env, uint64_t ctpr)
{
int ctpr_tag = GET_FIELD(ctpr, CTPR_TAG_OFF, CTPR_TAG_END);
helper_save_cpu_state(env);
if (!cond) {
return env->nip;
}
switch (ctpr_tag) {
case CTPR_TAG_RETURN:
return do_return(env);
@ -237,17 +233,13 @@ target_ulong helper_jump(CPUE2KState *env, target_ulong cond, uint64_t ctpr)
}
}
target_ulong helper_call(CPUE2KState *env, target_ulong cond, uint64_t ctpr,
target_ulong helper_call(CPUE2KState *env, uint64_t ctpr,
int call_wbs)
{
int ctpr_tag = GET_FIELD(ctpr, CTPR_TAG_OFF, CTPR_TAG_END);
helper_save_cpu_state(env);
if (!cond) {
return env->nip;
}
switch (ctpr_tag) {
case CTPR_TAG_DISP:
do_call(env, call_wbs);

View File

@ -1,8 +1,8 @@
DEF_HELPER_1(save_cpu_state, void, env)
DEF_HELPER_1(unimpl, noreturn, env)
DEF_HELPER_2(raise_exception, noreturn, env, int)
DEF_HELPER_3(jump, tl, env, tl, i64)
DEF_HELPER_4(call, tl, env, tl, i64, int)
DEF_HELPER_2(jump, tl, env, i64)
DEF_HELPER_3(call, tl, env, i64, int)
DEF_HELPER_2(sxt, i64, i64, i64)
DEF_HELPER_1(debug_i32, void, i32)
DEF_HELPER_1(debug_i64, void, i64)

View File

@ -326,13 +326,13 @@ static inline void do_branch(DisasContext *ctx)
break;
case CT_JUMP:
gen_save_cpu_state(ctx);
gen_helper_jump(e2k_cs.pc, cpu_env, e2k_cs.ct_cond, ctx->ct.u.ctpr);
gen_helper_jump(e2k_cs.pc, cpu_env, ctx->ct.u.ctpr);
tcg_gen_lookup_and_goto_ptr();
break;
case CT_CALL: {
TCGv_i32 wbs = tcg_const_i32(ctx->ct.wbs);
gen_save_cpu_state(ctx);
gen_helper_call(e2k_cs.pc, cpu_env, e2k_cs.ct_cond, ctx->ct.u.ctpr, wbs);
gen_helper_call(e2k_cs.pc, cpu_env, ctx->ct.u.ctpr, wbs);
tcg_temp_free_i32(wbs);
tcg_gen_lookup_and_goto_ptr();
break;