mirror of https://github.com/xemu-project/xemu.git
target/mips: msa: Simplify and move helper for MOVE.V
Achieves clearer code and slightly better performance. Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com> Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com> Message-Id: <1569415572-19635-20-git-send-email-aleksandar.markovic@rt-rk.com>
This commit is contained in:
parent
a6387ea5de
commit
26f0e079a0
|
@ -887,6 +887,7 @@ DEF_HELPER_4(msa_mod_s_h, void, env, i32, i32, i32)
|
||||||
DEF_HELPER_4(msa_mod_s_w, void, env, i32, i32, i32)
|
DEF_HELPER_4(msa_mod_s_w, void, env, i32, i32, i32)
|
||||||
DEF_HELPER_4(msa_mod_s_d, void, env, i32, i32, i32)
|
DEF_HELPER_4(msa_mod_s_d, void, env, i32, i32, i32)
|
||||||
|
|
||||||
|
DEF_HELPER_3(msa_move_v, void, env, i32, i32)
|
||||||
|
|
||||||
DEF_HELPER_4(msa_andi_b, void, env, i32, i32, i32)
|
DEF_HELPER_4(msa_andi_b, void, env, i32, i32, i32)
|
||||||
DEF_HELPER_4(msa_ori_b, void, env, i32, i32, i32)
|
DEF_HELPER_4(msa_ori_b, void, env, i32, i32, i32)
|
||||||
|
@ -977,7 +978,6 @@ DEF_HELPER_5(msa_splati_df, void, env, i32, i32, i32, i32)
|
||||||
DEF_HELPER_5(msa_insve_df, void, env, i32, i32, i32, i32)
|
DEF_HELPER_5(msa_insve_df, void, env, i32, i32, i32, i32)
|
||||||
DEF_HELPER_3(msa_ctcmsa, void, env, tl, i32)
|
DEF_HELPER_3(msa_ctcmsa, void, env, tl, i32)
|
||||||
DEF_HELPER_2(msa_cfcmsa, tl, env, i32)
|
DEF_HELPER_2(msa_cfcmsa, tl, env, i32)
|
||||||
DEF_HELPER_3(msa_move_v, void, env, i32, i32)
|
|
||||||
|
|
||||||
DEF_HELPER_5(msa_fcaf_df, void, env, i32, i32, i32, i32)
|
DEF_HELPER_5(msa_fcaf_df, void, env, i32, i32, i32, i32)
|
||||||
DEF_HELPER_5(msa_fcun_df, void, env, i32, i32, i32, i32)
|
DEF_HELPER_5(msa_fcun_df, void, env, i32, i32, i32, i32)
|
||||||
|
|
|
@ -2022,7 +2022,19 @@ void helper_msa_mod_u_d(CPUMIPSState *env,
|
||||||
* +---------------+----------------------------------------------------------+
|
* +---------------+----------------------------------------------------------+
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* TODO: insert Move group helpers here */
|
static inline void msa_move_v(wr_t *pwd, wr_t *pws)
|
||||||
|
{
|
||||||
|
pwd->d[0] = pws->d[0];
|
||||||
|
pwd->d[1] = pws->d[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
void helper_msa_move_v(CPUMIPSState *env, uint32_t wd, uint32_t ws)
|
||||||
|
{
|
||||||
|
wr_t *pwd = &(env->active_fpu.fpr[wd].wr);
|
||||||
|
wr_t *pws = &(env->active_fpu.fpr[ws].wr);
|
||||||
|
|
||||||
|
msa_move_v(pwd, pws);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -2079,15 +2091,6 @@ void helper_msa_mod_u_d(CPUMIPSState *env,
|
||||||
/* TODO: insert Shift group helpers here */
|
/* TODO: insert Shift group helpers here */
|
||||||
|
|
||||||
|
|
||||||
static inline void msa_move_v(wr_t *pwd, wr_t *pws)
|
|
||||||
{
|
|
||||||
uint32_t i;
|
|
||||||
|
|
||||||
for (i = 0; i < DF_ELEMENTS(DF_DOUBLE); i++) {
|
|
||||||
pwd->d[i] = pws->d[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#define MSA_FN_IMM8(FUNC, DEST, OPERATION) \
|
#define MSA_FN_IMM8(FUNC, DEST, OPERATION) \
|
||||||
void helper_msa_ ## FUNC(CPUMIPSState *env, uint32_t wd, uint32_t ws, \
|
void helper_msa_ ## FUNC(CPUMIPSState *env, uint32_t wd, uint32_t ws, \
|
||||||
uint32_t i8) \
|
uint32_t i8) \
|
||||||
|
@ -3874,14 +3877,6 @@ target_ulong helper_msa_cfcmsa(CPUMIPSState *env, uint32_t cs)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void helper_msa_move_v(CPUMIPSState *env, uint32_t wd, uint32_t ws)
|
|
||||||
{
|
|
||||||
wr_t *pwd = &(env->active_fpu.fpr[wd].wr);
|
|
||||||
wr_t *pws = &(env->active_fpu.fpr[ws].wr);
|
|
||||||
|
|
||||||
msa_move_v(pwd, pws);
|
|
||||||
}
|
|
||||||
|
|
||||||
void helper_msa_fill_df(CPUMIPSState *env, uint32_t df, uint32_t wd,
|
void helper_msa_fill_df(CPUMIPSState *env, uint32_t df, uint32_t wd,
|
||||||
uint32_t rs)
|
uint32_t rs)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue