target/arm: Stop using cpu_F0s for NEON_2RM_VRECPE_F and NEON_2RM_VRSQRTE_F

Stop using cpu_F0s for NEON_2RM_VRECPE_F and NEON_2RM_VRSQRTE_F.

Backports commit 9a011fece7201f8e268c982df8c7836f3335bbe6 from qemu
This commit is contained in:
Peter Maydell 2019-06-25 18:29:20 -05:00 committed by Lioncash
parent f82ea34369
commit 2fbe9c1d1d
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7

View file

@ -4315,7 +4315,7 @@ static int neon_2rm_is_float_op(int op)
* what we are asking here is "does the code for this case in
* the Neon for-each-pass loop use cpu_F0s?".
*/
return op >= NEON_2RM_VRECPE_F;
return op >= NEON_2RM_VCVT_FS;
}
static bool neon_2rm_is_v8_op(int op)
@ -6985,14 +6985,14 @@ static int disas_neon_data_insn(DisasContext *s, uint32_t insn)
case NEON_2RM_VRECPE_F:
{
TCGv_ptr fpstatus = get_fpstatus_ptr(s, 1);
gen_helper_recpe_f32(tcg_ctx, s->F0s, s->F0s, fpstatus);
gen_helper_recpe_f32(tcg_ctx, tmp, tmp, fpstatus);
tcg_temp_free_ptr(tcg_ctx, fpstatus);
break;
}
case NEON_2RM_VRSQRTE_F:
{
TCGv_ptr fpstatus = get_fpstatus_ptr(s, 1);
gen_helper_rsqrte_f32(tcg_ctx, s->F0s, s->F0s, fpstatus);
gen_helper_rsqrte_f32(tcg_ctx, tmp, tmp, fpstatus);
tcg_temp_free_ptr(tcg_ctx, fpstatus);
break;
}