target/mips: Do not treat msa INSERT as NOP when wd is zero
Only for msa COPY_U/COPY_S with wd zero, we treat it as NOP.
Move this special rule into COPY_U and COPY_S trans function.
Fixes: 97fe675519
("target/mips: Convert MSA COPY_S and INSERT opcodes to decodetree")
Signed-off-by: Ni Hui <shuizhuyuanluo@126.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20220503130708.272850-4-shuizhuyuanluo@126.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
This commit is contained in:
parent
4b532b4f2b
commit
ead0bf0d33
|
@ -603,11 +603,6 @@ static bool trans_msa_elm_fn(DisasContext *ctx, arg_msa_elm_df *a,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (a->wd == 0) {
|
|
||||||
/* Treat as NOP. */
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
gen_msa_elm[a->df](cpu_env,
|
gen_msa_elm[a->df](cpu_env,
|
||||||
tcg_constant_i32(a->wd),
|
tcg_constant_i32(a->wd),
|
||||||
tcg_constant_i32(a->ws),
|
tcg_constant_i32(a->ws),
|
||||||
|
@ -624,6 +619,11 @@ static bool trans_msa_elm_fn(DisasContext *ctx, arg_msa_elm_df *a,
|
||||||
|
|
||||||
static bool trans_COPY_U(DisasContext *ctx, arg_msa_elm_df *a)
|
static bool trans_COPY_U(DisasContext *ctx, arg_msa_elm_df *a)
|
||||||
{
|
{
|
||||||
|
if (a->wd == 0) {
|
||||||
|
/* Treat as NOP. */
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static gen_helper_piii * const gen_msa_copy_u[4] = {
|
static gen_helper_piii * const gen_msa_copy_u[4] = {
|
||||||
gen_helper_msa_copy_u_b, gen_helper_msa_copy_u_h,
|
gen_helper_msa_copy_u_b, gen_helper_msa_copy_u_h,
|
||||||
NULL_IF_MIPS32(gen_helper_msa_copy_u_w), NULL
|
NULL_IF_MIPS32(gen_helper_msa_copy_u_w), NULL
|
||||||
|
@ -634,6 +634,11 @@ static bool trans_COPY_U(DisasContext *ctx, arg_msa_elm_df *a)
|
||||||
|
|
||||||
static bool trans_COPY_S(DisasContext *ctx, arg_msa_elm_df *a)
|
static bool trans_COPY_S(DisasContext *ctx, arg_msa_elm_df *a)
|
||||||
{
|
{
|
||||||
|
if (a->wd == 0) {
|
||||||
|
/* Treat as NOP. */
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static gen_helper_piii * const gen_msa_copy_s[4] = {
|
static gen_helper_piii * const gen_msa_copy_s[4] = {
|
||||||
gen_helper_msa_copy_s_b, gen_helper_msa_copy_s_h,
|
gen_helper_msa_copy_s_b, gen_helper_msa_copy_s_h,
|
||||||
gen_helper_msa_copy_s_w, NULL_IF_MIPS32(gen_helper_msa_copy_s_d)
|
gen_helper_msa_copy_s_w, NULL_IF_MIPS32(gen_helper_msa_copy_s_d)
|
||||||
|
|
Loading…
Reference in New Issue