[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 8/9] linux-user: Fix mips fp64 executables loading
|
From: |
Laurent Vivier |
|
Subject: |
[PULL 8/9] linux-user: Fix mips fp64 executables loading |
|
Date: |
Mon, 15 May 2023 10:31:12 +0200 |
From: Daniil Kovalev <dkovalev@compiler-toolchain-for.me>
If a program requires fr1, we should set the FR bit of CP0 control status
register and add F64 hardware flag. The corresponding `else if` branch
statement is copied from the linux kernel sources (see `arch_check_elf` function
in linux/arch/mips/kernel/elf.c).
Signed-off-by: Daniil Kovalev <dkovalev@compiler-toolchain-for.me>
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Message-Id: <20230404052153.16617-1-dkovalev@compiler-toolchain-for.me>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/mips/cpu_loop.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/linux-user/mips/cpu_loop.c b/linux-user/mips/cpu_loop.c
index d5c1c7941d34..8735e58bada0 100644
--- a/linux-user/mips/cpu_loop.c
+++ b/linux-user/mips/cpu_loop.c
@@ -290,7 +290,10 @@ void target_cpu_copy_regs(CPUArchState *env, struct
target_pt_regs *regs)
env->CP0_Status |= (1 << CP0St_FR);
env->hflags |= MIPS_HFLAG_F64;
}
- } else if (!prog_req.fre && !prog_req.frdefault &&
+ } else if (prog_req.fr1) {
+ env->CP0_Status |= (1 << CP0St_FR);
+ env->hflags |= MIPS_HFLAG_F64;
+ } else if (!prog_req.fre && !prog_req.frdefault &&
!prog_req.fr1 && !prog_req.single && !prog_req.soft) {
fprintf(stderr, "qemu: Can't find a matching FPU mode\n");
exit(1);
--
2.40.1
- Re: [PULL 0/9] Linux user for 8.1 patches, (continued)
- Re: [PULL 0/9] Linux user for 8.1 patches, Richard Henderson, 2023/05/13
- [PULL 0/9] Linux user for 8.1 patches, Laurent Vivier, 2023/05/15
- [PULL 2/9] linux-user: report ENOTTY for unknown ioctls, Laurent Vivier, 2023/05/15
- [PULL 3/9] linux-user: Add move_mount() syscall, Laurent Vivier, 2023/05/15
- [PULL 4/9] linux-user: Add open_tree() syscall, Laurent Vivier, 2023/05/15
- [PULL 6/9] linux-user: Add new flag VERIFY_NONE, Laurent Vivier, 2023/05/15
- [PULL 9/9] linux-user: fix getgroups/setgroups allocations, Laurent Vivier, 2023/05/15
- [PULL 5/9] linux-user/main: Use list_cpus() instead of cpu_list(), Laurent Vivier, 2023/05/15
- [PULL 1/9] linux-user: Emulate /proc/cpuinfo output for riscv, Laurent Vivier, 2023/05/15
- [PULL 7/9] linux-user: Don't require PROT_READ for mincore, Laurent Vivier, 2023/05/15
- [PULL 8/9] linux-user: Fix mips fp64 executables loading,
Laurent Vivier <=
- Re: [PULL 0/9] Linux user for 8.1 patches, Richard Henderson, 2023/05/15
[PULL 0/9] Linux user for 8.1 patches, Laurent Vivier, 2023/05/16