MAINTAINERS | 5 + configs/targets/loongarch64-linux-user.mak | 3 + configure | 5 + include/disas/dis-asm.h | 2 + include/elf.h | 2 + linux-user/elfload.c | 58 ++ linux-user/host/loongarch64/host-signal.h | 83 +++ linux-user/host/loongarch64/hostdep.h | 32 + linux-user/host/loongarch64/safe-syscall.inc.S | 78 ++ linux-user/loongarch64/cpu_loop.c | 97 +++ linux-user/loongarch64/signal.c | 162 +++++ linux-user/loongarch64/sockbits.h | 1 + linux-user/loongarch64/syscall_nr.h | 312 ++++++++ linux-user/loongarch64/target_cpu.h | 34 + linux-user/loongarch64/target_elf.h | 12 + linux-user/loongarch64/target_errno_defs.h | 7 + linux-user/loongarch64/target_fcntl.h | 6 + linux-user/loongarch64/target_signal.h | 29 + linux-user/loongarch64/target_structs.h | 48 ++ linux-user/loongarch64/target_syscall.h | 45 ++ linux-user/loongarch64/termbits.h | 1 + linux-user/syscall_defs.h | 10 +- meson.build | 3 +- scripts/gensyscalls.sh | 1 + scripts/qemu-binfmt-conf.sh | 6 +- target/loongarch/README | 76 ++ target/loongarch/cpu-param.h | 18 + target/loongarch/cpu.c | 315 ++++++++ target/loongarch/cpu.h | 253 +++++++ target/loongarch/disas.c | 918 ++++++++++++++++++++++++ target/loongarch/fpu_helper.c | 864 ++++++++++++++++++++++ target/loongarch/helper.h | 94 +++ target/loongarch/insn_trans/trans_arith.c.inc | 319 ++++++++ target/loongarch/insn_trans/trans_atomic.c.inc | 130 ++++ target/loongarch/insn_trans/trans_bit.c.inc | 252 +++++++ target/loongarch/insn_trans/trans_branch.c.inc | 82 +++ target/loongarch/insn_trans/trans_extra.c.inc | 84 +++ target/loongarch/insn_trans/trans_farith.c.inc | 105 +++ target/loongarch/insn_trans/trans_fcmp.c.inc | 56 ++ target/loongarch/insn_trans/trans_fcnv.c.inc | 33 + target/loongarch/insn_trans/trans_fmemory.c.inc | 184 +++++ target/loongarch/insn_trans/trans_fmov.c.inc | 150 ++++ target/loongarch/insn_trans/trans_memory.c.inc | 232 ++++++ target/loongarch/insn_trans/trans_shift.c.inc | 128 ++++ target/loongarch/insns.decode | 479 +++++++++++++ target/loongarch/internals.h | 28 + target/loongarch/meson.build | 19 + target/loongarch/op_helper.c | 84 +++ target/loongarch/translate.c | 287 ++++++++ target/loongarch/translate.h | 45 ++ target/meson.build | 1 + tests/tcg/configure.sh | 1 + 52 files changed, 6273 insertions(+), 6 deletions(-) create mode 100644 configs/targets/loongarch64-linux-user.mak create mode 100644 linux-user/host/loongarch64/host-signal.h create mode 100644 linux-user/host/loongarch64/hostdep.h create mode 100644 linux-user/host/loongarch64/safe-syscall.inc.S create mode 100644 linux-user/loongarch64/cpu_loop.c create mode 100644 linux-user/loongarch64/signal.c create mode 100644 linux-user/loongarch64/sockbits.h create mode 100644 linux-user/loongarch64/syscall_nr.h create mode 100644 linux-user/loongarch64/target_cpu.h create mode 100644 linux-user/loongarch64/target_elf.h create mode 100644 linux-user/loongarch64/target_errno_defs.h create mode 100644 linux-user/loongarch64/target_fcntl.h create mode 100644 linux-user/loongarch64/target_signal.h create mode 100644 linux-user/loongarch64/target_structs.h create mode 100644 linux-user/loongarch64/target_syscall.h create mode 100644 linux-user/loongarch64/termbits.h create mode 100644 target/loongarch/README create mode 100644 target/loongarch/cpu-param.h create mode 100644 target/loongarch/cpu.c create mode 100644 target/loongarch/cpu.h create mode 100644 target/loongarch/disas.c create mode 100644 target/loongarch/fpu_helper.c create mode 100644 target/loongarch/helper.h create mode 100644 target/loongarch/insn_trans/trans_arith.c.inc create mode 100644 target/loongarch/insn_trans/trans_atomic.c.inc create mode 100644 target/loongarch/insn_trans/trans_bit.c.inc create mode 100644 target/loongarch/insn_trans/trans_branch.c.inc create mode 100644 target/loongarch/insn_trans/trans_extra.c.inc create mode 100644 target/loongarch/insn_trans/trans_farith.c.inc create mode 100644 target/loongarch/insn_trans/trans_fcmp.c.inc create mode 100644 target/loongarch/insn_trans/trans_fcnv.c.inc create mode 100644 target/loongarch/insn_trans/trans_fmemory.c.inc create mode 100644 target/loongarch/insn_trans/trans_fmov.c.inc create mode 100644 target/loongarch/insn_trans/trans_memory.c.inc create mode 100644 target/loongarch/insn_trans/trans_shift.c.inc create mode 100644 target/loongarch/insns.decode create mode 100644 target/loongarch/internals.h create mode 100644 target/loongarch/meson.build create mode 100644 target/loongarch/op_helper.c create mode 100644 target/loongarch/translate.c create mode 100644 target/loongarch/translate.h