mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-09-08 16:07:39 -06:00
target/mips: msa: Split helpers for HADD_<S|U>.<H|W|D>
Achieves clearer code and slightly better performance. Reviewed-by: Aleksandar Rikalo <aleksandar.rikalo@rt-rk.com> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com> Message-Id: <1571826227-10583-9-git-send-email-aleksandar.markovic@rt-rk.com>
This commit is contained in:
parent
c65ca134d7
commit
dc0af9312b
3 changed files with 141 additions and 32 deletions
|
@ -28990,6 +28990,32 @@ static void gen_msa_3r(CPUMIPSState *env, DisasContext *ctx)
|
|||
break;
|
||||
}
|
||||
switch (MASK_MSA_3R(ctx->opcode)) {
|
||||
case OPC_HADD_S_df:
|
||||
switch (df) {
|
||||
case DF_HALF:
|
||||
gen_helper_msa_hadd_s_h(cpu_env, twd, tws, twt);
|
||||
break;
|
||||
case DF_WORD:
|
||||
gen_helper_msa_hadd_s_w(cpu_env, twd, tws, twt);
|
||||
break;
|
||||
case DF_DOUBLE:
|
||||
gen_helper_msa_hadd_s_d(cpu_env, twd, tws, twt);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case OPC_HADD_U_df:
|
||||
switch (df) {
|
||||
case DF_HALF:
|
||||
gen_helper_msa_hadd_u_h(cpu_env, twd, tws, twt);
|
||||
break;
|
||||
case DF_WORD:
|
||||
gen_helper_msa_hadd_u_w(cpu_env, twd, tws, twt);
|
||||
break;
|
||||
case DF_DOUBLE:
|
||||
gen_helper_msa_hadd_u_d(cpu_env, twd, tws, twt);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case OPC_DOTP_S_df:
|
||||
gen_helper_msa_dotp_s_df(cpu_env, tdf, twd, tws, twt);
|
||||
break;
|
||||
|
@ -29005,15 +29031,9 @@ static void gen_msa_3r(CPUMIPSState *env, DisasContext *ctx)
|
|||
case OPC_DPSUB_S_df:
|
||||
gen_helper_msa_dpsub_s_df(cpu_env, tdf, twd, tws, twt);
|
||||
break;
|
||||
case OPC_HADD_S_df:
|
||||
gen_helper_msa_hadd_s_df(cpu_env, tdf, twd, tws, twt);
|
||||
break;
|
||||
case OPC_DPSUB_U_df:
|
||||
gen_helper_msa_dpsub_u_df(cpu_env, tdf, twd, tws, twt);
|
||||
break;
|
||||
case OPC_HADD_U_df:
|
||||
gen_helper_msa_hadd_u_df(cpu_env, tdf, twd, tws, twt);
|
||||
break;
|
||||
case OPC_HSUB_S_df:
|
||||
gen_helper_msa_hsub_s_df(cpu_env, tdf, twd, tws, twt);
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue