[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v9 76/84] linux-user: Add cpu_loop.c for nanoMIPS
From: |
Aleksandar Markovic |
Subject: |
[Qemu-devel] [PATCH v9 76/84] linux-user: Add cpu_loop.c for nanoMIPS |
Date: |
Thu, 16 Aug 2018 16:58:09 +0200 |
From: Dimitrije Nikolic <address@hidden>
Amend regular MIPS' cpu_loop.c to include nanoMIPS support.
Signed-off-by: Aleksandar Rikalo <address@hidden>
Signed-off-by: Aleksandar Markovic <address@hidden>
Signed-off-by: Stefan Markovic <address@hidden>
---
linux-user/mips/cpu_loop.c | 8 +++++++-
linux-user/nanomips/cpu_loop.c | 1 +
2 files changed, 8 insertions(+), 1 deletion(-)
create mode 100644 linux-user/nanomips/cpu_loop.c
diff --git a/linux-user/mips/cpu_loop.c b/linux-user/mips/cpu_loop.c
index c9c20cf..ada5a79 100644
--- a/linux-user/mips/cpu_loop.c
+++ b/linux-user/mips/cpu_loop.c
@@ -546,7 +546,7 @@ void cpu_loop(CPUMIPSState *env)
arg5, arg6, arg7, arg8);
}
done_syscall:
-# else
+# else /* N32/N64 and P32 */
ret = do_syscall(env, env->active_tc.gpr[2],
env->active_tc.gpr[4], env->active_tc.gpr[5],
env->active_tc.gpr[6], env->active_tc.gpr[7],
@@ -562,6 +562,7 @@ done_syscall:
Avoid clobbering register state. */
break;
}
+#if !defined(TARGET_ABI_MIPSP32)
if ((abi_ulong)ret >= (abi_ulong)-1133) {
env->active_tc.gpr[7] = 1; /* error flag */
ret = -ret;
@@ -569,6 +570,9 @@ done_syscall:
env->active_tc.gpr[7] = 0; /* error flag */
}
env->active_tc.gpr[2] = ret;
+#else
+ env->active_tc.gpr[4] = ret;
+#endif
break;
case EXCP_TLBL:
case EXCP_TLBS:
@@ -714,6 +718,8 @@ done_syscall:
} else {
code = ((trap_instr >> 6) & ((1 << 10) - 1));
}
+ } else if (env->insn_flags & ISA_NANOMIPS32) {
+ code = ((trap_instr >> 11) & ((1 << 5) - 1));
}
if (do_break(env, &info, code) != 0) {
diff --git a/linux-user/nanomips/cpu_loop.c b/linux-user/nanomips/cpu_loop.c
new file mode 100644
index 0000000..da4949a
--- /dev/null
+++ b/linux-user/nanomips/cpu_loop.c
@@ -0,0 +1 @@
+#include "../mips/cpu_loop.c"
--
2.7.4
- [Qemu-devel] [PATCH v9 71/84] linux-user: Add target_cpu.h header for nanoMIPS, (continued)
- [Qemu-devel] [PATCH v9 71/84] linux-user: Add target_cpu.h header for nanoMIPS, Aleksandar Markovic, 2018/08/16
- [Qemu-devel] [PATCH v9 66/84] linux-user: Add termbits.h header for nanoMIPS, Aleksandar Markovic, 2018/08/16
- [Qemu-devel] [PATCH v9 53/84] target/mips: Adjust set_pc() for nanoMIPS, Aleksandar Markovic, 2018/08/16
- [Qemu-devel] [PATCH v9 56/84] elf: Relax MIPS' elf_check_arch() to accept EM_NANOMIPS too, Aleksandar Markovic, 2018/08/16
- [Qemu-devel] [PATCH v9 64/84] linux-user: Add syscall numbers for nanoMIPS, Aleksandar Markovic, 2018/08/16
- [Qemu-devel] [PATCH v9 70/84] linux-user: Add target_syscall.h header for nanoMIPS, Aleksandar Markovic, 2018/08/16
- [Qemu-devel] [PATCH v9 73/84] linux-user: Add target_elf.h header for nanoMIPS, Aleksandar Markovic, 2018/08/16
- [Qemu-devel] [PATCH v9 52/84] target/mips: Adjust set_hflags_for_handler() for nanoMIPS, Aleksandar Markovic, 2018/08/16
- [Qemu-devel] [PATCH v9 59/84] mips_malta: Add basic nanoMIPS boot code for Malta board, Aleksandar Markovic, 2018/08/16
- [Qemu-devel] [PATCH v9 69/84] linux-user: Add sockbits.h header for nanoMIPS, Aleksandar Markovic, 2018/08/16
- [Qemu-devel] [PATCH v9 76/84] linux-user: Add cpu_loop.c for nanoMIPS,
Aleksandar Markovic <=
- [Qemu-devel] [PATCH v9 82/84] gdbstub: Disable handling of nanoMIPS ISA bit in the MIPS gdbstub, Aleksandar Markovic, 2018/08/16
- [Qemu-devel] [PATCH v9 83/84] gdbstub: Add XML support for GDB for nanoMIPS, Aleksandar Markovic, 2018/08/16
- [Qemu-devel] [PATCH v9 57/84] elf: Don't check FCR31_NAN2008 bit for nanoMIPS, Aleksandar Markovic, 2018/08/16
- [Qemu-devel] [PATCH v9 80/84] linux-user: Add nanoMIPS linux user mode configuration support, Aleksandar Markovic, 2018/08/16
- [Qemu-devel] [PATCH v9 47/84] target/mips: Add emulation of DSP ASE for nanoMIPS - part 6, Aleksandar Markovic, 2018/08/16
- [Qemu-devel] [PATCH v9 77/84] linux-user: Amend support for sigaction() syscall for nanoMIPS, Aleksandar Markovic, 2018/08/16
- [Qemu-devel] [PATCH v9 84/84] qemu-doc: Add nanoMIPS-related items, Aleksandar Markovic, 2018/08/16
- [Qemu-devel] [PATCH v9 54/84] target/mips: Fix ERET/ERETNC behavior related to ADEL exception, Aleksandar Markovic, 2018/08/16