[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 00/20] Add LoongArch linux-user emulation support
From: |
Song Gao |
Subject: |
[PATCH 00/20] Add LoongArch linux-user emulation support |
Date: |
Mon, 28 Jun 2021 20:04:25 +0800 |
Hi,
This series adds linux-user emulation support for LoongArch.
Patch 1 add an introduction to LoongArch.
Patches 2-5 adds LoongArch basic definition.
Patches 6-18 implements user mode instruction emulation.
Patche 19 add support for disassembling via option '-d in_asm'
Patch 20 add files to linux-user/loongarch64 and support compilling
linux-user binary.
About LoongArch, please see:
https://github.com/loongson/LoongArch-Documentation
Please review!
thanks
Song Gao (20):
target/loongarch: Add README
target/loongarch: Add CSR registers definition
target/loongarch: Add core definition
target/loongarch: Add interrupt handling support
target/loongarch: Add memory management support
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
target/loongarch: Add linux-user emulation support
MAINTAINERS | 7 +
default-configs/targets/loongarch64-linux-user.mak | 4 +
disas/loongarch.c | 2528 +++++++++++++++++++
disas/meson.build | 1 +
include/disas/dis-asm.h | 2 +
include/elf.h | 2 +
linux-user/elfload.c | 58 +
linux-user/loongarch64/cpu_loop.c | 177 ++
linux-user/loongarch64/signal.c | 193 ++
linux-user/loongarch64/sockbits.h | 1 +
linux-user/loongarch64/syscall_nr.h | 307 +++
linux-user/loongarch64/target_cpu.h | 36 +
linux-user/loongarch64/target_elf.h | 14 +
linux-user/loongarch64/target_fcntl.h | 12 +
linux-user/loongarch64/target_signal.h | 28 +
linux-user/loongarch64/target_structs.h | 49 +
linux-user/loongarch64/target_syscall.h | 46 +
linux-user/loongarch64/termbits.h | 229 ++
linux-user/syscall_defs.h | 8 +-
meson.build | 3 +-
qapi/machine-target.json | 4 +-
target/loongarch/README | 16 +
target/loongarch/cpu-csr.h | 724 ++++++
target/loongarch/cpu-param.h | 21 +
target/loongarch/cpu-qom.h | 41 +
target/loongarch/cpu.c | 477 ++++
target/loongarch/cpu.h | 245 ++
target/loongarch/fpu_helper.c | 1436 +++++++++++
target/loongarch/fpu_helper.h | 34 +
target/loongarch/helper.h | 158 ++
target/loongarch/insns.decode | 483 ++++
target/loongarch/instmap.h | 200 ++
target/loongarch/internal.h | 107 +
target/loongarch/meson.build | 19 +
target/loongarch/op_helper.c | 231 ++
target/loongarch/tlb_helper.c | 109 +
target/loongarch/trans.inc.c | 2426 ++++++++++++++++++
target/loongarch/translate.c | 2607 ++++++++++++++++++++
target/loongarch/translate.h | 58 +
target/meson.build | 1 +
40 files changed, 13096 insertions(+), 6 deletions(-)
create mode 100644 default-configs/targets/loongarch64-linux-user.mak
create mode 100644 disas/loongarch.c
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_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-csr.h
create mode 100644 target/loongarch/cpu-param.h
create mode 100644 target/loongarch/cpu-qom.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/fpu_helper.h
create mode 100644 target/loongarch/helper.h
create mode 100644 target/loongarch/insns.decode
create mode 100644 target/loongarch/instmap.h
create mode 100644 target/loongarch/internal.h
create mode 100644 target/loongarch/meson.build
create mode 100644 target/loongarch/op_helper.c
create mode 100644 target/loongarch/tlb_helper.c
create mode 100644 target/loongarch/trans.inc.c
create mode 100644 target/loongarch/translate.c
create mode 100644 target/loongarch/translate.h
--
1.8.3.1
- [PATCH 00/20] Add LoongArch linux-user emulation support,
Song Gao <=