Add support for the AArch32 floating-point VRINTX instruction.
Signed-off-by: Will Newton <[email protected]>
---
target-arm/translate.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/target-arm/translate.c b/target-arm/translate.c
index 153d0e6..5108f6b 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -3406,6 +3406,17 @@ static int disas_vfp_insn(CPUARMState * env,
DisasContext *s, uint32_t insn)
tcg_temp_free_ptr(fpst);
}
break;
+ case 14: /* vrintx */
+ if (dp) {
+ TCGv_ptr fpst = get_fpstatus_ptr(0);
+ gen_helper_rintd_exact(cpu_F0d, cpu_F0d, fpst);
+ tcg_temp_free_ptr(fpst);
+ } else {
+ TCGv_ptr fpst = get_fpstatus_ptr(0);
+ gen_helper_rints_exact(cpu_F0s, cpu_F0s, fpst);
+ tcg_temp_free_ptr(fpst);
+ }
+ break;
case 15: /* single<->double conversion */
if (dp)
gen_helper_vfp_fcvtsd(cpu_F0s, cpu_F0d, cpu_env);
--
1.8.1.4