mirror of https://gitee.com/openkylin/qemu.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_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_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_3(msa_ctcmsa, void, env, tl, 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_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 */
|
||||
|
||||
|
||||
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) \
|
||||
void helper_msa_ ## FUNC(CPUMIPSState *env, uint32_t wd, uint32_t ws, \
|
||||
uint32_t i8) \
|
||||
|
@ -3874,14 +3877,6 @@ target_ulong helper_msa_cfcmsa(CPUMIPSState *env, uint32_t cs)
|
|||
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,
|
||||
uint32_t rs)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue