From 070276faf6ead3cf1c293b1aaaebdd5716d4f9dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Tue, 15 May 2018 22:29:51 -0400 Subject: [PATCH] target/arm: Fix sqrt_f16 exception raising We are meant to explicitly pass fpst, not cpu_env. Backports commit 905edee9101c54cda5b72286b7f7607cf1c3c4d1 from qemu --- qemu/target/arm/translate-a64.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qemu/target/arm/translate-a64.c b/qemu/target/arm/translate-a64.c index eb5c97a4..9d46053d 100644 --- a/qemu/target/arm/translate-a64.c +++ b/qemu/target/arm/translate-a64.c @@ -5069,7 +5069,8 @@ static void handle_fp_1src_half(DisasContext *s, int opcode, int rd, int rn) tcg_gen_xori_i32(tcg_ctx, tcg_res, tcg_op, 0x8000); break; case 0x3: /* FSQRT */ - gen_helper_sqrt_f16(tcg_ctx, tcg_res, tcg_op, tcg_ctx->cpu_env); + fpst = get_fpstatus_ptr(tcg_ctx, true); + gen_helper_sqrt_f16(tcg_ctx, tcg_res, tcg_op, fpst); break; case 0x8: /* FRINTN */ case 0x9: /* FRINTP */