qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v7 00/21] Add LoongArch linux-user emulation support
@ 2021-10-18 12:47 Song Gao
  2021-10-18 12:47 ` [PATCH v7 01/21] target/loongarch: Add README Song Gao
                   ` (20 more replies)
  0 siblings, 21 replies; 42+ messages in thread
From: Song Gao @ 2021-10-18 12:47 UTC (permalink / raw)
  To: qemu-devel
  Cc: peter.maydell, thuth, chenhuacai, philmd, richard.henderson,
	laurent, peterx, f4bug, yangxiaojuan, alistair.francis, maobibo,
	pbonzini, bmeng.cn, alex.bennee, gaosong

Hi,

This series only support linux-user emulation.
More about LoongArch at: https://github.com/loongson/

The latest kernel:
  * https://github.com/loongson/linux/tree/loongarch-next

Missing review:
  * 0017-LoongArch-Linux-User-Emulation.patch


Changes for v7:
  * scripts/gensyscalls.sh support loongarch64
    if we use gensyscalls.sh, we need disable __BITS_PER_LONG at arch/loongarch/include/uapi/asm/bitsperlong.h

Changes for v6:
  * Resolve patch10 and patch6 code issues.

Changes for v5:
  * Follow Richard's code review comments [1].
  * Use force_sig_fault().
  * Implement setup_sigtramp.

    [1]: https://patchew.org/QEMU/1630586467-22463-1-git-send-email-gaosong@loongson.cn/

Changes for v4:
  * Update README,add LoongArch linux-user emulation Introduction.
  * Add 'make check-tcg' support(patch 20).
  * Add binfmt config(patch 21).
  * Fix bugs when running loongarch basic commands.

Changes for v3:
  * Split trans.inc.c.
  * Remove csr registers.
  * Delete patchs 2, 4, 5.
  * Follow Richard's code review comments [1].
  * Follow Richard's riscv patches [2].

    [1]: https://patchew.org/QEMU/1626861198-6133-1-git-send-email-gaosong@loongson.cn/
    [2]: https://patchew.org/QEMU/20210823195529.560295-1-richard.henderson@linaro.org/

Changes for v2:
  * Patch 1, remove unnecessary introduction;
  * Patch 3, follow the ARM/AVR pattern to add new CPU features;
  * Patch 6, remove decode_lsx();
  * Patches 7-18, delete opcode definition, modify translation function;
  * Patches 20-22, split V1 patch20 to V2 patch20-22.

V6: https://patchew.org/QEMU/1631866380-31017-1-git-send-email-gaosong@loongson.cn/
V5: https://patchew.org/QEMU/1631624431-30658-1-git-send-email-gaosong@loongson.cn/
V4: https://patchew.org/QEMU/1630586467-22463-1-git-send-email-gaosong@loongson.cn/
V3: https://patchew.org/QEMU/1630048494-2143-1-git-send-email-gaosong@loongson.cn/
V2: https://patchew.org/QEMU/1626861198-6133-1-git-send-email-gaosong@loongson.cn/
V1: https://patchew.org/QEMU/1624881885-31692-1-git-send-email-gaosong@loongson.cn/

Please review!

Thanks.


Song Gao (21):
  target/loongarch: Add README
  target/loongarch: Add core definition
  target/loongarch: Add main translation routines
  target/loongarch: Add fixed point arithmetic instruction translation
  target/loongarch: Add fixed point shift instruction translation
  target/loongarch: Add fixed point bit instruction translation
  target/loongarch: Add fixed point load/store instruction translation
  target/loongarch: Add fixed point atomic instruction translation
  target/loongarch: Add fixed point extra instruction translation
  target/loongarch: Add floating point arithmetic instruction
    translation
  target/loongarch: Add floating point comparison instruction
    translation
  target/loongarch: Add floating point conversion instruction
    translation
  target/loongarch: Add floating point move instruction translation
  target/loongarch: Add floating point load/store instruction
    translation
  target/loongarch: Add branch instruction translation
  target/loongarch: Add disassembler
  LoongArch Linux User Emulation
  default-configs: Add loongarch linux-user support
  target/loongarch: Add target build suport
  target/loongarch: 'make check-tcg' support
  scripts: add loongarch64 binfmt config

 MAINTAINERS                                 |    6 +
 accel/tcg/user-exec.c                       |   15 +
 configs/targets/loongarch64-linux-user.mak  |    3 +
 configure                                   |    5 +
 disas/loongarch.c                           | 2511 +++++++++++++++++++++++++++
 disas/meson.build                           |    1 +
 include/disas/dis-asm.h                     |    2 +
 include/elf.h                               |    2 +
 linux-user/elfload.c                        |   58 +
 linux-user/host/loongarch/hostdep.h         |   11 +
 linux-user/loongarch64/cpu_loop.c           |   98 ++
 linux-user/loongarch64/signal.c             |  163 ++
 linux-user/loongarch64/sockbits.h           |    1 +
 linux-user/loongarch64/syscall_nr.h         |  312 ++++
 linux-user/loongarch64/target_cpu.h         |   35 +
 linux-user/loongarch64/target_elf.h         |   14 +
 linux-user/loongarch64/target_errno_defs.h  |    7 +
 linux-user/loongarch64/target_fcntl.h       |   12 +
 linux-user/loongarch64/target_signal.h      |   30 +
 linux-user/loongarch64/target_structs.h     |   49 +
 linux-user/loongarch64/target_syscall.h     |   46 +
 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                |   19 +
 target/loongarch/cpu.c                      |  286 +++
 target/loongarch/cpu.h                      |  151 ++
 target/loongarch/fpu_helper.c               |  865 +++++++++
 target/loongarch/helper.h                   |   97 ++
 target/loongarch/insn_trans/trans_arith.c   |  322 ++++
 target/loongarch/insn_trans/trans_atomic.c  |  133 ++
 target/loongarch/insn_trans/trans_bit.c     |  255 +++
 target/loongarch/insn_trans/trans_branch.c  |   85 +
 target/loongarch/insn_trans/trans_extra.c   |   87 +
 target/loongarch/insn_trans/trans_farith.c  |  108 ++
 target/loongarch/insn_trans/trans_fcmp.c    |   59 +
 target/loongarch/insn_trans/trans_fcnv.c    |   36 +
 target/loongarch/insn_trans/trans_fmemory.c |  187 ++
 target/loongarch/insn_trans/trans_fmov.c    |  153 ++
 target/loongarch/insn_trans/trans_memory.c  |  235 +++
 target/loongarch/insn_trans/trans_shift.c   |  131 ++
 target/loongarch/insns.decode               |  480 +++++
 target/loongarch/internals.h                |   29 +
 target/loongarch/meson.build                |   18 +
 target/loongarch/op_helper.c                |   85 +
 target/loongarch/translate.c                |  288 +++
 target/loongarch/translate.h                |   46 +
 target/meson.build                          |    1 +
 tests/tcg/configure.sh                      |    1 +
 52 files changed, 7629 insertions(+), 6 deletions(-)
 create mode 100644 configs/targets/loongarch64-linux-user.mak
 create mode 100644 disas/loongarch.c
 create mode 100644 linux-user/host/loongarch/hostdep.h
 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/fpu_helper.c
 create mode 100644 target/loongarch/helper.h
 create mode 100644 target/loongarch/insn_trans/trans_arith.c
 create mode 100644 target/loongarch/insn_trans/trans_atomic.c
 create mode 100644 target/loongarch/insn_trans/trans_bit.c
 create mode 100644 target/loongarch/insn_trans/trans_branch.c
 create mode 100644 target/loongarch/insn_trans/trans_extra.c
 create mode 100644 target/loongarch/insn_trans/trans_farith.c
 create mode 100644 target/loongarch/insn_trans/trans_fcmp.c
 create mode 100644 target/loongarch/insn_trans/trans_fcnv.c
 create mode 100644 target/loongarch/insn_trans/trans_fmemory.c
 create mode 100644 target/loongarch/insn_trans/trans_fmov.c
 create mode 100644 target/loongarch/insn_trans/trans_memory.c
 create mode 100644 target/loongarch/insn_trans/trans_shift.c
 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

-- 
1.8.3.1



^ permalink raw reply	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2021-10-22  2:06 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-18 12:47 [PATCH v7 00/21] Add LoongArch linux-user emulation support Song Gao
2021-10-18 12:47 ` [PATCH v7 01/21] target/loongarch: Add README Song Gao
2021-10-18 12:47 ` [PATCH v7 02/21] target/loongarch: Add core definition Song Gao
2021-10-18 16:06   ` WANG Xuerui
2021-10-18 17:38     ` Philippe Mathieu-Daudé
2021-10-20  8:54       ` Song Gao
2021-10-20 12:00         ` WANG Xuerui
2021-10-20 13:56           ` Richard Henderson
2021-10-21  3:21             ` Song Gao
2021-10-21  4:10               ` WANG Xuerui
2021-10-22  0:12                 ` Bob Proulx
2021-10-22  2:04                   ` yangxiaojuan
2021-10-18 12:47 ` [PATCH v7 03/21] target/loongarch: Add main translation routines Song Gao
2021-10-18 12:58   ` Philippe Mathieu-Daudé
2021-10-18 12:47 ` [PATCH v7 04/21] target/loongarch: Add fixed point arithmetic instruction translation Song Gao
2021-10-18 12:47 ` [PATCH v7 05/21] target/loongarch: Add fixed point shift " Song Gao
2021-10-18 12:47 ` [PATCH v7 06/21] target/loongarch: Add fixed point bit " Song Gao
2021-10-18 12:47 ` [PATCH v7 07/21] target/loongarch: Add fixed point load/store " Song Gao
2021-10-18 12:47 ` [PATCH v7 08/21] target/loongarch: Add fixed point atomic " Song Gao
2021-10-18 12:47 ` [PATCH v7 09/21] target/loongarch: Add fixed point extra " Song Gao
2021-10-18 12:47 ` [PATCH v7 10/21] target/loongarch: Add floating point arithmetic " Song Gao
2021-10-18 12:47 ` [PATCH v7 11/21] target/loongarch: Add floating point comparison " Song Gao
2021-10-18 12:47 ` [PATCH v7 12/21] target/loongarch: Add floating point conversion " Song Gao
2021-10-18 12:47 ` [PATCH v7 13/21] target/loongarch: Add floating point move " Song Gao
2021-10-18 12:47 ` [PATCH v7 14/21] target/loongarch: Add floating point load/store " Song Gao
2021-10-18 12:47 ` [PATCH v7 15/21] target/loongarch: Add branch " Song Gao
2021-10-18 12:47 ` [PATCH v7 16/21] target/loongarch: Add disassembler Song Gao
2021-10-18 15:38   ` WANG Xuerui
2021-10-18 17:29     ` Richard Henderson
2021-10-18 18:18       ` WANG Xuerui
2021-10-18 18:33         ` Richard Henderson
2021-10-18 18:57           ` Philippe Mathieu-Daudé
2021-10-20  6:37             ` Song Gao
2021-10-18 12:47 ` [PATCH v7 17/21] LoongArch Linux User Emulation Song Gao
2021-10-18 15:22   ` WANG Xuerui
2021-10-18 12:47 ` [PATCH v7 18/21] default-configs: Add loongarch linux-user support Song Gao
2021-10-18 12:47 ` [PATCH v7 19/21] target/loongarch: Add target build suport Song Gao
2021-10-18 12:47 ` [PATCH v7 20/21] target/loongarch: 'make check-tcg' support Song Gao
2021-10-18 12:47 ` [PATCH v7 21/21] scripts: add loongarch64 binfmt config Song Gao
2021-10-18 15:49   ` WANG Xuerui
2021-10-21  6:24     ` Song Gao
2021-10-21  7:45       ` WANG Xuerui

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).