aboutsummaryrefslogtreecommitdiff
path: root/target/mips/fpu.c
diff options
context:
space:
mode:
authorPhilippe Mathieu-Daudé <f4bug@amsat.org>2021-01-16 13:55:03 +0100
committerPhilippe Mathieu-Daudé <f4bug@amsat.org>2021-05-02 16:49:34 +0200
commit830a72301c35548907ff05399a99f34dab9c867d (patch)
tree1f44698a9fe597c04603cb47f92fefff92e2c827 /target/mips/fpu.c
parent58ecf15d76e6e232d908bf115236108a639daa71 (diff)
downloadqemu-830a72301c35548907ff05399a99f34dab9c867d.zip
qemu-830a72301c35548907ff05399a99f34dab9c867d.tar.gz
qemu-830a72301c35548907ff05399a99f34dab9c867d.tar.bz2
target/mips: Move IEEE rounding mode array to new source file
restore_msa_fp_status() is declared inlined in fpu_helper.h, and uses the ieee_rm[] array. Therefore any code calling restore_msa_fp_status() must have access to this ieee_rm[] array. kvm_mips_get_fpu_registers(), which is in target/mips/kvm.c, calls restore_msa_fp_status. Except this tiny array, the rest of fpu_helper.c is only useful for the TCG accelerator. To be able to restrict fpu_helper.c to TCG, we need to move the ieee_rm[] array to a new source file. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20210428170410.479308-3-f4bug@amsat.org>
Diffstat (limited to 'target/mips/fpu.c')
-rw-r--r--target/mips/fpu.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/target/mips/fpu.c b/target/mips/fpu.c
new file mode 100644
index 0000000..39a2f7f
--- /dev/null
+++ b/target/mips/fpu.c
@@ -0,0 +1,18 @@
+/*
+ * Helpers for emulation of FPU-related MIPS instructions.
+ *
+ * Copyright (C) 2004-2005 Jocelyn Mayer
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ */
+#include "qemu/osdep.h"
+#include "fpu/softfloat-helpers.h"
+#include "fpu_helper.h"
+
+/* convert MIPS rounding mode in FCR31 to IEEE library */
+const FloatRoundMode ieee_rm[4] = {
+ float_round_nearest_even,
+ float_round_to_zero,
+ float_round_up,
+ float_round_down
+};